This patch adjusts the omap3630 portion of the powervr driver to use the new
clk kernel api.

Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
----
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	
