summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/video/fbdev/msm/mdss_fb.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c
index 073cdf9a9b69..ca8d34ca7bec 100644
--- a/drivers/video/fbdev/msm/mdss_fb.c
+++ b/drivers/video/fbdev/msm/mdss_fb.c
@@ -615,11 +615,11 @@ static void mdss_fb_scale_bl(struct msm_fb_data_type *mfd, u32 *bl_lvl)
* scaling fraction (x/1024)
*/
temp = (temp * mfd->bl_scale) / 1024;
-
- /*if less than minimum level, use min level*/
- if (temp < mfd->bl_min_lvl)
- temp = mfd->bl_min_lvl;
}
+ /*if less than minimum level, use min level*/
+ else if ((temp < mfd->bl_min_lvl) && (0 != temp))
+ temp = mfd->bl_min_lvl;
+
pr_debug("output = %d", temp);
(*bl_lvl) = temp;
@@ -634,8 +634,11 @@ void mdss_fb_set_backlight(struct msm_fb_data_type *mfd, u32 bkl_lvl)
if (((!mfd->panel_power_on && mfd->dcm_state != DCM_ENTER)
|| !mfd->bl_updated) && !IS_CALIB_MODE_BL(mfd)) {
- mfd->unset_bl_level = bkl_lvl;
- return;
+ if (bkl_lvl < mfd->bl_min_lvl)
+ mfd->unset_bl_level = mfd->bl_min_lvl;
+ else
+ mfd->unset_bl_level = bkl_lvl;
+ return;
} else {
mfd->unset_bl_level = 0;
}