From b8946b19a5bffe3fa0d49baf63e1926066a70f20 Mon Sep 17 00:00:00 2001 From: Krishna Chaitanya Parimi Date: Fri, 20 Jun 2014 20:25:01 +0530 Subject: [PATCH] msm: mdss: Minimize cases of BL lock in update backlight Calling backlight lock on every commit iteration was adding overhead. Altering the conditions to allow locking only for case when unset backlight level is not zero. Change-Id: I023dccfa584cf641d042565b7ad2cb32c0724c55 Signed-off-by: Krishna Chaitanya Parimi Signed-off-by: Nirmal Abraham --- drivers/video/msm/mdss/mdss_fb.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/drivers/video/msm/mdss/mdss_fb.c b/drivers/video/msm/mdss/mdss_fb.c index 770ac4e963c..d3402079c2b 100644 --- a/drivers/video/msm/mdss/mdss_fb.c +++ b/drivers/video/msm/mdss/mdss_fb.c @@ -964,23 +964,25 @@ void mdss_fb_update_backlight(struct msm_fb_data_type *mfd) u32 temp; bool bl_notify = false; - mutex_lock(&mfd->bl_lock); - if (mfd->unset_bl_level && !mfd->bl_updated) { - pdata = dev_get_platdata(&mfd->pdev->dev); - if ((pdata) && (pdata->set_backlight)) { - mfd->bl_level = mfd->unset_bl_level; - temp = mfd->bl_level; - if (mfd->mdp.ad_calc_bl) - (*mfd->mdp.ad_calc_bl)(mfd, temp, &temp, - &bl_notify); - if (bl_notify) - mdss_fb_bl_update_notify(mfd); - pdata->set_backlight(pdata, temp); - mfd->bl_level_scaled = mfd->unset_bl_level; - mfd->bl_updated = 1; + if (mfd->unset_bl_level) { + mutex_lock(&mfd->bl_lock); + if (!mfd->bl_updated) { + pdata = dev_get_platdata(&mfd->pdev->dev); + if ((pdata) && (pdata->set_backlight)) { + mfd->bl_level = mfd->unset_bl_level; + temp = mfd->bl_level; + if (mfd->mdp.ad_calc_bl) + (*mfd->mdp.ad_calc_bl)(mfd, temp, &temp, + &bl_notify); + if (bl_notify) + mdss_fb_bl_update_notify(mfd); + pdata->set_backlight(pdata, temp); + mfd->bl_level_scaled = mfd->unset_bl_level; + mfd->bl_updated = 1; + } } + mutex_unlock(&mfd->bl_lock); } - mutex_unlock(&mfd->bl_lock); } static int mdss_fb_blank_sub(int blank_mode, struct fb_info *info,