update early suspend
author杜坤明 <dkm@rockchip.com>
Tue, 15 Mar 2011 01:27:02 +0000 (09:27 +0800)
committer杜坤明 <dkm@rockchip.com>
Tue, 15 Mar 2011 01:27:02 +0000 (09:27 +0800)
drivers/staging/rk29/vivante/hal/os/linux/kernel/gc_hal_kernel_driver.c
drivers/staging/rk29/vivante/hal/os/linux/kernel/gc_hal_kernel_os.c

index ea477e089899140802ac7a1f7e990d07456e0b62..72cfb34c5dae91386b5d20ef5fb67b82bc4541bb 100755 (executable)
@@ -726,8 +726,11 @@ static void drv_exit(void)
     unregister_chrdev(major, DRV_NAME);
 #endif
 
+    mdelay(50); 
     gckGALDEVICE_Stop(galDevice);
+    mdelay(50); 
     gckGALDEVICE_Destroy(galDevice);
+    mdelay(50); 
 
 #if ENABLE_GPU_CLOCK_BY_DRIVER && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
     printk("gpu: %s clk_disable... ", __func__);
@@ -765,6 +768,8 @@ static void gpu_early_suspend(struct early_suspend *h)
     
     printk("Enter %s \n", __func__);
 
+    mdelay(50); //Wait for gpu finish
+
        status = gckHARDWARE_SetPowerManagementState(galDevice->kernel->hardware, gcvPOWER_SUSPEND);
 
        if (gcmIS_ERROR(status))
@@ -784,6 +789,8 @@ static void gpu_early_resume(struct early_suspend *h)
 
        status = gckHARDWARE_SetPowerManagementState(galDevice->kernel->hardware, gcvPOWER_IDLE);
 
+       mdelay(50);
+
        if (gcmIS_ERROR(status))
        {
            printk("%s fail!\n", __func__);
@@ -865,6 +872,8 @@ static int __devinit gpu_suspend(struct platform_device *dev, pm_message_t state
 
        device = platform_get_drvdata(dev);
 
+       mdelay(50); //Wait for gpu finish
+
        status = gckHARDWARE_SetPowerManagementState(device->kernel->hardware, gcvPOWER_SUSPEND);
 
        if (gcmIS_ERROR(status))
@@ -889,6 +898,8 @@ static int __devinit gpu_resume(struct platform_device *dev)
 
        status = gckHARDWARE_SetPowerManagementState(device->kernel->hardware, gcvPOWER_IDLE);
 
+       mdelay(50);
+
        if (gcmIS_ERROR(status))
        {
            printk("%s fail!\n", __func__);
index a2204747b6b429dcdef75d4b6752587bd78be7e4..28a0e29e7ae4760ebe2b054e2961275094b1b494 100755 (executable)
@@ -5938,21 +5938,23 @@ gckOS_SetGPUPower(
 
     if(lastclock!=Clock) 
     {
+        mdelay(10);
         if(Clock) {
             printk("gpu: clk_enable... ");
-            clk_enable(clk_hclk_gpu);
+            clk_enable(clk_gpu);
             clk_enable(clk_aclk_gpu);
             clk_enable(clk_aclk_ddr_gpu);
-            clk_enable(clk_gpu);
+            clk_enable(clk_hclk_gpu);
             printk("done!\n");
         } else {
             printk("gpu: clk_disable... ");
-            clk_disable(clk_gpu);
-            clk_disable(clk_aclk_gpu);
-            clk_disable(clk_aclk_ddr_gpu);
             clk_disable(clk_hclk_gpu);
+            clk_disable(clk_aclk_ddr_gpu);
+            clk_disable(clk_aclk_gpu);
+            clk_disable(clk_gpu);
             printk("done!\n");
         }
+        mdelay(10);
     }
     lastclock = Clock;