From: 杜坤明 Date: Thu, 5 May 2011 02:32:42 +0000 (+0800) Subject: gpu: enable gcdENABLE_LONG_IDLE_POWEROFF X-Git-Tag: firefly_0821_release~10362 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6b8074e3bcd0edf3e7c8fd043f91776375d6c895;p=firefly-linux-kernel-4.4.55.git gpu: enable gcdENABLE_LONG_IDLE_POWEROFF --- diff --git a/drivers/staging/rk29/vivante/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c b/drivers/staging/rk29/vivante/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c index 5f086e2133af..e518bd6cdd06 100755 --- a/drivers/staging/rk29/vivante/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c +++ b/drivers/staging/rk29/vivante/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c @@ -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 diff --git a/drivers/staging/rk29/vivante/hal/inc/gc_hal_options.h b/drivers/staging/rk29/vivante/hal/inc/gc_hal_options.h index 75484e663c8f..eb3debc75133 100755 --- a/drivers/staging/rk29/vivante/hal/inc/gc_hal_options.h +++ b/drivers/staging/rk29/vivante/hal/inc/gc_hal_options.h @@ -294,7 +294,7 @@ ÕâÑù¿ÉÒÔʹijЩ²»Ê¹ÓÃGPUµÄ³¡¾°µÄ¹¦ºÄ½øÒ»²½½µµÍ£¬ÈçÊÓÆµ²¥·Åʱ£¬Ò»¼¶´ý»úʱ£¬ »ò³¤Ê±¼ä²»²Ù×÷½çÃæµ«»¹Î´½øÈëÒ»¼¶´ý»ú */ -#define gcdENABLE_LONG_IDLE_POWEROFF 0 +#define gcdENABLE_LONG_IDLE_POWEROFF 1 #endif /* __gc_hal_options_h_ */ diff --git a/drivers/staging/rk29/vivante/hal/os/linux/kernel/gc_hal_kernel_driver.c b/drivers/staging/rk29/vivante/hal/os/linux/kernel/gc_hal_kernel_driver.c index 29fb592e7db4..760a6fb84add 100755 --- a/drivers/staging/rk29/vivante/hal/os/linux/kernel/gc_hal_kernel_driver.c +++ b/drivers/staging/rk29/vivante/hal/os/linux/kernel/gc_hal_kernel_driver.c @@ -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));