diff options
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi.c | 2 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi.h | 1 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dsi_panel.c | 17 |
3 files changed, 19 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi.c b/drivers/video/fbdev/msm/mdss_dsi.c index edeadf8aa807..133069fb51b2 100644 --- a/drivers/video/fbdev/msm/mdss_dsi.c +++ b/drivers/video/fbdev/msm/mdss_dsi.c @@ -2593,7 +2593,7 @@ int dsi_panel_device_register(struct device_node *pan_node, return rc; } if (ctrl_pdata->bklt_ctrl == BL_PWM) - ctrl_pdata->pwm_enabled = 1; + mdss_dsi_panel_pwm_enable(ctrl_pdata); pinfo->blank_state = MDSS_PANEL_BLANK_UNBLANK; mdss_dsi_clk_ctrl(ctrl_pdata, DSI_ALL_CLKS, 1); ctrl_pdata->ctrl_state |= diff --git a/drivers/video/fbdev/msm/mdss_dsi.h b/drivers/video/fbdev/msm/mdss_dsi.h index a6518ccfb497..8bfb5aba2411 100644 --- a/drivers/video/fbdev/msm/mdss_dsi.h +++ b/drivers/video/fbdev/msm/mdss_dsi.h @@ -488,6 +488,7 @@ void mdss_dsi_phy_disable(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_cmd_test_pattern(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_video_test_pattern(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_panel_pwm_cfg(struct mdss_dsi_ctrl_pdata *ctrl); +bool mdss_dsi_panel_pwm_enable(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_ctrl_phy_restore(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_ctrl_init(struct device *ctrl_dev, struct mdss_dsi_ctrl_pdata *ctrl); diff --git a/drivers/video/fbdev/msm/mdss_dsi_panel.c b/drivers/video/fbdev/msm/mdss_dsi_panel.c index d6e767ecac17..982dddda5703 100644 --- a/drivers/video/fbdev/msm/mdss_dsi_panel.c +++ b/drivers/video/fbdev/msm/mdss_dsi_panel.c @@ -55,6 +55,23 @@ void mdss_dsi_panel_pwm_cfg(struct mdss_dsi_ctrl_pdata *ctrl) ctrl->pwm_enabled = 0; } +bool mdss_dsi_panel_pwm_enable(struct mdss_dsi_ctrl_pdata *ctrl) +{ + bool status = true; + if (!ctrl->pwm_enabled) + goto end; + + if (pwm_enable(ctrl->pwm_bl)) { + pr_err("%s: pwm_enable() failed\n", __func__); + status = false; + } + + ctrl->pwm_enabled = 1; + +end: + return status; +} + static void mdss_dsi_panel_bklt_pwm(struct mdss_dsi_ctrl_pdata *ctrl, int level) { int ret; |
