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

Commit 6059d12a authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "disp: msm: dp: fix to handle host ready failues"

parents 53034fd2 06549254
Loading
Loading
Loading
Loading
+22 −7
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
 */

#include <linux/module.h>
@@ -1053,16 +1053,21 @@ static int dp_display_host_init(struct dp_display_private *dp)
	return rc;
}

static void dp_display_host_ready(struct dp_display_private *dp)
static int dp_display_host_ready(struct dp_display_private *dp)
{
	int rc = 0;

	if (!dp_display_state_is(DP_STATE_INITIALIZED)) {
		rc = dp_display_host_init(dp);
		if (rc) {
			dp_display_state_show("[not initialized]");
		return;
			return rc;
		}
	}

	if (dp_display_state_is(DP_STATE_READY)) {
		dp_display_state_log("[already ready]");
		return;
		return rc;
	}

	/*
@@ -1090,6 +1095,7 @@ static void dp_display_host_ready(struct dp_display_private *dp)
	dp_display_state_add(DP_STATE_READY);
	/* log this as it results from user action of cable connection */
	DP_INFO("[OK]\n");
	return rc;
}

static void dp_display_host_unready(struct dp_display_private *dp)
@@ -1192,7 +1198,11 @@ static int dp_display_process_hpd_high(struct dp_display_private *dp)
		dp_display_state_remove(DP_STATE_SRC_PWRDN);
	}

	dp_display_host_ready(dp);
	rc = dp_display_host_ready(dp);
	if (rc) {
		dp_display_state_show("[ready failed]");
		goto end;
	}

	dp->link->psm_config(dp->link, &dp->panel->link_info, false);
	dp->debug->psm_enabled = false;
@@ -2209,7 +2219,12 @@ static int dp_display_prepare(struct dp_display *dp_display, void *panel)
	}

	/* For supporting DP_PANEL_SRC_INITIATED_POWER_DOWN case */
	dp_display_host_ready(dp);
	rc = dp_display_host_ready(dp);

	if (rc) {
		dp_display_state_show("[ready failed]");
		goto end;
	}

	if (dp->debug->psm_enabled) {
		dp->link->psm_config(dp->link, &dp->panel->link_info, false);