/* ********************************************************************************************************* * aw_pm_end * *Description: Notify the platform that system is in work mode now. * *Arguments : none * *Return : none * *Notes : This function is called by the PM core right after resuming devices, to indicate to * the platform that the system has returned to the working state or * the transition to the sleep state has been aborted. This function is opposited to * aw_pm_begin function. ********************************************************************************************************* */ void aw_pm_end(void) { struct cpufreq_policy *policy; #ifndef GET_CYCLE_CNT #ifndef IO_MEASURE restore_perfcounter(); #endif #endif pm_disable_watchdog(dogMode); if (backup_max_freq != 0 && backup_min_freq != 0) { policy = cpufreq_cpu_get(0); if (!policy) { printk("cpufreq_cpu_get err! check it! aw_pm_end:%d\n", __LINE__); return; } policy->user_policy.max = backup_max_freq; policy->user_policy.min = backup_min_freq; cpufreq_cpu_put(policy); cpufreq_update_policy(0); } if(unlikely(debug_mask&PM_STANDBY_PRINT_REG)){ printk("after dev suspend, line:%d\n", __LINE__); show_reg(SW_VA_CCM_IO_BASE, (CCU_REG_LENGTH)*4, "ccu"); show_reg(SW_VA_PORTC_IO_BASE, GPIO_REG_LENGTH*4, "gpio"); show_reg(SW_VA_TIMERC_IO_BASE, TMR_REG_LENGTH*4, "timer"); show_reg(SW_VA_TWI0_IO_BASE, TWI0_REG_LENGTH*4, "twi0"); show_reg(SW_VA_SRAM_IO_BASE, SRAM_REG_LENGTH*4, "sram"); if (userdef_reg_addr != 0 && userdef_reg_size != 0) { show_reg(userdef_reg_addr, userdef_reg_size*4, "user defined"); } } PM_DBG("aw_pm_end!\n"); }
/* ********************************************************************************************************* * aw_pm_end * *Description: Notify the platform that system is in work mode now. * *Arguments : none * *Return : none * *Notes : This function is called by the PM core right after resuming devices, to indicate to * the platform that the system has returned to the working state or * the transition to the sleep state has been aborted. This function is opposited to * aw_pm_begin function. ********************************************************************************************************* */ void aw_pm_end(void) { #ifndef GET_CYCLE_CNT #ifndef IO_MEASURE restore_perfcounter(); #endif #endif pm_disable_watchdog(0); if(unlikely(debug_mask&PM_STANDBY_PRINT_REG)){ printk("after dev suspend, line:%d\n", __LINE__); show_reg(SW_VA_CCM_IO_BASE, (CCU_REG_LENGTH)*4, "ccu"); show_reg(SW_VA_PORTC_IO_BASE, GPIO_REG_LENGTH*4, "gpio"); show_reg(SW_VA_TIMERC_IO_BASE, TMR_REG_LENGTH*4, "timer"); show_reg(SW_VA_TWI0_IO_BASE, TWI0_REG_LENGTH*4, "twi0"); show_reg(SW_VA_SRAM_IO_BASE, SRAM_REG_LENGTH*4, "sram"); if (userdef_reg_addr != 0 && userdef_reg_size != 0) { show_reg(userdef_reg_addr, userdef_reg_size*4, "user defined"); } } PM_DBG("aw_pm_end!\n"); }