diff options
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_fb.c | 15 |
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; } |
