static ssize_t mipi_samsung_fps_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { struct msm_fb_data_type *mfd; int goal_fps; int level = atoi(buf); mfd = platform_get_drvdata(msd.msm_pdev); if (mfd->panel_power_on == FALSE) { pr_err("%s fps set error, panel power off 1", __func__); return size; } if (level == 0) goal_fps = 60; else if (level == 1) goal_fps = 42; else if (level == 2) goal_fps = 51; else { pr_info("%s fps set error : invalid level %d", __func__, level); return size; } if (current_fps != goal_fps) current_fps = goal_fps; else return size; mutex_lock(&dsi_tx_mutex); if (mfd->panel_power_on == FALSE) { mutex_unlock(&dsi_tx_mutex); pr_info("%s fps set error, panel power off 2", __func__); return size; } else { if (get_ldi_chip() == LDI_LSI) { mipi_runtime_clk_change(current_fps); mutex_unlock(&dsi_tx_mutex); } else mutex_unlock(&dsi_tx_mutex); } pr_info("%s goal_fps : %d", __func__, goal_fps); return size; }
static ssize_t mipi_samsung_fps_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { struct msm_fb_data_type *mfd; int level = atoi(buf); mfd = platform_get_drvdata(msd.msm_pdev); if (mfd->panel_power_on == FALSE) { pr_err("%s fps set error, panel power off 1", __func__); return size; } /* tuning history. * goal_fps cannot be lower than 43, because mdp UNDERRUN - 2013.4.30 */ switch( level ) { case 0 : goal_fps = 60; break; case 1 : goal_fps = 43; break; case 2 : goal_fps = 51; break; default: pr_info("%s fps set error : invalid level %d", __func__, level); return size; } if (current_fps != goal_fps) current_fps = goal_fps; else return size; mutex_lock(&dsi_tx_mutex); if (mfd->panel_power_on == FALSE) { mutex_unlock(&dsi_tx_mutex); pr_info("%s fps set error, panel power off 2", __func__); return size; } else { mipi_runtime_clk_change(current_fps); mutex_unlock(&dsi_tx_mutex); } pr_info("%s goal_fps : %d", __func__, goal_fps); return size; }