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

Denys Dmytriyenko denys at ti.com
Wed Jul 30 11:43:58 PDT 2014


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