Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dcb6735f authored by Shivaraj Shetty's avatar Shivaraj Shetty
Browse files

msm: mdss: Avoid mutex lockup in dynamic switching



Calling blank/unblank after locking the backlight mutex will result
in mutex lockup as blank/unblank would again try to aquire the same
lock. Avoid this situation in Dynamic Switching.

Change-Id: I7ddb2afec605f236071976420e0d6bd0c707e4d0
Signed-off-by: default avatarShivaraj Shetty <shivaraj@codeaurora.org>
parent 593d5a19
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -482,6 +482,7 @@ static int mdss_fb_lpm_enable(struct msm_fb_data_type *mfd, int mode)
	mutex_lock(&mfd->bl_lock);
	bl_lvl = mfd->bl_level;
	mdss_fb_set_backlight(mfd, 0);
	mutex_unlock(&mfd->bl_lock);

	lock_fb_info(mfd->fbi);
	ret = mdss_fb_blank_sub(FB_BLANK_POWERDOWN, mfd->fbi,
@@ -489,7 +490,6 @@ static int mdss_fb_lpm_enable(struct msm_fb_data_type *mfd, int mode)
	if (ret) {
		pr_err("can't turn off display!\n");
		unlock_fb_info(mfd->fbi);
		mutex_unlock(&mfd->bl_lock);
		return ret;
	}

@@ -505,11 +505,11 @@ static int mdss_fb_lpm_enable(struct msm_fb_data_type *mfd, int mode)
	if (ret) {
		pr_err("can't turn on display!\n");
		unlock_fb_info(mfd->fbi);
		mutex_unlock(&mfd->bl_lock);
		return ret;
	}
	unlock_fb_info(mfd->fbi);

	mutex_lock(&mfd->bl_lock);
	mfd->bl_updated = true;
	mdss_fb_set_backlight(mfd, bl_lvl);
	mutex_unlock(&mfd->bl_lock);