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- >[email protected] >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: [email protected] [mailto:meta-ti- >> >[email protected]] On Behalf Of Cooper Jr., Franklin >> >Sent: Wednesday, July 30, 2014 1:38 PM >> >To: Denys Dmytriyenko; [email protected] >> >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. <[email protected]> >> > >> >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: [email protected] [mailto:meta-ti- >> >> [email protected]] On Behalf Of Denys Dmytriyenko >> >> Sent: Tuesday, July 29, 2014 8:35 PM >> >> To: [email protected] >> >> 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 <[email protected]> >> >> >> >> Signed-off-by: Denys Dmytriyenko <[email protected]> >> >> --- >> >> ...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 <[email protected]> >> >> +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 <[email protected]> >> >> +--- >> >> + >> >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 <[email protected]> >> >> +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 <[email protected]> >> >> +--- >> >> + 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 <[email protected]> >> >> +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 <[email protected]> >> >> +--- >> >> + >> >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 <[email protected]> >> >> +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 <[email protected]> >> >> +--- >> >> + 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 >> >> [email protected] >> >> https://lists.yoctoproject.org/listinfo/meta-ti >> >-- >> >_______________________________________________ >> >meta-ti mailing list >> >[email protected] >> >https://lists.yoctoproject.org/listinfo/meta-ti >> -- >> _______________________________________________ >> meta-ti mailing list >> [email protected] >> https://lists.yoctoproject.org/listinfo/meta-ti -- _______________________________________________ meta-ti mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-ti
