static int set_lcdfreq_div(struct device *dev, enum lcdfreq_level level) { struct lcdfreq_info *info = dev_get_drvdata(dev); u32 ret; mutex_lock(&info->lock); if (!info->enable) { dev_err(dev, "%s reject. enable flag is %d\n", __func__, info->enable); ret = -EINVAL; goto exit; } ret = set_div(dev, info->table[level].cmu_div); if (ret) { dev_err(dev, "skip to change lcd freq\n"); goto exit; } info->level = level; exit: mutex_unlock(&info->lock); return ret; }
static int set_lcdfreq_div(struct device *dev, enum lcdfreq_level level) { struct lcdfreq_info *info = dev_get_drvdata(dev); u32 ret; mutex_lock(&info->lock); if (!info->enable) { dev_err(dev, "%s reject. enable flag is %d\n", __func__, info->enable); ret = -EINVAL; goto exit; } ret = set_div(dev, info->table[level].cmu_div); if (ret) { dev_err(dev, "skip to change lcd freq\n"); goto exit; } #ifdef CONFIG_LCD_FREQ_SWITCH_ACCOUNTING do_time_slice(info->level); #endif info->level = level; exit: mutex_unlock(&info->lock); return ret; }
static int set_lcdfreq_div(struct device *dev, enum lcdfreq_level_idx level) { struct fb_info *fb = dev_get_drvdata(dev); struct s3cfb_window *win = fb->par; struct s3cfb_global *fbdev = get_fimd_global(win->id); struct lcdfreq_info *lcdfreq = fbdev->data; u32 div, ret; mutex_lock(&lcdfreq->lock); if (unlikely(fbdev->system_state == POWER_OFF || !lcdfreq->enable)) { dev_err(dev, "%s reject. %d, %d\n", __func__, fbdev->system_state, lcdfreq->enable); ret = -EINVAL; goto exit; } div = lcdfreq->table[level].cmu_clkdiv; ret = set_div(fbdev, div); if (ret) { dev_err(dev, "fail to change lcd freq\n"); goto exit; } #ifdef CONFIG_LCD_FREQ_SWITCH_ACCOUNTING do_time_slice(lcdfreq->level); #endif lcdfreq->level = level; exit: mutex_unlock(&lcdfreq->lock); return ret; }