diff mbox series

[v2,3/3] drm/i915/dp: Write the source OUI for non-eDP sinks as well

Message ID 20241001123259.616486-3-imre.deak@intel.com (mailing list archive)
State New, archived
Headers show
Series [v2,1/3] drm/i915/dp: Initialize the source OUI write timestamp always | expand

Commit Message

Imre Deak Oct. 1, 2024, 12:32 p.m. UTC
At least the i-tec USB-C Nano 2x Display Docking Station (containing a
Synaptics MST branch device) requires the driver to update the source
OUI DPCD registers to expose its DSC capability. Accordingly update the
OUI for all sink types (besides eDP where this has been done already).

Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11776
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 2d6ffbeae07a0..3cc4ef8744f88 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -3341,9 +3341,6 @@  intel_dp_init_source_oui(struct intel_dp *intel_dp)
 	u8 oui[] = { 0x00, 0xaa, 0x01 };
 	u8 buf[3] = {};
 
-	if (!intel_dp_is_edp(intel_dp))
-		return;
-
 	/*
 	 * During driver init, we want to be careful and avoid changing the source OUI if it's
 	 * already set to what we want, so as to avoid clearing any state by accident
@@ -4159,6 +4156,8 @@  intel_dp_get_dpcd(struct intel_dp *intel_dp)
 	if (intel_dp_init_lttpr_and_dprx_caps(intel_dp) < 0)
 		return false;
 
+	intel_dp_init_source_oui(intel_dp);
+
 	/*
 	 * Don't clobber cached eDP rates. Also skip re-reading
 	 * the OUI/ID since we know it won't change.
@@ -6035,6 +6034,8 @@  intel_dp_hpd_pulse(struct intel_digital_port *dig_port, bool long_hpd)
 
 	if (long_hpd) {
 		intel_dp->reset_link_params = true;
+		intel_dp_invalidate_source_oui(intel_dp);
+
 		return IRQ_NONE;
 	}