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

Commit 84fd648f authored by Jayant Shekhar's avatar Jayant Shekhar
Browse files

msm: mdss: Prevent race condition between dsi off and bta status check



fb_event_callback() is what is responsible for cancelling the
delayed_work when it gets the FB_BLANK_POWERDOWN event. However,
this event occurs after the panel & DSI have been turned off. So
if the check_status function was being called right when the panel
is being turned off, we have a race conditon. Hence check
shutdown flag to avoid bta status check when dsi is being turned off.

Change-Id: I103bafb4ab63be83c47dfd6b3bad06d36704ff68
Signed-off-by: default avatarJayant Shekhar <jshekhar@codeaurora.org>
parent 9b42cc28
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -86,6 +86,15 @@ static void check_dsi_ctrl_status(struct work_struct *work)
		mutex_lock(ctl->shared_lock);
	mutex_lock(&mdp5_data->ov_lock);

	if (pdsi_status->mfd->shutdown_pending) {
		mutex_unlock(&mdp5_data->ov_lock);
		if (ctl->shared_lock)
			mutex_unlock(ctl->shared_lock);
		pr_err("%s: DSI turning off, avoiding BTA status check\n",
							__func__);
		return;
	}

	/*
	 * For the command mode panels, we return pan display
	 * IOCTL on vsync interrupt. So, after vsync interrupt comes