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

Commit dacac787 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: mdss: fix deadlock between display and ESD check thread"

parents 21226685 3ef7c4ed
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -125,17 +125,17 @@ void mdss_check_dsi_ctrl_status(struct work_struct *work, uint32_t interval)
	 * overlay operations. Need refine this lock for command mode
	 */

	mutex_lock(&ctrl_pdata->mutex);
	if (mipi->mode == DSI_CMD_MODE)
		mutex_lock(&mdp5_data->ov_lock);
	mutex_lock(&ctl->offlock);
	mutex_lock(&ctrl_pdata->mutex);

	if (mdss_panel_is_power_off(pstatus_data->mfd->panel_power_state) ||
			pstatus_data->mfd->shutdown_pending) {
		mutex_unlock(&ctrl_pdata->mutex);
		mutex_unlock(&ctl->offlock);
		if (mipi->mode == DSI_CMD_MODE)
			mutex_unlock(&mdp5_data->ov_lock);
		mutex_unlock(&ctrl_pdata->mutex);
		pr_err("%s: DSI turning off, avoiding panel status check\n",
							__func__);
		return;
@@ -160,10 +160,10 @@ void mdss_check_dsi_ctrl_status(struct work_struct *work, uint32_t interval)
	ret = ctrl_pdata->check_status(ctrl_pdata);
	mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF);

	mutex_unlock(&ctrl_pdata->mutex);
	mutex_unlock(&ctl->offlock);
	if (mipi->mode == DSI_CMD_MODE)
		mutex_unlock(&mdp5_data->ov_lock);
	mutex_unlock(&ctrl_pdata->mutex);

	if ((pstatus_data->mfd->panel_power_state == MDSS_PANEL_POWER_ON)) {
		if (ret > 0)