diff --git a/drivers/video/msm/msm_fb.c b/drivers/video/msm/msm_fb.c index 6025139cbee..89ccbb9ca3e 100644 --- a/drivers/video/msm/msm_fb.c +++ b/drivers/video/msm/msm_fb.c @@ -2556,6 +2556,7 @@ static int msmfb_overlay_play(struct fb_info *info, unsigned long *argp) int ret; struct msmfb_overlay_data req; struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par; + struct msm_fb_panel_data *pdata; if (mfd->overlay_play_enable == 0) /* nothing to do */ return 0; @@ -2579,6 +2580,19 @@ static int msmfb_overlay_play(struct fb_info *info, unsigned long *argp) ret = mdp4_overlay_play(info, &req); + if (unset_bl_level && !bl_updated) { + pdata = (struct msm_fb_panel_data *)mfd->pdev-> + dev.platform_data; + if ((pdata) && (pdata->set_backlight)) { + down(&mfd->sem); + mfd->bl_level = unset_bl_level; + pdata->set_backlight(mfd); + bl_level_old = unset_bl_level; + up(&mfd->sem); + } + bl_updated = 1; + } + return ret; }