Merge "msm: mdss: Turn off backlight while blank-unblank in continuous splash"
diff --git a/drivers/video/msm/mdss/mdp3_ctrl.c b/drivers/video/msm/mdss/mdp3_ctrl.c
index 4489685..9c909bf 100644
--- a/drivers/video/msm/mdss/mdp3_ctrl.c
+++ b/drivers/video/msm/mdss/mdp3_ctrl.c
@@ -634,6 +634,8 @@
mutex_lock(&mdp3_session->lock);
vsync_client = mdp3_dma->vsync_client;
+ if (panel && panel->set_backlight)
+ panel->set_backlight(panel, 0);
rc = mdp3_dma->stop(mdp3_dma, mdp3_session->intf);
if (rc) {
@@ -807,6 +809,8 @@
struct mdp3_img_data *data;
struct mdss_panel_info *panel_info = mfd->panel_info;
int rc = 0;
+ bool reset_done = false;
+ struct mdss_panel_data *panel;
if (!mfd || !mfd->mdp.private1)
return -EINVAL;
@@ -820,9 +824,11 @@
return -EPERM;
}
+ panel = mdp3_session->panel;
if (!mdp3_iommu_is_attached(MDP3_CLIENT_DMA_P)) {
pr_debug("continuous splash screen, IOMMU not attached\n");
mdp3_ctrl_reset(mfd);
+ reset_done = true;
}
mdp3_release_splash_memory();
@@ -852,6 +858,8 @@
msleep(1000 / panel_info->mipi.frame_rate);
mdp3_session->first_commit = false;
}
+ if (reset_done && (panel && panel->set_backlight))
+ panel->set_backlight(panel, panel->panel_info.bl_max);
mutex_unlock(&mdp3_session->lock);