summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPing Li <pingli@codeaurora.org>2015-02-19 12:19:27 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:38:18 -0700
commit0fa49a06e4ea27060024ef0d8dfa916923899b37 (patch)
tree09d112d91ba418f2e0d01a0186cf132b3b8a6cc9
parent19ac09fff8b7fff101d82eb8a8cb06e3c3cfdf33 (diff)
msm: mdss: Notify AD only when brightness changes
Previously, any backlight change to panel will trigger assertive display (AD) feature to conduct screen refresh calls. This will trigger unnecessary screen refresh if AD is enabled together with CABL feature. This change modifies the backlight notification mechanism to notify AD only when the Android brightness level is changed. Change-Id: I5647269b9651d3a17d896e4047f01b7a244581a4 Signed-off-by: Ping Li <pingli@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_fb.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c
index a9e0152cb206..63e7fab10a72 100644
--- a/drivers/video/fbdev/msm/mdss_fb.c
+++ b/drivers/video/fbdev/msm/mdss_fb.c
@@ -1062,7 +1062,6 @@ void mdss_fb_set_backlight(struct msm_fb_data_type *mfd, u32 bkl_lvl)
struct mdss_panel_data *pdata;
u32 temp = bkl_lvl, ad_bl;
int ret = -EINVAL;
- bool bl_notify_needed = false;
if ((((mdss_fb_is_power_off(mfd) && mfd->dcm_state != DCM_ENTER)
|| !mfd->bl_updated) && !IS_CALIB_MODE_BL(mfd)) ||
@@ -1085,7 +1084,7 @@ void mdss_fb_set_backlight(struct msm_fb_data_type *mfd, u32 bkl_lvl)
mfd->mdp.ad_invalidate_input) {
mfd->ad_bl_level = ad_bl;
(*mfd->mdp.ad_invalidate_input)(mfd);
- bl_notify_needed = true;
+ mdss_fb_bl_update_notify(mfd);
}
}
if (!IS_CALIB_MODE_BL(mfd))
@@ -1105,10 +1104,7 @@ void mdss_fb_set_backlight(struct msm_fb_data_type *mfd, u32 bkl_lvl)
pdata->set_backlight(pdata, temp);
mfd->bl_level = bkl_lvl;
mfd->bl_level_scaled = temp;
- bl_notify_needed = true;
}
- if (bl_notify_needed)
- mdss_fb_bl_update_notify(mfd);
}
}
@@ -1137,12 +1133,12 @@ void mdss_fb_update_backlight(struct msm_fb_data_type *mfd)
mfd->mdp.ad_invalidate_input) {
mfd->ad_bl_level = ad_bl;
(*mfd->mdp.ad_invalidate_input)(mfd);
+ mdss_fb_bl_update_notify(mfd);
}
}
pdata->set_backlight(pdata, temp);
mfd->bl_level_scaled = mfd->unset_bl_level;
mfd->bl_updated = 1;
- mdss_fb_bl_update_notify(mfd);
}
}
mutex_unlock(&mfd->bl_lock);