void free_dvfs_lock(struct work_struct *work) { struct wacom_i2c *wac_i2c = container_of(work, struct wacom_i2c, dvfs_work.work); #ifdef SEC_BUS_LOCK #if defined(CONFIG_MACH_P4NOTE) dev_unlock(wac_i2c->bus_dev, wac_i2c->dev); #else exynos4_busfreq_lock_free(DVFS_LOCK_ID_PEN); #endif #endif /* SEC_BUS_LOCK */ exynos_cpufreq_lock_free(DVFS_LOCK_ID_PEN); wac_i2c->dvfs_lock_status = false; }
void s3cfb_busfreq_lock(struct s3cfb_global *fbdev, unsigned int lock) { if (lock) { if (atomic_read(&fbdev->busfreq_lock_cnt) == 0) { exynos4_busfreq_lock(DVFS_LOCK_ID_LCD, BUS_L1); dev_info(fbdev->dev, "[%s] Bus Freq Locked L1\n", __func__); } atomic_inc(&fbdev->busfreq_lock_cnt); fbdev->busfreq_flag = true; } else { if (fbdev->busfreq_flag == true) { atomic_dec(&fbdev->busfreq_lock_cnt); fbdev->busfreq_flag = false; if (atomic_read(&fbdev->busfreq_lock_cnt) == 0) { /* release Freq lock back to normal */ exynos4_busfreq_lock_free(DVFS_LOCK_ID_LCD); dev_info(fbdev->dev, "[%s] Bus Freq lock Released Normal !!\n", __func__); } } } }
static inline void rotation_booster_off(void) { exynos_gpufreq_unlock(); exynos4_busfreq_lock_free(DVFS_LOCK_ID_ROTATION_BOOSTER); exynos_cpufreq_lock_free(DVFS_LOCK_ID_ROTATION_BOOSTER); }