[PATCH] drm/i915/hdmi: Prune modes that require HDMI2.1 FRL

Ankit Nautiyal ankit.k.nautiyal at intel.com
Thu Jun 9 04:53:57 UTC 2022


Prune modes that come under HDMI2.1 marketting names and require Fixed
Rate Link (FRL) mode of transmission.

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
---
 drivers/gpu/drm/i915/display/intel_hdmi.c | 26 +++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 1ae09431f53a..a573cc65db49 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -1974,6 +1974,25 @@ intel_hdmi_mode_clock_valid(struct drm_connector *connector, int clock,
 	return status;
 }
 
+static bool
+hdmi21_frl_quirk(struct drm_display_mode *mode, int dotclock)
+{
+	int hdmi21_mkt_vic[] = {117, 118, 119, 120, 218, 219};
+	int i;
+
+	if (dotclock < 600000)
+		return false;
+
+	for (i = 0; i < ARRAY_SIZE(hdmi21_mkt_vic); i++) {
+		int vic = drm_match_cea_mode(mode);
+
+		if (vic == hdmi21_mkt_vic[i])
+			return true;
+	}
+
+	return false;
+}
+
 static enum drm_mode_status
 intel_hdmi_mode_valid(struct drm_connector *connector,
 		      struct drm_display_mode *mode)
@@ -2001,6 +2020,13 @@ intel_hdmi_mode_valid(struct drm_connector *connector,
 		clock *= 2;
 	}
 
+	/*
+	 * Current Platforms do not support FRL mode of transmission,
+	 * so prune the modes with HDMI21 marketing name that requires FRL.
+	 */
+	if (hdmi21_frl_quirk(mode, clock))
+		return MODE_BAD;
+
 	ycbcr_420_only = drm_mode_is_420_only(&connector->display_info, mode);
 
 	status = intel_hdmi_mode_clock_valid(connector, clock, has_hdmi_sink, ycbcr_420_only);
-- 
2.25.1



More information about the Intel-gfx-trybot mailing list