summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorCarl Vanderlip <carlv@codeaurora.org>2013-09-10 17:36:38 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:21:26 -0700
commit508a149b149b27262165d83c86df4ccdcb54fe94 (patch)
tree7d42504aaa8704ab47fc4d0daf7e9c8aa16ccdfb /drivers/video/fbdev
parent2957d2038e1fd7a162d949e9b7cf003ecc4586f0 (diff)
msm: mdss: Store AD backlight notification function
Store Assertive Display backlight notification function while locked to prevent race condition where AD is disabled while lock is released, setting function pointer to NULL. Change-Id: I7996a29595854ed8e50d0fff663a779c3ccd388f Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
-rw-r--r--drivers/video/fbdev/msm/mdss_fb.c4
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_pp.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c
index b0537ba9a89d..3504d9c8c770 100644
--- a/drivers/video/fbdev/msm/mdss_fb.c
+++ b/drivers/video/fbdev/msm/mdss_fb.c
@@ -627,6 +627,7 @@ static void mdss_fb_scale_bl(struct msm_fb_data_type *mfd, u32 *bl_lvl)
void mdss_fb_set_backlight(struct msm_fb_data_type *mfd, u32 bkl_lvl)
{
struct mdss_panel_data *pdata;
+ int (*update_ad_input)(struct msm_fb_data_type *mfd);
u32 temp = bkl_lvl;
if (((!mfd->panel_power_on && mfd->dcm_state != DCM_ENTER)
@@ -659,9 +660,10 @@ void mdss_fb_set_backlight(struct msm_fb_data_type *mfd, u32 bkl_lvl)
mfd->bl_level_old = temp;
if (mfd->mdp.update_ad_input) {
+ update_ad_input = mfd->mdp.update_ad_input;
mutex_unlock(&mfd->bl_lock);
/* Will trigger ad_setup which will grab bl_lock */
- mfd->mdp.update_ad_input(mfd);
+ update_ad_input(mfd);
mutex_lock(&mfd->bl_lock);
}
}
diff --git a/drivers/video/fbdev/msm/mdss_mdp_pp.c b/drivers/video/fbdev/msm/mdss_mdp_pp.c
index 424f84f1ca11..09a3c554cfe8 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_pp.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_pp.c
@@ -2859,7 +2859,7 @@ static int mdss_ad_init_checks(struct msm_fb_data_type *mfd)
return -EHOSTDOWN;
}
if (mixer_num > MDSS_AD_MAX_MIXERS) {
- pr_warn("too many mixers, not supported, %d", mixer_num);
+ pr_debug("too many mixers, not supported, %d", mixer_num);
return ret;
}