diff --git a/drivers/video/fbdev/msm/mdss_mdp_pp.c b/drivers/video/fbdev/msm/mdss_mdp_pp.c index 4a37ed844805..444029474157 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_pp.c +++ b/drivers/video/fbdev/msm/mdss_mdp_pp.c @@ -5124,6 +5124,7 @@ int mdss_mdp_ad_config(struct msm_fb_data_type *mfd, struct msm_fb_data_type *bl_mfd; int lin_ret = -1, inv_ret = -1, att_ret = -1, ret = 0; u32 last_ops; + struct mdss_overlay_private *mdp5_data; ret = mdss_mdp_get_ad(mfd, &ad); if (ret == -ENODEV || ret == -EPERM) { @@ -5195,6 +5196,9 @@ int mdss_mdp_ad_config(struct msm_fb_data_type *mfd, sizeof(struct mdss_ad_cfg)); ad->cfg.backlight_scale = MDSS_MDP_AD_BL_SCALE; ad->sts |= PP_AD_STS_DIRTY_CFG; + mdp5_data = mfd_to_mdp5_data(mfd); + if (mdp5_data) + mdp5_data->ad_events = 0; } last_ops = ad->ops & MDSS_PP_SPLIT_MASK; @@ -5235,6 +5239,7 @@ int mdss_mdp_ad_input(struct msm_fb_data_type *mfd, int ret = 0; struct mdss_ad_info *ad; u32 bl; + struct mdss_overlay_private *mdp5_data; ret = mdss_mdp_get_ad(mfd, &ad); if (ret == -ENODEV || ret == -EPERM) { @@ -5274,6 +5279,9 @@ int mdss_mdp_ad_input(struct msm_fb_data_type *mfd, ad->calc_itr = ad->cfg.stab_itr; ad->sts |= PP_AD_STS_DIRTY_VSYNC; ad->sts |= PP_AD_STS_DIRTY_DATA; + mdp5_data = mfd_to_mdp5_data(mfd); + if (mdp5_data) + mdp5_data->ad_events = 0; break; case MDSS_AD_MODE_TARG_STR: case MDSS_AD_MODE_MAN_STR: @@ -5555,7 +5563,6 @@ static int mdss_mdp_ad_setup(struct msm_fb_data_type *mfd) struct mdss_data_type *mdata; u32 bypass = MDSS_PP_AD_BYPASS_DEF, bl; u32 width; - struct mdss_overlay_private *mdp5_data; if (!mfd) { pr_err("mfd = 0x%p\n", mfd); @@ -5622,9 +5629,6 @@ static int mdss_mdp_ad_setup(struct msm_fb_data_type *mfd) ad->calc_itr = ad->cfg.stab_itr; ad->sts |= PP_AD_STS_DIRTY_VSYNC; ad->reg_sts |= PP_AD_STS_DIRTY_DATA; - mdp5_data = mfd_to_mdp5_data(mfd); - if (mdp5_data) - mdp5_data->ad_events = 0; } if (ad->sts & PP_AD_STS_DIRTY_CFG) {