All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/dp: Handle zeroed port counts in drm_dp_read_downstream_info()
@ 2021-04-30 22:34 ` Lyude Paul
  0 siblings, 0 replies; 17+ messages in thread
From: Lyude Paul @ 2021-04-30 22:34 UTC (permalink / raw)
  To: intel-gfx, dri-devel
  Cc: Jérôme de Bretagne, stable, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Sean Paul, Jani Nikula, open list

While the DP specification isn't entirely clear on if this should be
allowed or not, some branch devices report having downstream ports present
while also reporting a downstream port count of 0. So to avoid breaking
those devices, we need to handle this in drm_dp_read_downstream_info().

So, to do this we assume there's no downstream port info when the
downstream port count is 0.

Signed-off-by: Lyude Paul <lyude@redhat.com>
Tested-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
Bugzilla: https://gitlab.freedesktop.org/drm/intel/-/issues/3416
Fixes: 3d3721ccb18a ("drm/i915/dp: Extract drm_dp_read_downstream_info()")
Cc: <stable@vger.kernel.org> # v5.10+
---
 drivers/gpu/drm/drm_dp_helper.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index cb56d74e9d38..27c8c5bdf7d9 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -682,7 +682,14 @@ int drm_dp_read_downstream_info(struct drm_dp_aux *aux,
 	    !(dpcd[DP_DOWNSTREAMPORT_PRESENT] & DP_DWN_STRM_PORT_PRESENT))
 		return 0;
 
+	/* Some branches advertise having 0 downstream ports, despite also advertising they have a
+	 * downstream port present. The DP spec isn't clear on if this is allowed or not, but since
+	 * some branches do it we need to handle it regardless.
+	 */
 	len = drm_dp_downstream_port_count(dpcd);
+	if (!len)
+		return 0;
+
 	if (dpcd[DP_DOWNSTREAMPORT_PRESENT] & DP_DETAILED_CAP_INFO_AVAILABLE)
 		len *= 4;
 
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2021-05-07 21:28 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-30 22:34 [PATCH 1/2] drm/dp: Handle zeroed port counts in drm_dp_read_downstream_info() Lyude Paul
2021-04-30 22:34 ` [Intel-gfx] " Lyude Paul
2021-04-30 22:34 ` Lyude Paul
2021-04-30 22:34 ` [PATCH 2/2] drm/dp: Drop open-coded drm_dp_is_branch() " Lyude Paul
2021-04-30 22:34   ` [Intel-gfx] " Lyude Paul
2021-04-30 22:34   ` Lyude Paul
2021-05-03  3:06   ` [Intel-gfx] " Ville Syrjälä
2021-05-03  3:06     ` Ville Syrjälä
2021-05-03  3:06     ` Ville Syrjälä
2021-05-07 21:28     ` Lyude Paul
2021-05-07 21:28       ` Lyude Paul
2021-05-07 21:28       ` Lyude Paul
2021-05-03  3:13 ` [PATCH 1/2] drm/dp: Handle zeroed port counts " Ville Syrjälä
2021-05-03  3:13   ` [Intel-gfx] " Ville Syrjälä
2021-05-03  3:13   ` Ville Syrjälä
2021-05-03 14:26 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] " Patchwork
2021-05-03 16:54 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.