int mali_dev_resume() { int err = 0; _mali_osk_lock_wait(lock, _MALI_OSK_LOCKMODE_RW); if ((mali_dvfs_device_state == _MALI_DEVICE_RESUME) || (mali_device_state == _MALI_DEVICE_SUSPEND) ) { err = -EPERM; } if (!err) { mali_device_resume(MALI_PMM_EVENT_DVFS_RESUME, &dvfs_pm_thread); mali_dvfs_device_state = _MALI_DEVICE_RESUME; } _mali_osk_lock_signal(lock, _MALI_OSK_LOCKMODE_RW); return err; }
/** This function is called when mali GPU device is to be resumed */ static int mali_pm_resume(struct device *dev) { int err = 0; _mali_osk_lock_wait(lock, _MALI_OSK_LOCKMODE_RW); #ifdef CONFIG_REGULATOR mali_regulator_enable(); #endif if (mali_device_state == _MALI_DEVICE_RESUME) { _mali_osk_lock_signal(lock, _MALI_OSK_LOCKMODE_RW); return err; } err = mali_device_resume(MALI_PMM_EVENT_OS_POWER_UP, &pm_thread); mali_device_state = _MALI_DEVICE_RESUME; mali_dvfs_device_state = _MALI_DEVICE_RESUME; _mali_osk_lock_signal(lock, _MALI_OSK_LOCKMODE_RW); return err; }