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

Commit 344498e0 authored by Tatenda Chipeperekwa's avatar Tatenda Chipeperekwa
Browse files

drm/msm/dp: fix AUX initialization sequence



Fix the AUX initialization sequence by resetting the AUX
hardware on every HPD-high, and powering down it down during
HPD-low. This ensures that the AUX hardware is ready to process
new requests triggered via both the USBPD callback and HPD
paths.

CRs-Fixed: 2105346
Change-Id: I394bedc5d39a78b8dbf59abf11789eaf6d823368
Signed-off-by: default avatarTatenda Chipeperekwa <tatendac@codeaurora.org>
parent 35eafc16
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -472,6 +472,8 @@ static int dp_display_process_hpd_high(struct dp_display_private *dp)
	u32 max_pclk_from_edid = 0;
	struct edid *edid;

	dp->aux->init(dp->aux, dp->parser->aux_cfg);

	rc = dp->panel->read_sink_caps(dp->panel, dp->dp_display.connector);
	if (rc)
		return rc;
@@ -515,7 +517,6 @@ static void dp_display_host_init(struct dp_display_private *dp)

	dp->power->init(dp->power, flip);
	dp->ctrl->init(dp->ctrl, flip);
	dp->aux->init(dp->aux, dp->parser->aux_cfg);
	enable_irq(dp->irq);
	dp->core_initialized = true;
}
@@ -527,7 +528,6 @@ static void dp_display_host_deinit(struct dp_display_private *dp)
		return;
	}

	dp->aux->deinit(dp->aux);
	dp->ctrl->deinit(dp->ctrl);
	dp->power->deinit(dp->power);
	disable_irq(dp->irq);
@@ -548,6 +548,8 @@ static void dp_display_process_hpd_low(struct dp_display_private *dp)
		dp->audio->off(dp->audio);

	dp_display_send_hpd_notification(dp, false);

	dp->aux->deinit(dp->aux);
}

static int dp_display_usbpd_configure_cb(struct device *dev)