gpu: enable gcdENABLE_LONG_IDLE_POWEROFF
author杜坤明 <dkm@rockchip.com>
Thu, 5 May 2011 02:32:42 +0000 (10:32 +0800)
committer杜坤明 <dkm@rockchip.com>
Thu, 5 May 2011 02:32:42 +0000 (10:32 +0800)
drivers/staging/rk29/vivante/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
drivers/staging/rk29/vivante/hal/inc/gc_hal_options.h
drivers/staging/rk29/vivante/hal/os/linux/kernel/gc_hal_kernel_driver.c

index 5f086e2133afacc39de9e141d4bba30b899a18bc..e518bd6cdd0620870e730b681c07874da0f70af4 100755 (executable)
@@ -2896,6 +2896,9 @@ gckHARDWARE_SetPowerManagementState(
     gctBOOL stall = gcvTRUE;
     gctBOOL broadcast = gcvFALSE;
     gctUINT32 process, thread;
+#if gcdENABLE_LONG_IDLE_POWEROFF
+    gceCHIPPOWERSTATE curState = State;
+#endif
 
     /* State transition flags. */
     static const gctUINT flags[4][4] =
@@ -2986,17 +2989,6 @@ gckHARDWARE_SetPowerManagementState(
     os = Hardware->os;
     gcmkVERIFY_OBJECT(os, gcvOBJ_OS);
 
-#if gcdENABLE_LONG_IDLE_POWEROFF
-    if(gcvPOWER_IDLE_BROADCAST==State) {
-        cancel_delayed_work_sync(&poweroff_work);
-        schedule_delayed_work(&poweroff_work, 5*HZ);
-    } else if(gcvPOWER_OFF_BROADCAST==State) {
-        // NULL
-    } else {
-        cancel_delayed_work_sync(&poweroff_work);
-    }
-#endif
-
     /* Convert the broadcast power state. */
     switch (State)
     {
@@ -3091,7 +3083,7 @@ gckHARDWARE_SetPowerManagementState(
         /* Acquire the power mutex. */
         gcmkONERROR(gckOS_AcquireMutex(os, Hardware->powerMutex, gcvINFINITE));
     }
-
+    
     Hardware->powerProcess = process;
     Hardware->powerThread  = thread;
     mutexAcquired          = gcvTRUE;
@@ -3100,6 +3092,17 @@ gckHARDWARE_SetPowerManagementState(
     flag  = flags[Hardware->chipPowerState][State];
     clock = clocks[State];
 
+#if gcdENABLE_LONG_IDLE_POWEROFF
+    if(gcvPOWER_IDLE_BROADCAST==curState) {
+        cancel_delayed_work_sync(&poweroff_work);
+        schedule_delayed_work(&poweroff_work, 5*HZ);
+    } else if(gcvPOWER_OFF_BROADCAST==curState) {
+        // NULL
+    } else {
+        cancel_delayed_work_sync(&poweroff_work);
+    }
+#endif
+
     if ((flag == 0) || (Hardware->settingPowerState))
     {
 #if gcdENABLE_LONG_IDLE_POWEROFF
index 75484e663c8f403f2b9adf510873cbc325ad2289..eb3debc7513388817141f57031e2cf9aa251694b 100755 (executable)
     ÕâÑù¿ÉÒÔʹijЩ²»Ê¹ÓÃGPUµÄ³¡¾°µÄ¹¦ºÄ½øÒ»²½½µµÍ£¬ÈçÊÓÆµ²¥·Åʱ£¬Ò»¼¶´ý»úʱ£¬
     »ò³¤Ê±¼ä²»²Ù×÷½çÃæµ«»¹Î´½øÈëÒ»¼¶´ý»ú
 */
-#define gcdENABLE_LONG_IDLE_POWEROFF        0
+#define gcdENABLE_LONG_IDLE_POWEROFF        1
 
 #endif /* __gc_hal_options_h_ */
 
index 29fb592e7db485b35bb810c2fd5cb87cea223731..760a6fb84add83c6999c34dd028a22816a0b9816 100755 (executable)
@@ -708,8 +708,8 @@ static void drv_exit(void)
     gcmkTRACE_ZONE(gcvLEVEL_VERBOSE, gcvZONE_DRIVER,
                  "[galcore] Entering drv_exit\n");
 
-#if 0
-    misc_deregister(&miscdev);
+#if 1
+    //misc_deregister(&miscdev);
 #else
 
        device_destroy(gpuClass, MKDEV(major, 0));