summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPing Li <pingli@codeaurora.org>2015-10-28 11:02:23 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:47:11 -0700
commit531f5b81e56cbcf56f45067dce5b677101fb7364 (patch)
tree7a2c79e63d62daac7b3196e4540140c9ad077d8e /drivers
parent28276a4f1d00851b777e48202f9fe356d15be2b0 (diff)
msm: mdss: Reset AD state variables when FB device is released
When framebuffer device is released, the AD status variables need to be reset. Change-Id: I7240a43949b429214cc8e0b4fa7c59823aeafb87 Signed-off-by: Ping Li <pingli@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_pp.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_pp.c b/drivers/video/fbdev/msm/mdss_mdp_pp.c
index bef0a73231af..f85c114c9900 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_pp.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_pp.c
@@ -6759,11 +6759,17 @@ static int pp_mfd_ad_release_all(struct msm_fb_data_type *mfd)
if (!ad->mfd)
return 0;
+ mutex_lock(&ad->lock);
+ ad->sts &= ~PP_STS_ENABLE;
+ ad->mfd = NULL;
+ ad->bl_mfd = NULL;
+ ad->state = 0;
+ cancel_work_sync(&ad->calc_work);
+ mutex_unlock(&ad->lock);
+
ctl = mfd_to_ctl(mfd);
if (ctl && ctl->ops.remove_vsync_handler)
ctl->ops.remove_vsync_handler(ctl, &ad->handle);
- cancel_work_sync(&ad->calc_work);
- ad->state = 0;
return ret;
}