From: Yann E. MORIN Date: Wed, 26 Feb 2014 18:43:14 +0000 (+0100) Subject: package/ti-gfx: number and fix the new-clk-api patch X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1a52145ac3a0099f1882dc3a0713f2efa160d0a6;p=buildroot.git package/ti-gfx: number and fix the new-clk-api patch Add a sequence number to the newclkapi patch. Rebase it ontop of the 5.01.00.01 release. Note: this is barely tested. It applies neatly, but I can't test it, since I do not have the hardware. I bumped the patch by basically renaming the problematic functions like the previous patch did: s/clk_enable/clk_prepare_enable/ s/clk_disable/clk_disable_unprepare/ Signed-off-by: "Yann E. MORIN" Cc: Spenser Gilliland Signed-off-by: Peter Korsgaard --- diff --git a/package/ti-gfx/ti-gfx-0000-newclkapi.patch b/package/ti-gfx/ti-gfx-0000-newclkapi.patch new file mode 100644 index 0000000000..69574c15f4 --- /dev/null +++ b/package/ti-gfx/ti-gfx-0000-newclkapi.patch @@ -0,0 +1,118 @@ +This patch adjusts the omap3630 portion of the powervr driver to use the new +clk kernel api. + +Signed-off-by: Spenser Gilliland +[yann.morin.1998@free.fr: rebased ontop of 5.01.00.01] +Signed-off-by: "Yann E. MORIN" +diff -durN ti-gfx-5_01_00_01.orig/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c ti-gfx-5_01_00_01/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c +--- ti-gfx-5_01_00_01.orig/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c 2013-12-23 15:44:20.000000000 +0100 ++++ ti-gfx-5_01_00_01/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c 2014-02-26 19:17:39.829571846 +0100 +@@ -182,6 +182,49 @@ + @Return PVRSRV_ERROR + + ******************************************************************************/ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) ++int clk_disable_unprepare(struct clk *clk) ++{ ++ return clk_disable(clk); ++} ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) ++int clk_disable_unprepare(struct clk *clk) ++{ ++ res = clk_disable(clk); ++ if (res < 0) ++ return res; ++ ++ res = clk_unprepare(clk); ++ if (ret < 0) ++ return res; ++ ++ return 0; ++} ++#endif ++ ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) ++int clk_prepare_enable(struct clk *clk) ++{ ++ return clk_enable(clk); ++} ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) ++int clk_prepare_enable(struct clk *clk) ++{ ++ res = clk_prepare(clk); ++ if (ret < 0) ++ return res; ++ ++ res = clk_enable(clk); ++ if (res < 0) { ++ clk_unprepare(clk); ++ return res; ++ } ++ ++ return 0; ++} ++#endif ++ + PVRSRV_ERROR EnableSGXClocks(SYS_DATA *psSysData) + { + #if !defined(NO_HARDWARE) +@@ -198,7 +241,7 @@ + + #if !defined(PM_RUNTIME_SUPPORT) + PVR_DPF((PVR_DBG_MESSAGE, "EnableSGXClocks: Enabling SGX Clocks")); +- res=clk_enable(psSysSpecData->psSGX_FCK); ++ res=clk_prepare_enable(psSysSpecData->psSGX_FCK); + if (res < 0) + { + PVR_DPF((PVR_DBG_ERROR, "EnableSGXClocks: Couldn't enable SGX functional clock (%d)", res)); +@@ -324,7 +367,7 @@ + + PVR_DPF((PVR_DBG_MESSAGE, "DisableSGXClocks: Disabling SGX Clocks")); + #if !defined(PM_RUNTIME_SUPPORT) +- clk_disable(psSysSpecData->psSGX_FCK); ++ clk_disable_unprepare(psSysSpecData->psSGX_FCK); + #endif + SysDisableSGXInterrupts(psSysData); + +@@ -540,14 +583,14 @@ + rate = clk_get_rate(psSysSpecData->psGPT11_FCK); + PVR_TRACE(("GPTIMER11 clock is %dMHz", HZ_TO_MHZ(rate))); + +- res = clk_enable(psSysSpecData->psGPT11_FCK); ++ res = clk_prepare_enable(psSysSpecData->psGPT11_FCK); + if (res < 0) + { + PVR_DPF((PVR_DBG_ERROR, "EnableSystemClocks: Couldn't enable GPTIMER11 functional clock (%d)", res)); + goto ExitError; + } + +- res = clk_enable(psSysSpecData->psGPT11_ICK); ++ res = clk_prepare_enable(psSysSpecData->psGPT11_ICK); + if (res < 0) + { + PVR_DPF((PVR_DBG_ERROR, "EnableSystemClocks: Couldn't enable GPTIMER11 interface clock (%d)", res)); +@@ -610,9 +653,9 @@ + + ExitDisableGPT11ICK: + #if defined(PVR_OMAP4_TIMING_PRCM) +- clk_disable(psSysSpecData->psGPT11_ICK); ++ clk_disable_unprepare(psSysSpecData->psGPT11_ICK); + ExitDisableGPT11FCK: +- clk_disable(psSysSpecData->psGPT11_FCK); ++ clk_disable_unprepare(psSysSpecData->psGPT11_FCK); + ExitError: + #endif /* defined(PVR_OMAP4_TIMING_PRCM) */ + eError = PVRSRV_ERROR_CLOCK_REQUEST_FAILED; +@@ -664,9 +707,9 @@ + psSysSpecData->sTimerRegPhysBase.uiAddr = 0; + #endif + #if defined(PVR_OMAP4_TIMING_PRCM) +- clk_disable(psSysSpecData->psGPT11_ICK); ++ clk_disable_unprepare(psSysSpecData->psGPT11_ICK); + +- clk_disable(psSysSpecData->psGPT11_FCK); ++ clk_disable_unprepare(psSysSpecData->psGPT11_FCK); + #endif /* defined(PVR_OMAP4_TIMING_PRCM) */ + } + #endif /* PVR_OMAP_USE_DM_TIMER_API */ diff --git a/package/ti-gfx/ti-gfx-newclkapi.patch b/package/ti-gfx/ti-gfx-newclkapi.patch deleted file mode 100644 index 8f50c7ee12..0000000000 --- a/package/ti-gfx/ti-gfx-newclkapi.patch +++ /dev/null @@ -1,143 +0,0 @@ -This patch adjusts the omap3630 portion of the powervr driver to use the new -clk kernel api. - -Signed-off-by: Spenser Gilliland ----- -Index: ti-gfx-4_09_00_01/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c -=================================================================== ---- ti-gfx-4_09_00_01.orig/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c 2013-06-28 13:44:06.352701522 -0500 -+++ ti-gfx-4_09_00_01/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c 2013-06-28 13:45:12.364702727 -0500 -@@ -153,6 +153,49 @@ - psTimingInfo->ui32ActivePowManLatencyms = SYS_SGX_ACTIVE_POWER_LATENCY_MS; - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) -+int clk_disable_unprepare(struct clk *clk) -+{ -+ return clk_disable(clk); -+} -+#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) -+int clk_disable_unprepare(struct clk *clk) -+{ -+ res = clk_disable(clk); -+ if (res < 0) -+ return res; -+ -+ res = clk_unprepare(clk); -+ if (ret < 0) -+ return res; -+ -+ return 0; -+} -+#endif -+ -+ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) -+int clk_prepare_enable(struct clk *clk) -+{ -+ return clk_enable(clk); -+} -+#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) -+int clk_prepare_enable(struct clk *clk) -+{ -+ res = clk_prepare(clk); -+ if (ret < 0) -+ return res; -+ -+ res = clk_enable(clk); -+ if (res < 0) { -+ clk_unprepare(clk); -+ return res; -+ } -+ -+ return 0; -+} -+#endif -+ - PVRSRV_ERROR EnableSGXClocks(SYS_DATA *psSysData) - { - #if !defined(NO_HARDWARE) -@@ -167,19 +210,19 @@ - - PVR_DPF((PVR_DBG_MESSAGE, "EnableSGXClocks: Enabling SGX Clocks")); - -- res=clk_enable(psSysSpecData->psSGX_FCK); -+ res=clk_prepare_enable(psSysSpecData->psSGX_FCK); - if (res < 0) - { - PVR_DPF((PVR_DBG_ERROR, "EnableSGXClocks: Couldn't enable SGX functional clock (%d)", res)); - return PVRSRV_ERROR_UNABLE_TO_ENABLE_CLOCK; - } - -- res=clk_enable(psSysSpecData->psSGX_ICK); -+ res=clk_prepare_enable(psSysSpecData->psSGX_ICK); - if (res < 0) - { - PVR_DPF((PVR_DBG_ERROR, "EnableSGXClocks: Couldn't enable SGX interface clock (%d)", res)); - -- clk_disable(psSysSpecData->psSGX_FCK); -+ clk_disable_unprepare(psSysSpecData->psSGX_FCK); - return PVRSRV_ERROR_UNABLE_TO_ENABLE_CLOCK; - } - -@@ -233,7 +276,6 @@ - return PVRSRV_OK; - } - -- - IMG_VOID DisableSGXClocks(SYS_DATA *psSysData) - { - #if !defined(NO_HARDWARE) -@@ -246,9 +288,9 @@ - - PVR_DPF((PVR_DBG_MESSAGE, "DisableSGXClocks: Disabling SGX Clocks")); - -- clk_disable(psSysSpecData->psSGX_FCK); -+ clk_disable_unprepare(psSysSpecData->psSGX_FCK); - -- clk_disable(psSysSpecData->psSGX_ICK); -+ clk_disable_unprepare(psSysSpecData->psSGX_ICK); - - // SysDisableSGXInterrupts(psSysData); - -@@ -374,14 +416,14 @@ - rate = clk_get_rate(psSysSpecData->psGPT11_FCK); - PVR_TRACE(("GPTIMER11 clock is %dMHz", HZ_TO_MHZ(rate))); - -- res = clk_enable(psSysSpecData->psGPT11_FCK); -+ res = clk_prepare_enable(psSysSpecData->psGPT11_FCK); - if (res < 0) - { - PVR_DPF((PVR_DBG_ERROR, "EnableSystemClocks: Couldn't enable GPTIMER11 functional clock (%d)", res)); - goto ExitError; - } - -- res = clk_enable(psSysSpecData->psGPT11_ICK); -+ res = clk_prepare_enable(psSysSpecData->psGPT11_ICK); - if (res < 0) - { - PVR_DPF((PVR_DBG_ERROR, "EnableSystemClocks: Couldn't enable GPTIMER11 interface clock (%d)", res)); -@@ -444,9 +486,9 @@ - - ExitDisableGPT11ICK: - #if defined(PVR_OMAP3_TIMING_PRCM) -- clk_disable(psSysSpecData->psGPT11_ICK); -+ clk_disable_unprepare(psSysSpecData->psGPT11_ICK); - ExitDisableGPT11FCK: -- clk_disable(psSysSpecData->psGPT11_FCK); -+ clk_disable_unprepare(psSysSpecData->psGPT11_FCK); - ExitError: - #endif - eError = PVRSRV_ERROR_CLOCK_REQUEST_FAILED; -@@ -490,9 +532,9 @@ - #endif - - #if defined(PVR_OMAP3_TIMING_PRCM) -- clk_disable(psSysSpecData->psGPT11_ICK); -+ clk_disable_unprepare(psSysSpecData->psGPT11_ICK); - -- clk_disable(psSysSpecData->psGPT11_FCK); -+ clk_disable_unprepare(psSysSpecData->psGPT11_FCK); - #endif - } - #endif