[meta-ti] [PATCH 2/2] omap3-sgx-modules 5.01.01.01: add Darren's patches to work with 3.14 kernel

Maupin, Chase chase.maupin at ti.com
Wed Jul 30 12:07:33 PDT 2014


Adding Naga so he can comment :)

>-----Original Message-----
>From: Dmytriyenko, Denys
>Sent: Wednesday, July 30, 2014 1:44 PM
>To: Maupin, Chase
>Cc: Cooper Jr., Franklin; Denys Dmytriyenko; meta-
>ti at yoctoproject.org
>Subject: Re: [meta-ti] [PATCH 2/2] omap3-sgx-modules 5.01.01.01:
>add Darren's patches to work with 3.14 kernel
>
>On Wed, Jul 30, 2014 at 06:41:42PM +0000, Maupin, Chase wrote:
>> >-----Original Message-----
>> >From: meta-ti-bounces at yoctoproject.org [mailto:meta-ti-
>> >bounces at yoctoproject.org] On Behalf Of Cooper Jr., Franklin
>> >Sent: Wednesday, July 30, 2014 1:38 PM
>> >To: Denys Dmytriyenko; meta-ti at yoctoproject.org
>> >Subject: Re: [meta-ti] [PATCH 2/2] omap3-sgx-modules
>5.01.01.01:
>> >add Darren's patches to work with 3.14 kernel
>> >
>> >Acked-by: Franklin Cooper Jr. <fcooper at ti.com>
>> >
>> >It might be a good idea to run sourceipk (meta-arago) on this
>so
>> >that the version of the Graphics SDK we bundle already have
>these
>> >patches included.
>> >Nothing we need to do here in meta-ti but just something to
>keep
>> >track of in meta-arago.
>>
>> Well, until the graphics SDK splits out into drivers and
>libraries this
>> would be everything.  That may not be such a big deal overall if
>we then
>> drop the graphics SDK installer binary from the backend
>packaging.  This is
>> something we have always wanted to do, but I was hoping that
>with a clean
>> split of libraries and drivers we could then package drivers in
>the
>> board-support directory and libraries elsewhere that makes more
>sense.
>
>+1
>Any ETA on when that's coming?
>
>
>> >> -----Original Message-----
>> >> From: meta-ti-bounces at yoctoproject.org [mailto:meta-ti-
>> >> bounces at yoctoproject.org] On Behalf Of Denys Dmytriyenko
>> >> Sent: Tuesday, July 29, 2014 8:35 PM
>> >> To: meta-ti at yoctoproject.org
>> >> Subject: [meta-ti] [PATCH 2/2] omap3-sgx-modules 5.01.01.01:
>add
>> >Darren's
>> >> patches to work with 3.14 kernel
>> >>
>> >> From: Denys Dmytriyenko <denys at ti.com>
>> >>
>> >> Signed-off-by: Denys Dmytriyenko <denys at ti.com>
>> >> ---
>> >>  ...SDK-Make-5_01_01_01-work-against-3.14-LTS.patch |  52
>> >+++++++  ...x-use-
>> >> platform-data-to-provide-reset-info.patch | 121
>++++++++++++++++
>> >...class-
>> >> am335x-am437x-fix-mutex-deadlock-wa.patch | 153
>> >+++++++++++++++++++++
>> >> ...-make-it-building-against-ti-linux-3.14.y.patch |  44
>++++++
>> >>  .../omap3-sgx-modules_5.01.01.01.bb                |   7 +-
>> >>  5 files changed, 376 insertions(+), 1 deletion(-)  create
>mode
>> >100644 recipes-
>> >> bsp/powervr-drivers/omap3-sgx-modules-5.01.01.01/0001-PoC-
>GFX-
>> >SDK-Make-
>> >> 5_01_01_01-work-against-3.14-LTS.patch
>> >>  create mode 100644 recipes-bsp/powervr-drivers/omap3-sgx-
>> >modules-
>> >> 5.01.01.01/0002-SGX-linux-use-platform-data-to-provide-reset-
>> >info.patch
>> >>  create mode 100644 recipes-bsp/powervr-drivers/omap3-sgx-
>> >modules-
>> >> 5.01.01.01/0003-SGX-displayclass-am335x-am437x-fix-mutex-
>> >deadlock-
>> >> wa.patch
>> >>  create mode 100644 recipes-bsp/powervr-drivers/omap3-sgx-
>> >modules-
>> >> 5.01.01.01/0004-SGX-linux-make-it-building-against-ti-linux-
>> >3.14.y.patch
>> >>
>> >> diff --git a/recipes-bsp/powervr-drivers/omap3-sgx-modules-
>> >5.01.01.01/0001-
>> >> PoC-GFX-SDK-Make-5_01_01_01-work-against-3.14-LTS.patch
>> >b/recipes-
>> >> bsp/powervr-drivers/omap3-sgx-modules-5.01.01.01/0001-PoC-
>GFX-
>> >SDK-Make-
>> >> 5_01_01_01-work-against-3.14-LTS.patch
>> >> new file mode 100644
>> >> index 0000000..e541079
>> >> --- /dev/null
>> >> +++ b/recipes-bsp/powervr-drivers/omap3-sgx-modules-
>> >5.01.01.01/0001-PoC-
>> >> +++ GFX-SDK-Make-5_01_01_01-work-against-3.14-LTS.patch
>> >> @@ -0,0 +1,52 @@
>> >> +From e2db38959a70d1be604a297276a0b0c2ac219bf5 Mon Sep 17
>> >00:00:00
>> >> 2001
>> >> +From: Darren Etheridge <detheridge at ti.com>
>> >> +Date: Tue, 29 Jul 2014 16:06:17 -0500
>> >> +Subject: [PATCH 1/4] PoC: GFX: SDK: Make 5_01_01_01 work
>> >against 3.14
>> >> +LTS
>> >> +
>> >> +An API rename is the main change.  Also hacked in some
>function
>> >> +prototypes for enabling use of the tilcdc DRM driver instead
>of
>> >the
>> >> +fbdev driver on AM335x.  However this all really needs a
>good
>> >cleanup
>> >> +as it is hacky at the moment.
>> >> +
>> >> +Signed-off-by: Darren Etheridge <detheridge at ti.com>
>> >> +---
>> >> +
>> >GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/omaplfb_linux.c
>|
>> >5
>> >> +++++
>> >> + GFX_Linux_KM/services4/srvkm/env/linux/mutils.h
>> >| 6 +++++-
>> >> + 2 files changed, 10 insertions(+), 1 deletion(-)
>> >> +
>> >> +diff --git
>> >>
>>
>>+a/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/omaplfb_linux.
>c
>> >>
>>
>>+b/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/omaplfb_linux.
>c
>> >> +index 5c3fc48..3857b95 100644
>> >> +---
>>
>>a/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/omaplfb_linux.c
>> >> ++++
>>
>>b/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/omaplfb_linux.c
>> >> +@@ -93,6 +93,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE
>OR
>> >> OTHER DEALINGS IN THE SOFTWARE.
>> >> + #include <linux/mutex.h>
>> >> +
>> >> + #include <video/da8xx-fb.h>
>> >> ++/* used by SGX OMAPLFB drvier */
>> >> ++typedef void (*vsync_callback_t)(void *arg); int
>> >> ++register_vsync_cb(vsync_callback_t handler, void *arg, int
>> >idx); int
>> >> ++unregister_vsync_cb(vsync_callback_t handler, void *arg,
>int
>> >idx);
>> >> ++
>> >> + #if defined(PVR_OMAPLFB_DRM_FB)
>> >> + #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0))  #include
>> >> +<plat/display.h> diff --git
>> >> +a/GFX_Linux_KM/services4/srvkm/env/linux/mutils.h
>> >> +b/GFX_Linux_KM/services4/srvkm/env/linux/mutils.h
>> >> +index 31e0dac..90ec41c 100644
>> >> +--- a/GFX_Linux_KM/services4/srvkm/env/linux/mutils.h
>> >> ++++ b/GFX_Linux_KM/services4/srvkm/env/linux/mutils.h
>> >> +@@ -79,7 +79,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE
>OR
>> >> OTHER DEALINGS IN THE SOFTWARE.
>> >> + 	#define	IOREMAP(pa, bytes)	ioremap_cache(pa,
>bytes)
>> >> + #else
>> >> + 	#if defined(__arm__) && (LINUX_VERSION_CODE >=
>> >> KERNEL_VERSION(2,6,0))
>> >> +-		#define	IOREMAP(pa, bytes)
>	ioremap_cached(pa,
>> >bytes)
>> >> ++		#if (LINUX_VERSION_CODE >=
>KERNEL_VERSION(3,13,0))
>> >> ++			#define	IOREMAP(pa, bytes)
>> >	ioremap_cache(pa,
>> >> bytes)
>> >> ++		#else
>> >> ++			#define	IOREMAP(pa, bytes)
>> >	ioremap_cached(pa,
>> >> bytes)
>> >> ++		#endif
>> >> + 	#else
>> >> + 		#define IOREMAP(pa, bytes)	ioremap(pa, bytes)
>> >> + 	#endif
>> >> +--
>> >> +1.9.1
>> >> +
>> >> diff --git a/recipes-bsp/powervr-drivers/omap3-sgx-modules-
>> >5.01.01.01/0002-
>> >> SGX-linux-use-platform-data-to-provide-reset-info.patch
>> >b/recipes-
>> >> bsp/powervr-drivers/omap3-sgx-modules-5.01.01.01/0002-SGX-
>linux-
>> >use-
>> >> platform-data-to-provide-reset-info.patch
>> >> new file mode 100644
>> >> index 0000000..22b73fd
>> >> --- /dev/null
>> >> +++ b/recipes-bsp/powervr-drivers/omap3-sgx-modules-
>> >5.01.01.01/0002-SGX-
>> >> +++ linux-use-platform-data-to-provide-reset-info.patch
>> >> @@ -0,0 +1,121 @@
>> >> +From 30a695502496302f804e14eeca90568f067b2db2 Mon Sep 17
>> >00:00:00
>> >> 2001
>> >> +From: Darren Etheridge <detheridge at ti.com>
>> >> +Date: Fri, 25 Jul 2014 16:03:14 -0500
>> >> +Subject: [PATCH 2/4] SGX: linux: use platform data to
>provide
>> >reset
>> >> +info
>> >> +
>> >> +In ti-linux-3.14.y we will not have a reset driver unlike
>> >> +ti-linux-3.12.y so this commit removes the dependency on the
>> >reset
>> >> +driver and instead uses the platform data that in a dt
>> >environment is
>> >> +configured in mach-omap2/pdata-quirks.c
>> >> +
>> >> +Signed-off-by: Darren Etheridge <detheridge at ti.com>
>> >> +---
>> >> + GFX_Linux_KM/services4/srvkm/env/linux/module.c | 34
>> >> +++++++++++++++++++++-----
>> >> + 1 file changed, 28 insertions(+), 6 deletions(-)
>> >> +
>> >> +diff --git a/GFX_Linux_KM/services4/srvkm/env/linux/module.c
>> >> +b/GFX_Linux_KM/services4/srvkm/env/linux/module.c
>> >> +index e03dc00..82d07f4 100644
>> >> +--- a/GFX_Linux_KM/services4/srvkm/env/linux/module.c
>> >> ++++ b/GFX_Linux_KM/services4/srvkm/env/linux/module.c
>> >> +@@ -47,6 +47,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE
>OR
>> >> OTHER DEALINGS IN THE SOFTWARE.
>> >> + #endif
>> >> + #endif
>> >> +
>> >> ++#ifndef CONFIG_RESET_CONTROLLER
>> >> ++#include <linux/platform_data/gfx-sgx.h> #endif
>> >> ++
>> >> + #if defined(SUPPORT_DRI_DRM) &&
>> >!defined(SUPPORT_DRI_DRM_PLUGIN)
>> >> + #define	PVR_MOD_STATIC
>> >> + #else
>> >> +@@ -344,9 +348,11 @@ static LDM_DRV powervr_driver = {
>LDM_DEV
>> >> +*gpsPVRLDMDev;
>> >> +
>> >> + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
>> >> ++#ifdef CONFIG_RESET_CONTROLLER
>> >> + struct reset_control *rstc;
>> >> + bool already_deasserted = false;
>> >> + #endif
>> >> ++#endif
>> >> +
>> >> + #if defined(MODULE) && defined(PVR_LDM_PLATFORM_MODULE) &&
>\
>> >> + 	!defined(PVR_USE_PRE_REGISTERED_PLATFORM_DEV)
>> >> +@@ -388,11 +394,14 @@ static int __devinit
>> >PVRSRVDriverProbe(LDM_DEV
>> >> +*pDevice, const struct pci_device  #endif  {
>> >> + 	SYS_DATA *psSysData;
>> >> +-	int ret;
>> >> ++	int ret;
>> >> ++	struct device *dev = &pDevice->dev;
>> >> ++	struct gfx_sgx_platform_data *pdata = dev-
>>platform_data;
>> >> ++
>> >> + 	PVR_TRACE(("PVRSRVDriverProbe(pDevice=%p)", pDevice));
>#if
>> >> + (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
>> >> ++#ifdef CONFIG_RESET_CONTROLLER
>> >> + 	rstc = reset_control_get(&pDevice->dev, NULL);
>> >> +-
>> >> + 	if (IS_ERR(rstc))
>> >> + 	{
>> >> + 		dev_err(&pDevice->dev, "%s: error:
>> >reset_control_get\n",
>> >> __func__);
>> >> +@@ -403,7 +412,7 @@ static int __devinit
>> >PVRSRVDriverProbe(LDM_DEV
>> >> +*pDevice, const struct pci_device
>> >> +
>> >> + 	if (ret < 0)
>> >> + 	{
>> >> +-		dev_err(&pDevice->dev, "%s: error:
>> >> reset_control_clear_reset\n", __func__);
>> >> ++		dev_err(dev, "%s: error:
>reset_control_clear_reset\n",
>> >> __func__);
>> >> + 		return ret;
>> >> + 	}
>> >> +
>> >> +@@ -413,11 +422,22 @@ static int __devinit
>> >PVRSRVDriverProbe(LDM_DEV
>> >> *pDevice, const struct pci_device
>> >> + 	{
>> >> + 		already_deasserted = true;
>> >> + 	}
>> >> +-	else if (ret < 0)
>> >> ++	else if (ret < 0)
>> >> + 	{
>> >> +-		dev_err(&pDevice->dev, "%s: error:
>> >reset_control_deassert\n",
>> >> __func__);
>> >> ++		dev_err(dev, "%s: error:
>reset_control_deassert\n",
>> >__func__);
>> >> + 		return ret;
>> >> + 	}
>> >> ++#else
>> >> ++	if (pdata && pdata->deassert_reset) {
>> >> ++		ret = pdata->deassert_reset(pDevice, pdata-
>> >>reset_name);
>> >> ++		if (ret) {
>> >> ++			dev_err(dev, "Unable to reset SGX!\n");
>> >> ++		}
>> >> ++	} else {
>> >> ++		dev_err(dev, "SGX Platform data missing
>> >deassert_reset!\n");
>> >> ++		return -ENODEV;
>> >> ++	}
>> >> ++#endif  /* CONFIG_RESET_CONTROLLER */
>> >> + #endif
>> >> +
>> >> + #if 0   /* INTEGRATION_POINT */
>> >> +@@ -432,7 +452,7 @@ static int __devinit
>> >PVRSRVDriverProbe(LDM_DEV
>> >> *pDevice, const struct pci_device
>> >> + 	{
>> >> + 		return -EINVAL;
>> >> + 	}
>> >> +-#endif
>> >> ++#endif
>> >> + 	/* SysInitialise only designed to be called once.
>> >> + 	 */
>> >> + 	psSysData = SysAcquireDataNoCheck();
>> >> +@@ -445,6 +465,7 @@ static int __devinit
>> >PVRSRVDriverProbe(LDM_DEV
>> >> *pDevice, const struct pci_device
>> >> + 		}
>> >> + 	}
>> >> + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
>> >> ++#ifdef CONFIG_RESET_CONTROLLER
>> >> +         if (!already_deasserted)
>> >> +         {
>> >> +                 ret = reset_control_is_reset(rstc); @@ -
>454,6
>> >+475,7
>> >> +@@ static int __devinit PVRSRVDriverProbe(LDM_DEV *pDevice,
>> >const struct
>> >> pci_device
>> >> +                 }
>> >> +         }
>> >> +         reset_control_put(rstc);
>> >> ++#endif /* CONFIG_RESET_CONTROLLER */
>> >> + #endif
>> >> +
>> >> + 	return PVRSRVIONClientCreate();
>> >> +--
>> >> +1.9.1
>> >> +
>> >> diff --git a/recipes-bsp/powervr-drivers/omap3-sgx-modules-
>> >5.01.01.01/0003-
>> >> SGX-displayclass-am335x-am437x-fix-mutex-deadlock-wa.patch
>> >b/recipes-
>> >> bsp/powervr-drivers/omap3-sgx-modules-5.01.01.01/0003-SGX-
>> >displayclass-
>> >> am335x-am437x-fix-mutex-deadlock-wa.patch
>> >> new file mode 100644
>> >> index 0000000..0e2902d
>> >> --- /dev/null
>> >> +++ b/recipes-bsp/powervr-drivers/omap3-sgx-modules-
>> >5.01.01.01/0003-SGX-
>> >> +++ displayclass-am335x-am437x-fix-mutex-deadlock-wa.patch
>> >> @@ -0,0 +1,153 @@
>> >> +From cf5156ff82e14fe01a194f9fa9a9adc528ac72f0 Mon Sep 17
>> >00:00:00 2001
>> >> +From: Darren Etheridge <detheridge at ti.com>
>> >> +Date: Tue, 29 Jul 2014 15:39:56 -0500
>> >> +Subject: [PATCH 3/4] SGX: displayclass: am335x, am437x - fix
>> >mutex
>> >> +deadlock  warning
>> >> +
>> >> +Rearrange the locking semantics in the Unblank screen
>function
>> >to
>> >> +remove the kernel warning about a possible deadlock
>scenario.
>> >> +
>> >> +The warning presents itself on the console like this:
>> >> +[ 2976.202979]
>> >> ======================================================
>> >> +[ 2976.202983] [ INFO: possible circular locking dependency
>> >detected ]
>> >> +[ 2976.202994] 3.14.11-00997-gb20d0ac-dirty #53 Tainted: G
>> >O
>> >> +[ 2976.202997] ---------------------------------------------
>---
>> >-------
>> >> +[ 2976.203005] OGLES2Chameleon/1203 is trying to acquire
>lock:
>> >> +[ 2976.203058]  (console_lock){+.+.+.}, at: [<bf07a310>]
>> >> +OMAPLFBUnblankDisplay+0x24/0xbc [omaplfb]
>> >> +[ 2976.203062]
>> >> +[ 2976.203062] but task is already holding lock:
>> >> +[ 2976.203087]  (&fb_info->lock){+.+.+.}, at: [<c0312358>]
>> >> +lock_fb_info+0x18/0x3c [ 2976.203090] [ 2976.203090] which
>lock
>> >already
>> >> +depends on the new lock.
>> >> +[ 2976.203090]
>> >> +[ 2976.203093]
>> >> +[ 2976.203093] the existing dependency chain (in reverse
>order)
>> >is:
>> >> +[ 2976.203101]
>> >> +[ 2976.203101] -> #1 (&fb_info->lock){+.+.+.}:
>> >> +[ 2976.203112]        [<c0312358>] lock_fb_info+0x18/0x3c
>> >> +[ 2976.203124]        [<c0313a7c>]
>> >register_framebuffer+0x174/0x26c
>> >> +[ 2976.203146]        [<c033c314>]
>> >omapfb_create_framebuffers+0x48c/0x7ac
>> >> +[ 2976.203157]        [<c033d3c4>] omapfb_probe+0x4d4/0x848
>> >> +[ 2976.203170]        [<c0381cc8>]
>platform_drv_probe+0x18/0x48
>> >> +[ 2976.203189]        [<c038096c>]
>> >driver_probe_device+0x10c/0x238
>> >> +[ 2976.203199]        [<c0380b2c>] __driver_attach+0x94/0x98
>> >> +[ 2976.203208]        [<c037f0f0>]
>bus_for_each_dev+0x54/0x88
>> >> +[ 2976.203216]        [<c03800f0>] bus_add_driver+0xd8/0x1d8
>> >> +[ 2976.203223]        [<c038115c>] driver_register+0x78/0xf4
>> >> +[ 2976.203234]        [<c0008968>]
>do_one_initcall+0xe4/0x144
>> >> +[ 2976.203250]        [<c07d3c18>]
>> >kernel_init_freeable+0xfc/0x1cc
>> >> +[ 2976.203261]        [<c0563260>] kernel_init+0x8/0xec
>> >> +[ 2976.203275]        [<c000e648>] ret_from_fork+0x14/0x2c
>> >> +[ 2976.203284]
>> >> +[ 2976.203284] -> #0 (console_lock){+.+.+.}:
>> >> +[ 2976.203301]        [<c008bc00>] console_lock+0x4c/0x60
>> >> +[ 2976.203328]        [<bf07a310>]
>> >OMAPLFBUnblankDisplay+0x24/0xbc
>> >> [omaplfb]
>> >> +[ 2976.203340]        [<bf0797f4>] OpenDCDevice+0x60/0x78
>> >[omaplfb]
>> >> +[ 2976.203459]        [<bf041ac0>]
>> >PVRSRVOpenDCDeviceKM+0xec/0x178
>> >> [pvrsrvkm]
>> >> +[ 2976.203654]        [<bf05645c>]
>> >PVRSRVOpenDCDeviceBW+0x6c/0xac
>> >> [pvrsrvkm]
>> >> +[ 2976.203811]        [<bf056d10>]
>BridgedDispatchKM+0xf4/0x14c
>> >[pvrsrvkm]
>> >> +[ 2976.203966]        [<bf04f304>]
>> >PVRSRV_BridgeDispatchKM+0xf0/0x204
>> >> +[pvrsrvkm]
>> >> +[ 2976.203987]        [<c0129500>] do_vfs_ioctl+0x78/0x61c
>> >> +[ 2976.203997]        [<c0129b08>] SyS_ioctl+0x64/0x74
>> >> +[ 2976.204013]        [<c000e580>] ret_fast_syscall+0x0/0x48
>> >> +[ 2976.204016]
>> >> +[ 2976.204016] other info that might help us debug this:
>> >> +[ 2976.204016]
>> >> +[ 2976.204019]  Possible unsafe locking scenario:
>> >> +[ 2976.204019]
>> >> +[ 2976.204022]        CPU0                    CPU1
>> >> +[ 2976.204024]        ----                    ----
>> >> +[ 2976.204030]   lock(&fb_info->lock);
>> >> +[ 2976.204036]
>> >lock(console_lock);
>> >> +[ 2976.204041]                                lock(&fb_info-
>> >>lock);
>> >> +[ 2976.204046]   lock(console_lock);
>> >> +[ 2976.204048]
>> >> +[ 2976.204048]  *** DEADLOCK ***
>> >> +[ 2976.204048]
>> >> +[ 2976.204055] 2 locks held by OGLES2Chameleon/1203:
>> >> +[ 2976.204217]  #0:  (psPVRSRVMutex#2/1){+.+.+.}, at:
>> >[<bf04f238>]
>> >> +PVRSRV_BridgeDispatchKM+0x24/0x204 [pvrsrvkm] [ 2976.204240]
>> >#1:
>> >> +(&fb_info->lock){+.+.+.}, at: [<c0312358>]
>> >lock_fb_info+0x18/0x3c
>> >> +
>> >> +Signed-off-by: Darren Etheridge <detheridge at ti.com>
>> >> +---
>> >> +
>> >GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/omaplfb_linux.c
>|
>> >8
>> >> ++++++---
>> >>
>+GFX_Linux_KM/services4/3rdparty/dc_ti43xx_linux/omaplfb_linux.c
>> >| 7
>> >> ++++++--
>> >> + 2 files changed, 10 insertions(+), 5 deletions(-)
>> >> +
>> >> +diff --git
>> >>
>>
>>+a/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/omaplfb_linux.
>c
>> >>
>>
>>+b/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/omaplfb_linux.
>c
>> >> +index 3857b95..a5cc7d0 100644
>> >> +---
>>
>>a/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/omaplfb_linux.c
>> >> ++++
>>
>>b/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/omaplfb_linux.c
>> >> +@@ -812,10 +812,13 @@ static OMAPLFB_ERROR
>> >> +OMAPLFBBlankOrUnblankDisplay(OMAPLFB_DEVINFO *psDevInfo, IM
>{
>> >> #ifdef
>> >> +FBDEV_PRESENT
>> >> + 	int res;
>> >> ++
>> >> ++	OMAPLFB_CONSOLE_LOCK();
>> >> + 	if (!lock_fb_info(psDevInfo->psLINFBInfo))
>> >> + 	{
>> >> + 		printk(KERN_ERR DRIVER_PREFIX
>> >> + 			": %s: Device %u: Couldn't lock FB
>info\n",
>> >> __FUNCTION__,
>> >> + psDevInfo->uiFBDevID);
>> >> ++		OMAPLFB_CONSOLE_UNLOCK();
>> >> + 		return (OMAPLFB_ERROR_GENERIC);
>> >> + 	}
>> >> +
>> >> +@@ -825,14 +828,13 @@ static OMAPLFB_ERROR
>> >> OMAPLFBBlankOrUnblankDisplay(OMAPLFB_DEVINFO *psDevInfo, IM
>> >> + 	* notification.
>> >> + 	*/
>> >> +
>> >> +-
>> >> +-	OMAPLFB_CONSOLE_LOCK();
>> >> + 	psDevInfo->psLINFBInfo->flags |=
>FBINFO_MISC_USEREVENT;
>> >> + 	res = fb_blank(psDevInfo->psLINFBInfo, bBlank ? 1 :
>0);
>> >> + 	psDevInfo->psLINFBInfo->flags &=
>~FBINFO_MISC_USEREVENT;
>> >> +
>> >> +-	OMAPLFB_CONSOLE_UNLOCK();
>> >> + 	unlock_fb_info(psDevInfo->psLINFBInfo);
>> >> ++	OMAPLFB_CONSOLE_UNLOCK();
>> >> ++
>> >> + 	if (res != 0 && res != -EINVAL)
>> >> + 	{
>> >> + 		printk(KERN_ERR DRIVER_PREFIX
>> >> +diff --git
>> >>
>>
>>+a/GFX_Linux_KM/services4/3rdparty/dc_ti43xx_linux/omaplfb_linux.
>c
>> >>
>>
>>+b/GFX_Linux_KM/services4/3rdparty/dc_ti43xx_linux/omaplfb_linux.
>c
>> >> +index c79dbd0..58b8640 100755
>> >> +---
>>
>>a/GFX_Linux_KM/services4/3rdparty/dc_ti43xx_linux/omaplfb_linux.c
>> >> ++++
>>
>>b/GFX_Linux_KM/services4/3rdparty/dc_ti43xx_linux/omaplfb_linux.c
>> >> +@@ -948,10 +948,13 @@ static OMAPLFB_ERROR
>> >> +OMAPLFBBlankOrUnblankDisplay(OMAPLFB_DEVINFO *psDevInfo, IM
>{
>> >> #ifdef
>> >> +FBDEV_PRESENT
>> >> + 	int res;
>> >> ++
>> >> ++	OMAPLFB_CONSOLE_LOCK();
>> >> + 	if (!lock_fb_info(psDevInfo->psLINFBInfo))
>> >> + 	{
>> >> + 		printk(KERN_ERR DRIVER_PREFIX
>> >> + 		": %s: Device %u: Couldn't lock FB info\n",
>> >__FUNCTION__,
>> >> + psDevInfo->uiFBDevID);
>> >> ++		OMAPLFB_CONSOLE_UNLOCK();
>> >> + 		return (OMAPLFB_ERROR_GENERIC);
>> >> + 	}
>> >> +
>> >> +@@ -961,13 +964,13 @@ static OMAPLFB_ERROR
>> >> OMAPLFBBlankOrUnblankDisplay(OMAPLFB_DEVINFO *psDevInfo, IM
>> >> + 	* notification.
>> >> + 	*/
>> >> +
>> >> +-	OMAPLFB_CONSOLE_LOCK();
>> >> + 	psDevInfo->psLINFBInfo->flags |=
>FBINFO_MISC_USEREVENT;
>> >> + 	res = fb_blank(psDevInfo->psLINFBInfo, bBlank ? 1 :
>0);
>> >> + 	psDevInfo->psLINFBInfo->flags &=
>~FBINFO_MISC_USEREVENT;
>> >> +
>> >> +-	OMAPLFB_CONSOLE_UNLOCK();
>> >> + 	unlock_fb_info(psDevInfo->psLINFBInfo);
>> >> ++	OMAPLFB_CONSOLE_UNLOCK();
>> >> ++
>> >> + 	if (res != 0 && res != -EINVAL)
>> >> + 	{
>> >> + 		printk(KERN_ERR DRIVER_PREFIX
>> >> +--
>> >> +1.9.1
>> >> +
>> >> diff --git a/recipes-bsp/powervr-drivers/omap3-sgx-modules-
>> >5.01.01.01/0004-
>> >> SGX-linux-make-it-building-against-ti-linux-3.14.y.patch
>> >b/recipes-
>> >> bsp/powervr-drivers/omap3-sgx-modules-5.01.01.01/0004-SGX-
>linux-
>> >make-it-
>> >> building-against-ti-linux-3.14.y.patch
>> >> new file mode 100644
>> >> index 0000000..b9c004f
>> >> --- /dev/null
>> >> +++ b/recipes-bsp/powervr-drivers/omap3-sgx-modules-
>> >5.01.01.01/0004-SGX-
>> >> +++ linux-make-it-building-against-ti-linux-3.14.y.patch
>> >> @@ -0,0 +1,44 @@
>> >> +From 21e14daefe16351320e01392f188cf473f67702f Mon Sep 17
>> >00:00:00
>> >> 2001
>> >> +From: Darren Etheridge <detheridge at ti.com>
>> >> +Date: Tue, 29 Jul 2014 15:54:14 -0500
>> >> +Subject: [PATCH 4/4] SGX: linux: make it building against
>> >> +ti-linux-3.14.y
>> >> +
>> >> +The fbdev drivers moved into their own directory under
>> >drivers/video.
>> >> +All of the omap2 dss stuff moved there as well so update the
>> >Makefile
>> >> +to point to the right place.
>> >> +
>> >> +Signed-off-by: Darren Etheridge <detheridge at ti.com>
>> >> +---
>> >> + GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/Kbuild | 2
>+-
>> >> +GFX_Linux_KM/services4/3rdparty/dc_ti43xx_linux/Kbuild | 2
>+-
>> >> + 2 files changed, 2 insertions(+), 2 deletions(-)
>> >> +
>> >> +diff --git
>> >a/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/Kbuild
>> >> +b/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/Kbuild
>> >> +index 1ae2359..7c2a39d 100755
>> >> +--- a/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/Kbuild
>> >> ++++ b/GFX_Linux_KM/services4/3rdparty/dc_ti335x_linux/Kbuild
>> >> +@@ -14,7 +14,7 @@ EXTRA_CFLAGS =	-DLINUX \
>> >> + 		-I$(PVR_BUILD_DIR)/include4 \
>> >> + 		-I$(PVR_BUILD_DIR)/services4/include \
>> >> + 		-
>I$(PVR_BUILD_DIR)/services4/system/$(PVR_SYSTEM) \
>> >> +-		-I$(KERNELDIR)/drivers/video/omap2 \
>> >> ++		-I$(KERNELDIR)/drivers/video/fbdev/omap2 \
>> >> + 		-I$(PVR_BUILD_DIR)/services4/system/include \
>> >> + 		$(SYS_CFLAGS.1) \
>> >> +
>> >> +diff --git
>> >a/GFX_Linux_KM/services4/3rdparty/dc_ti43xx_linux/Kbuild
>> >> +b/GFX_Linux_KM/services4/3rdparty/dc_ti43xx_linux/Kbuild
>> >> +index 1ae2359..7c2a39d 100755
>> >> +--- a/GFX_Linux_KM/services4/3rdparty/dc_ti43xx_linux/Kbuild
>> >> ++++ b/GFX_Linux_KM/services4/3rdparty/dc_ti43xx_linux/Kbuild
>> >> +@@ -14,7 +14,7 @@ EXTRA_CFLAGS =	-DLINUX \
>> >> + 		-I$(PVR_BUILD_DIR)/include4 \
>> >> + 		-I$(PVR_BUILD_DIR)/services4/include \
>> >> + 		-
>I$(PVR_BUILD_DIR)/services4/system/$(PVR_SYSTEM) \
>> >> +-		-I$(KERNELDIR)/drivers/video/omap2 \
>> >> ++		-I$(KERNELDIR)/drivers/video/fbdev/omap2 \
>> >> + 		-I$(PVR_BUILD_DIR)/services4/system/include \
>> >> + 		$(SYS_CFLAGS.1) \
>> >> +
>> >> +--
>> >> +1.9.1
>> >> +
>> >> diff --git a/recipes-bsp/powervr-drivers/omap3-sgx-
>> >modules_5.01.01.01.bb
>> >> b/recipes-bsp/powervr-drivers/omap3-sgx-modules_5.01.01.01.bb
>> >> index 40bf8c0..0b1c06f 100644
>> >> --- a/recipes-bsp/powervr-drivers/omap3-sgx-
>> >modules_5.01.01.01.bb
>> >> +++ b/recipes-bsp/powervr-drivers/omap3-sgx-
>> >modules_5.01.01.01.bb
>> >> @@ -10,7 +10,7 @@ IMGPV = "1.10.2359475"
>> >>
>> >>  inherit module
>> >>
>> >> -MACHINE_KERNEL_PR_append = "a"
>> >> +MACHINE_KERNEL_PR_append = "b"
>> >>  PR = "${MACHINE_KERNEL_PR}"
>> >>
>> >>  BINFILE_HARDFP =
>"Graphics_SDK_setuplinux_hardfp_${SGXPV}.bin"
>> >> @@ -33,6 +33,11 @@ BINFILE := "${BINFILE_HARDFP}"
>> >>
>> >>  SRC_URI = "http://software-
>> >>
>>
>>dl.ti.com/dsps/dsps_public_sw/gfxsdk/${SGXPV}/exports/${BINFILE}"
>> >>
>> >> +SRC_URI += "file://0001-PoC-GFX-SDK-Make-5_01_01_01-work-
>> >against-3.14-
>> >> LTS.patch;striplevel=2 \
>> >> +            file://0002-SGX-linux-use-platform-data-to-
>provide-
>> >reset-
>> >> info.patch;striplevel=2 \
>> >> +            file://0003-SGX-displayclass-am335x-am437x-fix-
>> >mutex-deadlock-
>> >> wa.patch;striplevel=2 \
>> >> +            file://0004-SGX-linux-make-it-building-against-
>ti-
>> >linux-
>> >> 3.14.y.patch;striplevel=2"
>> >> +
>> >>  SRC_URI[md5sum] := "${MD5SUM_HARDFP}"
>> >>  SRC_URI[sha256sum] := "${SHA256SUM_HARDFP}"
>> >>
>> >> --
>> >> 2.0.2
>> >>
>> >> --
>> >> _______________________________________________
>> >> meta-ti mailing list
>> >> meta-ti at yoctoproject.org
>> >> https://lists.yoctoproject.org/listinfo/meta-ti
>> >--
>> >_______________________________________________
>> >meta-ti mailing list
>> >meta-ti at yoctoproject.org
>> >https://lists.yoctoproject.org/listinfo/meta-ti
>> --
>> _______________________________________________
>> meta-ti mailing list
>> meta-ti at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/meta-ti


More information about the meta-ti mailing list