summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorRaviteja Tamatam <travitej@codeaurora.org>2016-05-25 15:48:54 +0530
committerHarsh Sahu <hsahu@codeaurora.org>2016-11-11 12:19:01 -0800
commit25a3708f14eb16245d2ee2e54b69ac9624e700ce (patch)
treedfc4f7562a5b106dfaf6e5a43bbf2a20705d82c0 /drivers/video
parent66221ce8c2a8ef0134ad4daa0a0f3f581b0ed5ad (diff)
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>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/fbdev/msm/mdss_fb.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c
index 08e06c75522a..ba9c0b8e3f50 100644
--- a/drivers/video/fbdev/msm/mdss_fb.c
+++ b/drivers/video/fbdev/msm/mdss_fb.c
@@ -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);
/*