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__);
			}
		}
	}
}
Esempio n. 3
0
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);
}