msm: mdss: Handle backlight level 0 at bootup

Current implementation does not allow backlight value of zero to
be applied at update backlight function called at commit.
unset_bl_level variable uses 0 value for comparision to exit at
update backlight function and hence cannot be used to set zero level.
This variable is now changed to use uint32 max value other than
zero value for comparision to take early exit.

Change-Id: If257fefed14455624edf6daaee933712df545117
Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
This commit is contained in:
Raviteja Tamatam 2016-05-25 15:48:54 +05:30 committed by Harsh Sahu
parent 66221ce8c2
commit 25a3708f14

View file

@ -1136,6 +1136,7 @@ static int mdss_fb_probe(struct platform_device *pdev)
mfd->ad_bl_level = 0;
mfd->fb_imgType = MDP_RGBA_8888;
mfd->calib_mode_bl = 0;
mfd->unset_bl_level = U32_MAX;
mfd->pdev = pdev;
@ -1551,7 +1552,7 @@ void mdss_fb_set_backlight(struct msm_fb_data_type *mfd, u32 bkl_lvl)
} else if (mdss_fb_is_power_on(mfd) && mfd->panel_info->panel_dead) {
mfd->unset_bl_level = mfd->bl_level;
} else {
mfd->unset_bl_level = 0;
mfd->unset_bl_level = U32_MAX;
}
pdata = dev_get_platdata(&mfd->pdev->dev);
@ -1595,7 +1596,7 @@ void mdss_fb_update_backlight(struct msm_fb_data_type *mfd)
u32 temp;
bool bl_notify = false;
if (!mfd->unset_bl_level)
if (mfd->unset_bl_level == U32_MAX)
return;
mutex_lock(&mfd->bl_lock);
if (!mfd->allow_bl_update) {
@ -1806,7 +1807,8 @@ static int mdss_fb_blank_unblank(struct msm_fb_data_type *mfd)
*/
if (IS_CALIB_MODE_BL(mfd))
mdss_fb_set_backlight(mfd, mfd->calib_mode_bl);
else if (!mfd->panel_info->mipi.post_init_delay)
else if ((!mfd->panel_info->mipi.post_init_delay) &&
(mfd->unset_bl_level != U32_MAX))
mdss_fb_set_backlight(mfd, mfd->unset_bl_level);
/*