Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit
@ 2026-10-23  5:02 Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 01/14] drm/i915/display: Add helper to compute link M/N ratio for reuse Suraj Kandpal
                   ` (16 more replies)
  0 siblings, 17 replies; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: mitulkumar.ajitkumar.golani, Suraj Kandpal

For Platforms that support higher link rates, there is a limitation on
Link M /Link N ratio.
If the CEILING( Link M / Link N ) ratio is greater than 10.0, then
hardware cannot support the given resolution / refresh rate at the given
configuration.
For BMG Wa_14021768792 helps to bypass this limitation and allows it to
support the ratio till 15.0.

This series adds the missing restrictions for earlier platforms and adds
the Wa_14021768792 for BMG as per Bspec:49266

Ankit Nautiyal (7):
  drm/i915/display: Add helper to compute link M/N ratio for reuse
  drm/i915/dp_mst: Limit M/N ratio for MST
  drm/i915/dp: Add M/N ratio check for DP link config
  drm/i915/display: Add bits for link_n_extended for DISPLAY >= 14
  drm/i915/display_wa: Add support for Wa_14021768792
  drm/i915/display: Implement Wa_14021768792 for BMG DP for link_m/n
    ratio > 10
  drm/i915/dp: Extend intel_dp_can_support_m_n() for BMG M/N bypass

Suraj Kandpal (7):
  drm/i915/dp: Limit M/N ratio for DP
  drm/i915/display_wa: Add support for Wa_14014191401
  drm/i915/display: Add bits for Wa_14021768792 for linkm/n ratio > 10
  drm/i915/display: Program Wa_14021768792 for linkm/n ratio > 10
  drm/i915/display: Read back and compare Wa_14021768792 state
  drm/i915/display: Dump bypass_m_n_ratio_limit in the crtc state dump
  drm/i915/dp: Bump the max Link M/N ratio to 22 for DISPLAY_VER >= 35

 .../drm/i915/display/intel_crtc_state_dump.c  |   6 +-
 drivers/gpu/drm/i915/display/intel_display.c  | 113 +++++++++++-
 drivers/gpu/drm/i915/display/intel_display.h  |   4 +
 .../gpu/drm/i915/display/intel_display_regs.h |  12 ++
 .../drm/i915/display/intel_display_types.h    |   2 +
 .../gpu/drm/i915/display/intel_display_wa.c   |  11 ++
 .../gpu/drm/i915/display/intel_display_wa.h   |   2 +
 drivers/gpu/drm/i915/display/intel_dp.c       | 173 +++++++++++++++++-
 drivers/gpu/drm/i915/display/intel_dp.h       |   8 +
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |   7 +
 10 files changed, 329 insertions(+), 9 deletions(-)

-- 
2.34.1


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

* [PATCH v8 01/14] drm/i915/display: Add helper to compute link M/N ratio for reuse
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 02/14] drm/i915/dp: Limit M/N ratio for DP Suraj Kandpal
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: mitulkumar.ajitkumar.golani, Ankit Nautiyal, Suraj Kandpal

From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

Introduce intel_display_compute_link_m_n() to compute the link M/N ratio
from the pixel clock and the link symbol clock. This logic was
previously embedded within intel_link_compute_m_n().
The new helper allows reuse of link M/N computation in other contexts
without requiring the full data M/N calculation and will be used in
later commits.

No functional changes intended.

v2:
- Rename function (Jani)
- The link symbol clock is passed in rather than derived here, so that the
DP specific conversion from the link rate stays with the caller. (Jani)

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Co-developed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 7602f633f49d..580c36a52921 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2650,13 +2650,20 @@ static void compute_m_n(u32 *ret_m, u32 *ret_n,
 	intel_reduce_m_n_ratio(ret_m, ret_n);
 }
 
+static void intel_display_compute_link_m_n(u32 *link_m, u32 *link_n,
+					   int pixel_clock, int link_symbol_clock)
+{
+	compute_m_n(link_m, link_n,
+		    pixel_clock, link_symbol_clock,
+		    0x80000);
+}
+
 void
 intel_link_compute_m_n(u16 bits_per_pixel_x16, int nlanes,
 		       int pixel_clock, int link_clock,
 		       int bw_overhead,
 		       struct intel_link_m_n *m_n)
 {
-	u32 link_symbol_clock = intel_dp_link_symbol_clock(link_clock);
 	u32 data_m = intel_dp_effective_data_rate(pixel_clock, bits_per_pixel_x16,
 						  bw_overhead);
 	u32 data_n = drm_dp_max_dprx_data_rate(link_clock, nlanes);
@@ -2673,9 +2680,9 @@ intel_link_compute_m_n(u16 bits_per_pixel_x16, int nlanes,
 		    data_m, data_n,
 		    0x8000000);
 
-	compute_m_n(&m_n->link_m, &m_n->link_n,
-		    pixel_clock, link_symbol_clock,
-		    0x80000);
+	intel_display_compute_link_m_n(&m_n->link_m, &m_n->link_n,
+				       pixel_clock,
+				       intel_dp_link_symbol_clock(link_clock));
 }
 
 void intel_panel_sanitize_ssc(struct intel_display *display)
-- 
2.34.1


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

* [PATCH v8 02/14] drm/i915/dp: Limit M/N ratio for DP
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 01/14] drm/i915/display: Add helper to compute link M/N ratio for reuse Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:18   ` sashiko-bot
  2026-10-23  5:02 ` [PATCH v8 03/14] drm/i915/display_wa: Add support for Wa_14014191401 Suraj Kandpal
                   ` (14 subsequent siblings)
  16 siblings, 1 reply; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: mitulkumar.ajitkumar.golani, Suraj Kandpal, Ankit Nautiyal

The hardware cannot support DisplayPort configurations where the
ceiling of the Link M/Link N ratio exceeds the limit the transcoder's
timing generator DDA can track. This limitation has always existed, but
it typically wasn't encountered without the use of joiners and DSC.
With higher resolutions and combinations involving joiners and DSC,
this constraint can now be hit in certain scenarios.

Restrict the link configurations to those satisfying the constraint
while computing the link config limits, so that the SST and the MST
paths both get it, and so that a mode which no link rate can support
fails early rather than deep inside link config selection.

Also prune such modes in mode_valid. Note the ratio is the pixel clock
over the link symbol clock, and the symbol clock is not monotonic in the
link rate: it is the rate divided by 32 for 128b/132b but only by 10 for
8b/10b, so e.g. HBR3 has a higher symbol clock than UHBR20. There is
therefore no single best link rate to evaluate against, and mode_valid
walks the link configurations instead, only rejecting the mode if none
of them can satisfy the ratio.

For MSO, intel_dp_compute_config() divides adjusted_mode->crtc_clock by
the MSO link count before computing the link M/N. The limits and
mode_valid are evaluated before that, so divide the pixel clock by the
link count there as well, otherwise the check would be too strict by
that factor. The joiner needs no such handling, as
intel_joiner_adjust_timings() only rewrites the pipe mode and leaves the
adjusted mode the link M/N is derived from untouched.

Note: MST goes through intel_dp_compute_config_limits() as well, so its
compute config is already covered here. Only pruning the modes in the
MST mode_valid is left, which is added in a subsequent commit.

v2:
-Move the M/N ratio check to the link rate configuration phase instead
of during M/N computation. (Ville)
-Prune modes that cannot be supported even with highest link rate due to
M/N ratio restriction.
v3:
-Rebase on the link caps iterator based link config selection.
-Set the constraint up in intel_dp_compute_config_limits() by narrowing
the link config filter, and fail there if no config qualifies, instead
of skipping configs while iterating them. (Imre)
-Use a limit of 4 on DG2. (Wa_14014191401)
-Walk the link configurations in mode_valid rather than evaluating the
ratio at the highest link rate, which is not the best case for it.
v4:
-Add iterator for all dp configs in intel_dp_mode_valid_m_n() so
that we do not prune any mode that could have been supported (Sashiko)
v5:
-Drop "SST" from the subject and fix the note, MST compute is already
covered by the shared limits, only the MST mode_valid is left. (Mitul)
-Add the Bspec reference. (Mitul)
-Drop the link_n check, compute_m_n() fixes N at 0x80000 and only halves
it, so it cannot be 0. (Mitul)
-Fold in the MSO adjusted pixel clock from the M/N ratio check commit, so
this commit is correct on its own. (Mitul)
-Add intel_dp_link_m_n_ratio(), so that the M/N ratio check can share
it. (Mitul)
v6:
-Make intel_dp_mode_valid_m_n() static, only the SST mode_valid uses it.
(Mitul)

Bspec: 49266
Co-developed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c |   4 +-
 drivers/gpu/drm/i915/display/intel_display.h |   2 +
 drivers/gpu/drm/i915/display/intel_dp.c      | 117 +++++++++++++++++++
 3 files changed, 121 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 580c36a52921..f74e7ddf0e41 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2650,8 +2650,8 @@ static void compute_m_n(u32 *ret_m, u32 *ret_n,
 	intel_reduce_m_n_ratio(ret_m, ret_n);
 }
 
-static void intel_display_compute_link_m_n(u32 *link_m, u32 *link_n,
-					   int pixel_clock, int link_symbol_clock)
+void intel_display_compute_link_m_n(u32 *link_m, u32 *link_n,
+				    int pixel_clock, int link_symbol_clock)
 {
 	compute_m_n(link_m, link_n,
 		    pixel_clock, link_symbol_clock,
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index eecafff167d3..404168f4213b 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -523,5 +523,7 @@ bool assert_port_valid(struct intel_display *display, enum port port);
 
 bool intel_scanout_needs_vtd_wa(struct intel_display *display);
 int intel_crtc_num_joined_pipes(const struct intel_crtc_state *crtc_state);
+void intel_display_compute_link_m_n(u32 *link_m, u32 *link_n,
+				    int pixel_clock, int link_symbol_clock);
 
 #endif
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index d8c0d9381471..661a863362ad 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -63,6 +63,7 @@
 #include "intel_de.h"
 #include "intel_dip.h"
 #include "intel_dip_regs.h"
+#include "intel_display.h"
 #include "intel_display_driver.h"
 #include "intel_display_jiffies.h"
 #include "intel_display_utils.h"
@@ -1267,6 +1268,47 @@ bool intel_dp_has_dsc(const struct intel_connector *connector)
 	return true;
 }
 
+static int
+intel_dp_get_max_m_n_ratio(struct intel_display *display)
+{
+	if (display->platform.dg2)
+		return 4;
+
+	return 10;
+}
+
+static int intel_dp_link_m_n_ratio(u32 link_m, u32 link_n)
+{
+	if (!link_n)
+		return 0;
+
+	return DIV_ROUND_UP(link_m, link_n);
+}
+
+static bool
+intel_dp_can_support_m_n(struct intel_display *display,
+			 int pixel_clock, int link_rate)
+{
+	int max_m_n_ratio = intel_dp_get_max_m_n_ratio(display);
+	u32 link_m, link_n;
+	int m_n_ratio;
+
+	intel_display_compute_link_m_n(&link_m, &link_n, pixel_clock,
+				       intel_dp_link_symbol_clock(link_rate));
+
+	m_n_ratio = intel_dp_link_m_n_ratio(link_m, link_n);
+
+	return m_n_ratio <= max_m_n_ratio;
+}
+
+static int intel_dp_mso_pixel_clock(struct intel_dp *intel_dp, int pixel_clock)
+{
+	if (!intel_dp->mso_link_count)
+		return pixel_clock;
+
+	return pixel_clock / intel_dp->mso_link_count;
+}
+
 static
 bool intel_dp_can_join(struct intel_dp *intel_dp,
 		       int num_joined_pipes)
@@ -1302,6 +1344,33 @@ bool intel_dp_dotclk_valid(struct intel_display *display,
 	return target_clock <= effective_dotclk_limit;
 }
 
+static bool intel_dp_mode_valid_m_n(struct intel_dp *intel_dp, int pixel_clock)
+{
+	struct intel_display *display = to_intel_display(intel_dp);
+	int m_n_pixel_clock = intel_dp_mso_pixel_clock(intel_dp, pixel_clock);
+	struct intel_dp_link_caps_order order = {
+		.key = INTEL_DP_LINK_CAPS_ORDER_KEY_RATE_LANE,
+		.dir = INTEL_DP_LINK_CAPS_ORDER_DIR_DESC,
+	};
+	struct intel_dp_link_config link_config;
+	struct intel_dp_link_caps_iter iter;
+	bool found = false;
+
+	intel_dp_link_caps_iter_start(&iter, intel_dp->link.caps, order,
+				      INTEL_DP_LINK_CAPS_FILTER_ALL);
+	for_each_dp_link_config(&iter, &link_config) {
+		if (intel_dp_can_support_m_n(display, m_n_pixel_clock,
+					     link_config.rate)) {
+			found = true;
+
+			break;
+		}
+	}
+	intel_dp_link_caps_iter_end(&iter);
+
+	return found;
+}
+
 static enum drm_mode_status
 intel_dp_mode_valid_format(struct intel_connector *connector,
 			   const struct drm_display_mode *mode,
@@ -1456,6 +1525,9 @@ intel_dp_mode_valid(struct drm_connector *_connector,
 			return status;
 	}
 
+	if (!intel_dp_mode_valid_m_n(intel_dp, target_clock))
+		return MODE_CLOCK_HIGH;
+
 	/*
 	 * TODO: Even when using a 4:2:0 sink_format intel_dp_output_format()
 	 * will always choose a 4:4:4 output_format if the DFP can do the
@@ -2656,6 +2728,48 @@ intel_dp_dsc_compute_pipe_bpp_limits(struct intel_connector *connector,
 	return true;
 }
 
+static bool
+intel_dp_compute_m_n_ratio_limits(struct intel_dp *intel_dp,
+				  struct drm_connector_state *conn_state,
+				  const struct intel_crtc_state *crtc_state,
+				  struct link_config_limits *limits)
+{
+	struct intel_display *display = to_intel_display(intel_dp);
+	struct intel_connector *connector = to_intel_connector(conn_state->connector);
+	struct intel_dp_link_caps *link_caps = intel_dp->link.caps;
+	struct intel_dp_link_caps_order order =
+		intel_dp_link_caps_connector_compute_order(connector);
+	struct intel_dp_link_caps_filter new_filter = INTEL_DP_LINK_CAPS_FILTER_NONE;
+	int pixel_clock = intel_dp_mso_pixel_clock(intel_dp,
+						  intel_dp_mode_clock(crtc_state, conn_state));
+	struct intel_dp_link_config link_config;
+	struct intel_dp_link_caps_iter iter;
+	bool found = false;
+
+	intel_dp_link_caps_iter_start(&iter, link_caps, order, limits->link_config_filter);
+	for_each_dp_link_config(&iter, &link_config) {
+		if (!intel_dp_can_support_m_n(display, pixel_clock, link_config.rate))
+			continue;
+
+		intel_dp_link_caps_filter_add(link_caps, &new_filter, &link_config);
+		found = true;
+	}
+	intel_dp_link_caps_iter_end(&iter);
+
+	if (!found) {
+		drm_dbg_kms(display->drm,
+			    "[CONNECTOR:%d:%s] No link config with a Link M/N ratio <= %d\n",
+			    connector->base.base.id, connector->base.name,
+			    intel_dp_get_max_m_n_ratio(display));
+
+		return false;
+	}
+
+	limits->link_config_filter = new_filter;
+
+	return true;
+}
+
 bool
 intel_dp_compute_config_limits(struct intel_dp *intel_dp,
 			       struct drm_connector_state *conn_state,
@@ -2772,6 +2886,9 @@ intel_dp_compute_config_limits(struct intel_dp *intel_dp,
 		limits->link_config_filter = new_filter;
 	}
 
+	if (!intel_dp_compute_m_n_ratio_limits(intel_dp, conn_state, crtc_state, limits))
+		return false;
+
 	if (!intel_dp_test_compute_config(connector, crtc_state, limits))
 		return false;
 
-- 
2.34.1


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

* [PATCH v8 03/14] drm/i915/display_wa: Add support for Wa_14014191401
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 01/14] drm/i915/display: Add helper to compute link M/N ratio for reuse Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 02/14] drm/i915/dp: Limit M/N ratio for DP Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 04/14] drm/i915/dp_mst: Limit M/N ratio for MST Suraj Kandpal
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: mitulkumar.ajitkumar.golani, Suraj Kandpal

The DG2 transcoder timing generator DDA only supports a Link M/N ratio
of up to 4. The Link M/N ratio limit uses a bare platform check for it.

Add Wa_14014191401 for DG2 and use it for the limit instead.

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_wa.c | 2 ++
 drivers/gpu/drm/i915/display/intel_display_wa.h | 1 +
 drivers/gpu/drm/i915/display/intel_dp.c         | 3 ++-
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c b/drivers/gpu/drm/i915/display/intel_display_wa.c
index 2e3ff4861ef4..91395076e903 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.c
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.c
@@ -94,6 +94,8 @@ bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa,
 			IS_DISPLAY_STEP(display, STEP_A0, STEP_A2);
 	case INTEL_DISPLAY_WA_14014143976:
 		return IS_DISPLAY_STEP(display, STEP_E0, STEP_FOREVER);
+	case INTEL_DISPLAY_WA_14014191401:
+		return display->platform.dg2;
 	case INTEL_DISPLAY_WA_14016740474:
 		return IS_DISPLAY_VERx100_STEP(display, 1400, STEP_A0, STEP_C0);
 	case INTEL_DISPLAY_WA_14020863754:
diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h b/drivers/gpu/drm/i915/display/intel_display_wa.h
index b707147a7587..f41e58d1d6e7 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.h
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.h
@@ -31,6 +31,7 @@ enum intel_display_wa {
 	INTEL_DISPLAY_WA_14011508470,
 	INTEL_DISPLAY_WA_14011765242,
 	INTEL_DISPLAY_WA_14014143976,
+	INTEL_DISPLAY_WA_14014191401,
 	INTEL_DISPLAY_WA_14016740474,
 	INTEL_DISPLAY_WA_14020863754,
 	INTEL_DISPLAY_WA_14025769978,
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 661a863362ad..3703135f41e2 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -70,6 +70,7 @@
 #include "intel_display_regs.h"
 #include "intel_display_rpm.h"
 #include "intel_display_types.h"
+#include "intel_display_wa.h"
 #include "intel_dp.h"
 #include "intel_dp_aux.h"
 #include "intel_dp_hdcp.h"
@@ -1271,7 +1272,7 @@ bool intel_dp_has_dsc(const struct intel_connector *connector)
 static int
 intel_dp_get_max_m_n_ratio(struct intel_display *display)
 {
-	if (display->platform.dg2)
+	if (intel_display_wa(display, INTEL_DISPLAY_WA_14014191401))
 		return 4;
 
 	return 10;
-- 
2.34.1


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

* [PATCH v8 04/14] drm/i915/dp_mst: Limit M/N ratio for MST
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (2 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 03/14] drm/i915/display_wa: Add support for Wa_14014191401 Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:29   ` Golani, Mitulkumar Ajitkumar
  2026-10-23  5:02 ` [PATCH v8 05/14] drm/i915/dp: Add M/N ratio check for DP link config Suraj Kandpal
                   ` (12 subsequent siblings)
  16 siblings, 1 reply; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: mitulkumar.ajitkumar.golani, Ankit Nautiyal, Suraj Kandpal

From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

The hardware does not support DisplayPort configurations where the
ceiling of the Link M/Link N ratio exceeds the limit. Enforce this
constraint for MST as well.

The compute config path needs no change: MST goes through
intel_dp_compute_config_limits() too, which pins the link configuration
to the maximum BW one before the ratio filtering, so a stream whose
ratio does not fit that configuration is rejected there.

What is still missing is pruning such modes, so add the check to
mst_connector_mode_valid_ctx(). MST always runs the link at the maximum
BW configuration, which mode_valid already uses for the BW check, so
check the ratio against that configuration as well. Accepting the mode
if any configuration could satisfy the ratio would let through modes
MST then fails to compute: on UHBR links the maximum BW configuration
has a lower link symbol clock than HBR3 or HBR2.

v2:
-Drop the checks in the MST link config helpers, redundant now that the
constraint is applied while computing the link config limits. (Imre)
-Share the mode_valid helper with SST instead of evaluating the ratio at
one link rate, since the link symbol clock is not monotonic in the link
rate and there is no single best case configuration.
v3:
-Now that intel_dp_mode_valid_m_n checks for all configs just call
that (Sashiko)
v4:
-Go back to checking the ratio against the maximum BW configuration,
which is the only one MST uses. Walking all the link configurations
accepted modes that MST then fails to compute. (Mitul)

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Co-developed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c     | 5 ++---
 drivers/gpu/drm/i915/display/intel_dp.h     | 3 +++
 drivers/gpu/drm/i915/display/intel_dp_mst.c | 5 +++++
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 3703135f41e2..1e06107627bc 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1286,9 +1286,8 @@ static int intel_dp_link_m_n_ratio(u32 link_m, u32 link_n)
 	return DIV_ROUND_UP(link_m, link_n);
 }
 
-static bool
-intel_dp_can_support_m_n(struct intel_display *display,
-			 int pixel_clock, int link_rate)
+bool intel_dp_can_support_m_n(struct intel_display *display,
+			      int pixel_clock, int link_rate)
 {
 	int max_m_n_ratio = intel_dp_get_max_m_n_ratio(display);
 	u32 link_m, link_n;
diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h
index 04fae203bb69..de90296acce9 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.h
+++ b/drivers/gpu/drm/i915/display/intel_dp.h
@@ -239,6 +239,9 @@ bool intel_dp_joiner_candidate_valid(struct intel_connector *connector,
 
 u8 intel_dp_as_sdp_transmission_time(void);
 
+bool intel_dp_can_support_m_n(struct intel_display *display,
+			      int pixel_clock, int link_rate);
+
 int intel_dp_link_init(struct intel_dp *intel_dp);
 void intel_dp_link_cleanup(struct intel_dp *intel_dp);
 
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 7023619aaaba..ae18817b4f35 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -1565,6 +1565,11 @@ mst_connector_mode_valid_ctx(struct drm_connector *_connector,
 					   min_link_bpp_x16,
 					   bw_overhead_flags);
 
+	if (!intel_dp_can_support_m_n(display, mode->clock, max_link_clock)) {
+		*status = MODE_CLOCK_HIGH;
+		return 0;
+	}
+
 	/*
 	 * TODO:
 	 * - Also check if compression would allow for the mode
-- 
2.34.1


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

* [PATCH v8 05/14] drm/i915/dp: Add M/N ratio check for DP link config
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (3 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 04/14] drm/i915/dp_mst: Limit M/N ratio for MST Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 06/14] drm/i915/display: Add bits for link_n_extended for DISPLAY >= 14 Suraj Kandpal
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: mitulkumar.ajitkumar.golani, Ankit Nautiyal, Suraj Kandpal

From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

Introduce intel_dp_check_m_n_ratio() to validate the computed link M/N
ratio against the maximum allowed value, and log it if the ratio exceeds
the limit.

The link config limits computed in the previous commits only restrict
the configurations that may be selected; this catches anything that
still slips through.

Log it rather than warn about it: the link config filter already
excludes the configurations violating the limit, so the only way to get
here is with link parameters forced through debugfs, which are applied
after that filter. A user triggerable drm_WARN() with its backtrace
would be out of proportion for that.

For MST the check goes after the bpp loop rather than inside it. The
link M/N is computed from the pixel clock and the link symbol clock, so
it does not depend on the bpp being tried and the result is the same on
every iteration.

v2:
-Use the platform specific ratio limit. (Wa_14014191401)
-Use the MSO adjusted pixel clock when predicting the ratio, matching
what the link M/N is actually computed from. (Imre)
-Drop the check from ilk_fdi_compute_config(): it was passing dp_m_n
rather than the fdi_m_n it had just computed, and an FDI link cannot get
anywhere near the ratio limit anyway.
v3:
-Check the ratio once after the MST bpp loop instead of on every
iteration, the result does not depend on the bpp. (Sashiko)
-Log instead of warning, since the link config filter already excludes
these configurations and only forced link parameters can reach it.
(Sashiko)
v4:
-Move the MSO adjusted pixel clock to the commit adding the prediction,
so that one is correct on its own. (Mitul)
-Reuse intel_dp_link_m_n_ratio() instead of open coding the ratio.
(Mitul)
-Drop the m_n and link_n checks, neither can be NULL or 0. Make the
parameters const and move it next to intel_dp_can_support_m_n().
(Mitul)
-Drop the check on dp_m2_n2, the dp_m_n one already covers it. (Mitul)

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Co-developed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c     | 17 +++++++++++++++++
 drivers/gpu/drm/i915/display/intel_dp.h     |  4 ++++
 drivers/gpu/drm/i915/display/intel_dp_mst.c |  2 ++
 3 files changed, 23 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 1e06107627bc..db5747338b57 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1301,6 +1301,21 @@ bool intel_dp_can_support_m_n(struct intel_display *display,
 	return m_n_ratio <= max_m_n_ratio;
 }
 
+void intel_dp_check_m_n_ratio(const struct intel_crtc_state *crtc_state,
+			      const struct intel_link_m_n *m_n)
+{
+	struct intel_display *display = to_intel_display(crtc_state);
+	int max_m_n_ratio = intel_dp_get_max_m_n_ratio(display);
+	int m_n_ratio;
+
+	m_n_ratio = intel_dp_link_m_n_ratio(m_n->link_m, m_n->link_n);
+
+	if (m_n_ratio > max_m_n_ratio)
+		drm_dbg_kms(display->drm,
+			    "Link M/N ratio (%d) exceeds max allowed (%d)\n",
+			    m_n_ratio, max_m_n_ratio);
+}
+
 static int intel_dp_mso_pixel_clock(struct intel_dp *intel_dp, int pixel_clock)
 {
 	if (!intel_dp->mso_link_count)
@@ -3757,6 +3772,8 @@ intel_dp_compute_config(struct intel_atomic_state *state,
 				       pipe_config->port_clock,
 				       intel_dp_bw_fec_overhead(pipe_config->fec_enable),
 				       &pipe_config->dp_m_n);
+
+		intel_dp_check_m_n_ratio(pipe_config, &pipe_config->dp_m_n);
 	}
 
 	ret = intel_dp_compute_min_hblank(pipe_config, conn_state);
diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h
index de90296acce9..0f045f2df534 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.h
+++ b/drivers/gpu/drm/i915/display/intel_dp.h
@@ -26,6 +26,7 @@ struct intel_display;
 struct intel_dp;
 struct intel_dp_link_config;
 struct intel_encoder;
+struct intel_link_m_n;
 
 struct link_config_limits {
 	struct intel_dp_link_caps_filter link_config_filter;
@@ -245,4 +246,7 @@ bool intel_dp_can_support_m_n(struct intel_display *display,
 int intel_dp_link_init(struct intel_dp *intel_dp);
 void intel_dp_link_cleanup(struct intel_dp *intel_dp);
 
+void intel_dp_check_m_n_ratio(const struct intel_crtc_state *crtc_state,
+			      const struct intel_link_m_n *m_n);
+
 #endif /* __INTEL_DP_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index ae18817b4f35..687a12e995c5 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -429,6 +429,8 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
 		return slots;
 	}
 
+	intel_dp_check_m_n_ratio(crtc_state, &crtc_state->dp_m_n);
+
 	if (!dsc)
 		crtc_state->pipe_bpp = fxp_q4_to_int(bpp_x16);
 	else
-- 
2.34.1


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

* [PATCH v8 06/14] drm/i915/display: Add bits for link_n_extended for DISPLAY >= 14
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (4 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 05/14] drm/i915/dp: Add M/N ratio check for DP link config Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 07/14] drm/i915/display_wa: Add support for Wa_14021768792 Suraj Kandpal
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: mitulkumar.ajitkumar.golani, Ankit Nautiyal, Suraj Kandpal

From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

LINK_N register has bits 31:24 for extended link N value used for
HDMI2.1 and for an alternate mode of operation of DP TG DDA.

Add support for these extra bits.

For displays with version 14 or higher, PIPE_LINK_N1_EXTENDED_MASK
(bits 31:24) is used to handle the extended link N bits. For older
platforms, DATA_LINK_M_N_MASK (bits 23:0) is used to handle the
standard link N bits. This distinction ensures clarity and maintains
the semantics for platforms that support the extended bits. In
subsequent changes the logic is updated to conditionally apply the
extended link N bits.

v2: Drop extra link_n_ext member. (Jani)
v3: Avoid link_n_ext in set_m_n helper. (Jani)
v4: Rebase, and update commit message.
v5: Drop a stale changelog entry, the DISPLAY_VER split here is
    intentional. (Sashiko)

Bspec: 50488
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Co-developed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c   | 18 ++++++++++++++++--
 .../gpu/drm/i915/display/intel_display_regs.h  |  2 ++
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index f74e7ddf0e41..461b81bf8341 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2720,14 +2720,22 @@ void intel_set_m_n(struct intel_display *display,
 		   intel_reg_t data_m_reg, intel_reg_t data_n_reg,
 		   intel_reg_t link_m_reg, intel_reg_t link_n_reg)
 {
+	u32 link_n = m_n->link_n;
+
 	intel_de_write(display, data_m_reg, TU_SIZE(m_n->tu) | m_n->data_m);
 	intel_de_write(display, data_n_reg, m_n->data_n);
 	intel_de_write(display, link_m_reg, m_n->link_m);
+
+	if (DISPLAY_VER(display) >= 14)
+		link_n &= ~PIPE_LINK_N1_EXTENDED_MASK;
+	else
+		link_n &= DATA_LINK_M_N_MASK;
+
 	/*
 	 * On BDW+ writing LINK_N arms the double buffered update
 	 * of all the M/N registers, so it must be written last.
 	 */
-	intel_de_write(display, link_n_reg, m_n->link_n);
+	intel_de_write(display, link_n_reg, link_n);
 }
 
 bool intel_cpu_transcoder_has_m2_n2(struct intel_display *display,
@@ -3484,7 +3492,13 @@ void intel_get_m_n(struct intel_display *display,
 		   intel_reg_t link_m_reg, intel_reg_t link_n_reg)
 {
 	m_n->link_m = intel_de_read(display, link_m_reg) & DATA_LINK_M_N_MASK;
-	m_n->link_n = intel_de_read(display, link_n_reg) & DATA_LINK_M_N_MASK;
+	m_n->link_n = intel_de_read(display, link_n_reg);
+
+	if (DISPLAY_VER(display) >= 14)
+		m_n->link_n &= ~PIPE_LINK_N1_EXTENDED_MASK;
+	else
+		m_n->link_n &= DATA_LINK_M_N_MASK;
+
 	m_n->data_m = intel_de_read(display, data_m_reg) & DATA_LINK_M_N_MASK;
 	m_n->data_n = intel_de_read(display, data_n_reg) & DATA_LINK_M_N_MASK;
 	m_n->tu = REG_FIELD_GET(TU_SIZE_MASK, intel_de_read(display, data_m_reg)) + 1;
diff --git a/drivers/gpu/drm/i915/display/intel_display_regs.h b/drivers/gpu/drm/i915/display/intel_display_regs.h
index 2f509bd06557..983a0d9dcb9c 100644
--- a/drivers/gpu/drm/i915/display/intel_display_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_display_regs.h
@@ -1190,6 +1190,8 @@
 
 #define _PIPEA_LINK_N1		0x60044
 #define _PIPEB_LINK_N1		0x61044
+#define  PIPE_LINK_N1_EXTENDED_MASK	REG_GENMASK(31, 24)
+#define  PIPE_LINK_N1_EXTENDED(val)	REG_FIELD_PREP(PIPE_LINK_N1_EXTENDED_MASK, (val))
 #define PIPE_LINK_N1(dev_priv, tran) _MMIO_TRANS2(dev_priv, tran, _PIPEA_LINK_N1)
 
 #define _PIPEA_LINK_M2		0x60048
-- 
2.34.1


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

* [PATCH v8 07/14] drm/i915/display_wa: Add support for Wa_14021768792
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (5 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 06/14] drm/i915/display: Add bits for link_n_extended for DISPLAY >= 14 Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 08/14] drm/i915/display: Add bits for Wa_14021768792 for linkm/n ratio > 10 Suraj Kandpal
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: mitulkumar.ajitkumar.golani, Ankit Nautiyal, Suraj Kandpal

From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

Some BMG ultrajoiner configurations require support for Link M/N ratios
between 10.0 and 15.0. This range is not natively supported and requires
a workaround.

Wa_14021768792 enables this support by utilizing HDMI_EMP_DATA,
CHICKEN_TRANS and the extended bits in the LINK_N register.

Add the necessary logic to enable the workaround on applicable platforms.
The underlying mechanism comes from the display C0,
so it is gated on display stepping C0 and later.

v2:
-Don't include i915_drv.h and don't use struct drm_i915_private under
display/. Use display->platform.battlemage, which names the affected
platform directly, instead of IS_DGFX() combined with a display version
check. (Jani)
-Rebase on the reworked display WA framework, where the condition goes
directly into the __intel_display_wa() switch.

Bspec: 49266
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Co-developed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_wa.c | 9 +++++++++
 drivers/gpu/drm/i915/display/intel_display_wa.h | 1 +
 2 files changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c b/drivers/gpu/drm/i915/display/intel_display_wa.c
index 91395076e903..e6f84dffdeb7 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.c
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.c
@@ -102,6 +102,15 @@ bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa,
 		return DISPLAY_VERx100(display) == 3000 ||
 			DISPLAY_VERx100(display) == 2000 ||
 			DISPLAY_VERx100(display) == 1401;
+	/*
+	 * Wa_14021768792:
+	 * Fixes: Limitation of Link M/N ratio > 10 for specific Xe2HPD platforms.
+	 * Workaround: Use HDMI_EMP_DATA, CHICKEN_BITs and extended bits in LINK_N
+	 * registers to support LINK M/N ratios from > 10 but < 15.
+	 */
+	case INTEL_DISPLAY_WA_14021768792:
+		return display->platform.battlemage &&
+			IS_DISPLAY_STEP(display, STEP_C0, STEP_FOREVER);
 	case INTEL_DISPLAY_WA_14025769978:
 		return DISPLAY_VER(display) == 35;
 	case INTEL_DISPLAY_WA_14026643300:
diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h b/drivers/gpu/drm/i915/display/intel_display_wa.h
index f41e58d1d6e7..0b43c2144dcc 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.h
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.h
@@ -34,6 +34,7 @@ enum intel_display_wa {
 	INTEL_DISPLAY_WA_14014191401,
 	INTEL_DISPLAY_WA_14016740474,
 	INTEL_DISPLAY_WA_14020863754,
+	INTEL_DISPLAY_WA_14021768792,
 	INTEL_DISPLAY_WA_14025769978,
 	INTEL_DISPLAY_WA_14026643300,
 	INTEL_DISPLAY_WA_15013987218,
-- 
2.34.1


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

* [PATCH v8 08/14] drm/i915/display: Add bits for Wa_14021768792 for linkm/n ratio > 10
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (6 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 07/14] drm/i915/display_wa: Add support for Wa_14021768792 Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:09   ` Golani, Mitulkumar Ajitkumar
  2026-10-23  5:02 ` [PATCH v8 09/14] drm/i915/display: Program " Suraj Kandpal
                   ` (8 subsequent siblings)
  16 siblings, 1 reply; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: mitulkumar.ajitkumar.golani, Suraj Kandpal

Add the register definitions for the WA: the INT and CEIL nibbles of the
extended LINK_N field, the Link M fraction field of HDMI_EMP_DATA and
the enhanced TGDDA bit of CHICKEN_TRANS.
Per Bspec the extended LINK_N field is two nibbles: bits 27:24 hold
INT(Link M / Link N) and bits 31:28 hold CEIL(Link M / Link N).

Bspec: 49266
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_regs.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display_regs.h b/drivers/gpu/drm/i915/display/intel_display_regs.h
index 983a0d9dcb9c..bbdbc27629d7 100644
--- a/drivers/gpu/drm/i915/display/intel_display_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_display_regs.h
@@ -550,6 +550,11 @@
 #define _TRANS_MULT_B		0x6102c
 #define TRANS_MULT(dev_priv, trans)	_MMIO_TRANS2(dev_priv, (trans), _TRANS_MULT_A)
 
+#define _HDMI_EMP_DATA_A	0x600d8
+#define _HDMI_EMP_DATA_B	0x610d8
+#define  HDMI_EMP_DATA_LINK_M_FRAC_MASK	REG_GENMASK(23, 0)
+#define HDMI_EMP_DATA(display, trans)	_MMIO_TRANS2((display), (trans), _HDMI_EMP_DATA_A)
+
 /* Hotplug control (945+ only) */
 #define PORT_HOTPLUG_EN(dev_priv)		_MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x61110)
 #define   PORTB_HOTPLUG_INT_EN			(1 << 29)
@@ -1192,6 +1197,10 @@
 #define _PIPEB_LINK_N1		0x61044
 #define  PIPE_LINK_N1_EXTENDED_MASK	REG_GENMASK(31, 24)
 #define  PIPE_LINK_N1_EXTENDED(val)	REG_FIELD_PREP(PIPE_LINK_N1_EXTENDED_MASK, (val))
+#define  PIPE_LINK_N1_EXT_CEIL_MASK	REG_GENMASK(7, 4)
+#define  PIPE_LINK_N1_EXT_CEIL(val)	REG_FIELD_PREP(PIPE_LINK_N1_EXT_CEIL_MASK, (val))
+#define  PIPE_LINK_N1_EXT_INT_MASK	REG_GENMASK(3, 0)
+#define  PIPE_LINK_N1_EXT_INT(val)	REG_FIELD_PREP(PIPE_LINK_N1_EXT_INT_MASK, (val))
 #define PIPE_LINK_N1(dev_priv, tran) _MMIO_TRANS2(dev_priv, tran, _PIPEA_LINK_N1)
 
 #define _PIPEA_LINK_M2		0x60048
@@ -1710,6 +1719,7 @@
 #define   PSR2_ADD_VERTICAL_LINE_COUNT	REG_BIT(15)
 #define   DP_FEC_BS_JITTER_WA		REG_BIT(15)
 #define   PSR2_VSC_ENABLE_PROG_HEADER	REG_BIT(12)
+#define   DP_ENHANCED_TGDDA_ENABLE	REG_BIT(11)
 #define   DP_DSC_INSERT_SF_AT_EOL_WA	REG_BIT(4)
 #define   HDCP_LINE_REKEY_DISABLE	REG_BIT(0)
 
-- 
2.34.1


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

* [PATCH v8 09/14] drm/i915/display: Program Wa_14021768792 for linkm/n ratio > 10
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (7 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 08/14] drm/i915/display: Add bits for Wa_14021768792 for linkm/n ratio > 10 Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:11   ` Golani, Mitulkumar Ajitkumar
  2026-10-23  5:02 ` [PATCH v8 10/14] drm/i915/display: Read back and compare Wa_14021768792 state Suraj Kandpal
                   ` (7 subsequent siblings)
  16 siblings, 1 reply; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: mitulkumar.ajitkumar.golani, Suraj Kandpal, Ankit Nautiyal

Add a bypass_m_n_ratio_limit member to struct intel_link_m_n to track
whether Wa_14021768792 is used to bypass the Link M/N ratio limit, and
program the workaround when it is set.
CHICKEN_TRANS and HDMI_EMP_DATA are programmed before LINK_N, since
writing LINK_N arms the double buffered update of the M/N registers, and
all of the programming has to be done before the transcoder is enabled.
Both are also explicitly cleared when the mechanism is not in use, so
that state cannot leak from a previous modeset.

Bspec: 49266
Co-developed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c  | 35 ++++++++++++++++++-
 .../drm/i915/display/intel_display_types.h    |  2 ++
 2 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 461b81bf8341..b48f12cc615f 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2715,6 +2715,15 @@ void intel_zero_m_n(struct intel_link_m_n *m_n)
 	m_n->tu = 1;
 }
 
+static u8 bmg_get_link_n_ext(const struct intel_link_m_n *m_n)
+{
+	if (!m_n->link_n)
+		return 0;
+
+	return PIPE_LINK_N1_EXT_INT(m_n->link_m / m_n->link_n) |
+		PIPE_LINK_N1_EXT_CEIL(DIV_ROUND_UP(m_n->link_m, m_n->link_n));
+}
+
 void intel_set_m_n(struct intel_display *display,
 		   const struct intel_link_m_n *m_n,
 		   intel_reg_t data_m_reg, intel_reg_t data_n_reg,
@@ -2726,7 +2735,9 @@ void intel_set_m_n(struct intel_display *display,
 	intel_de_write(display, data_n_reg, m_n->data_n);
 	intel_de_write(display, link_m_reg, m_n->link_m);
 
-	if (DISPLAY_VER(display) >= 14)
+	if (DISPLAY_VER(display) >= 14 && m_n->bypass_m_n_ratio_limit)
+		link_n |= PIPE_LINK_N1_EXTENDED(bmg_get_link_n_ext(m_n));
+	else if (DISPLAY_VER(display) >= 14)
 		link_n &= ~PIPE_LINK_N1_EXTENDED_MASK;
 	else
 		link_n &= DATA_LINK_M_N_MASK;
@@ -2747,6 +2758,26 @@ bool intel_cpu_transcoder_has_m2_n2(struct intel_display *display,
 	return IS_DISPLAY_VER(display, 5, 7) || display->platform.cherryview;
 }
 
+static void bmg_enhanced_tgdda_write(struct intel_crtc *crtc,
+				     enum transcoder transcoder,
+				     const struct intel_link_m_n *m_n)
+{
+	struct intel_display *display = to_intel_display(crtc);
+	bool enable = m_n->bypass_m_n_ratio_limit && m_n->link_n;
+	u32 link_m_frac = enable ? m_n->link_m % m_n->link_n : 0;
+
+	if (!intel_display_wa(display, INTEL_DISPLAY_WA_14021768792))
+		return;
+
+	intel_de_rmw(display, HDMI_EMP_DATA(display, transcoder),
+		     HDMI_EMP_DATA_LINK_M_FRAC_MASK,
+		     REG_FIELD_PREP(HDMI_EMP_DATA_LINK_M_FRAC_MASK, link_m_frac));
+
+	intel_de_rmw(display, CHICKEN_TRANS(display, transcoder),
+		     DP_ENHANCED_TGDDA_ENABLE,
+		     enable ? DP_ENHANCED_TGDDA_ENABLE : 0);
+}
+
 void intel_cpu_transcoder_set_m1_n1(struct intel_crtc *crtc,
 				    enum transcoder transcoder,
 				    const struct intel_link_m_n *m_n)
@@ -2754,6 +2785,8 @@ void intel_cpu_transcoder_set_m1_n1(struct intel_crtc *crtc,
 	struct intel_display *display = to_intel_display(crtc);
 	enum pipe pipe = crtc->pipe;
 
+	bmg_enhanced_tgdda_write(crtc, transcoder, m_n);
+
 	if (DISPLAY_VER(display) >= 5)
 		intel_set_m_n(display, m_n,
 			      PIPE_DATA_M1(display, transcoder),
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 8f9fb2603638..d0748837ce97 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -985,6 +985,8 @@ struct intel_link_m_n {
 	u32 data_n;
 	u32 link_m;
 	u32 link_n;
+	/* Wa_14021768792 for linkm/n ratio > 10 */
+	bool bypass_m_n_ratio_limit;
 };
 
 struct intel_csc_matrix {
-- 
2.34.1


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

* [PATCH v8 10/14] drm/i915/display: Read back and compare Wa_14021768792 state
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (8 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 09/14] drm/i915/display: Program " Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:12   ` Golani, Mitulkumar Ajitkumar
  2026-10-23  5:02 ` [PATCH v8 11/14] drm/i915/display: Dump bypass_m_n_ratio_limit in the crtc state dump Suraj Kandpal
                   ` (6 subsequent siblings)
  16 siblings, 1 reply; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: mitulkumar.ajitkumar.golani, Suraj Kandpal, Ankit Nautiyal

Add intel_display_can_bypass_m_n_limit() to tell whether Wa_14021768792
can be used for a given Link M/N ratio, and use it to read
bypass_m_n_ratio_limit back from the hardware. Compare the flag in
intel_pipe_config_compare(), so that a mismatch between the computed and
the read back state of the workaround is caught.
Unlike the rest of the M/N registers, CHICKEN_TRANS and HDMI_EMP_DATA
are not double buffered, so the flag has to be compared outside the
fastset exemption that PIPE_CONF_CHECK_M_N() has for update_m_n.
Otherwise a seamless M/N update could switch the DDA out of the
workaround on a live transcoder, with the Link M/N values only following
at the next MSA.

Bspec: 49266
Co-developed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 47 ++++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_display.h |  2 +
 2 files changed, 49 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index b48f12cc615f..ecc0e5ec181a 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -3537,6 +3537,49 @@ void intel_get_m_n(struct intel_display *display,
 	m_n->tu = REG_FIELD_GET(TU_SIZE_MASK, intel_de_read(display, data_m_reg)) + 1;
 }
 
+bool intel_display_can_bypass_m_n_limit(struct intel_display *display,
+					int m_n_ratio,
+					enum transcoder transcoder)
+{
+	if (!intel_display_wa(display, INTEL_DISPLAY_WA_14021768792))
+		return false;
+
+	if (m_n_ratio > 15)
+		return false;
+
+	if (transcoder != TRANSCODER_A)
+		return false;
+
+	return true;
+}
+
+static void bmg_enhanced_tgdda_read(struct intel_crtc *crtc,
+				    enum transcoder transcoder,
+				    struct intel_link_m_n *m_n)
+{
+	struct intel_display *display = to_intel_display(crtc);
+	u32 link_m_frac;
+	int m_n_ratio;
+
+	if (!m_n->link_n)
+		return;
+
+	m_n_ratio = DIV_ROUND_UP(m_n->link_m, m_n->link_n);
+
+	if (!intel_display_can_bypass_m_n_limit(display, m_n_ratio, transcoder))
+		return;
+
+	if (!(intel_de_read(display, CHICKEN_TRANS(display, transcoder)) &
+	      DP_ENHANCED_TGDDA_ENABLE))
+		return;
+
+	link_m_frac = REG_FIELD_GET(HDMI_EMP_DATA_LINK_M_FRAC_MASK,
+				    intel_de_read(display, HDMI_EMP_DATA(display, transcoder)));
+
+	if (link_m_frac == m_n->link_m % m_n->link_n)
+		m_n->bypass_m_n_ratio_limit = true;
+}
+
 void intel_cpu_transcoder_get_m1_n1(struct intel_crtc *crtc,
 				    enum transcoder transcoder,
 				    struct intel_link_m_n *m_n)
@@ -3554,6 +3597,8 @@ void intel_cpu_transcoder_get_m1_n1(struct intel_crtc *crtc,
 		intel_get_m_n(display, m_n,
 			      PIPE_DATA_M_G4X(pipe), PIPE_DATA_N_G4X(pipe),
 			      PIPE_LINK_M_G4X(pipe), PIPE_LINK_N_G4X(pipe));
+
+	bmg_enhanced_tgdda_read(crtc, transcoder, m_n);
 }
 
 void intel_cpu_transcoder_get_m2_n2(struct intel_crtc *crtc,
@@ -5478,6 +5523,8 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
 		PIPE_CONF_CHECK_M_N(dp_m2_n2);
 	}
 
+	PIPE_CONF_CHECK_BOOL(dp_m_n.bypass_m_n_ratio_limit);
+
 	PIPE_CONF_CHECK_X(output_types);
 
 	PIPE_CONF_CHECK_I(framestart_delay);
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index 404168f4213b..d53b7b4a80e7 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -525,5 +525,7 @@ bool intel_scanout_needs_vtd_wa(struct intel_display *display);
 int intel_crtc_num_joined_pipes(const struct intel_crtc_state *crtc_state);
 void intel_display_compute_link_m_n(u32 *link_m, u32 *link_n,
 				    int pixel_clock, int link_symbol_clock);
+bool intel_display_can_bypass_m_n_limit(struct intel_display *display,
+					int m_n_ratio, enum transcoder transcoder);
 
 #endif
-- 
2.34.1


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

* [PATCH v8 11/14] drm/i915/display: Dump bypass_m_n_ratio_limit in the crtc state dump
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (9 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 10/14] drm/i915/display: Read back and compare Wa_14021768792 state Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 12/14] drm/i915/display: Implement Wa_14021768792 for BMG DP for link_m/n ratio > 10 Suraj Kandpal
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: mitulkumar.ajitkumar.golani, Suraj Kandpal

Dump whether the Link M/N ratio limit is bypassed with Wa_14021768792
along with the rest of the M/N values in the crtc state dump.

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_crtc_state_dump.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
index 92675a88b969..c51b21222dc6 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
@@ -36,10 +36,12 @@ intel_dump_m_n_config(struct drm_printer *p,
 		      const char *id, unsigned int lane_count,
 		      const struct intel_link_m_n *m_n)
 {
-	drm_printf(p, "%s: lanes: %i; data_m: %u, data_n: %u, link_m: %u, link_n: %u, tu: %u\n",
+	drm_printf(p,
+		   "%s: lanes: %i; data_m: %u, data_n: %u, link_m: %u, link_n: %u, tu: %u, bypass_m_n_ratio_limit: %s\n",
 		   id, lane_count,
 		   m_n->data_m, m_n->data_n,
-		   m_n->link_m, m_n->link_n, m_n->tu);
+		   m_n->link_m, m_n->link_n, m_n->tu,
+		   str_yes_no(m_n->bypass_m_n_ratio_limit));
 }
 
 static void
-- 
2.34.1


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

* [PATCH v8 12/14] drm/i915/display: Implement Wa_14021768792 for BMG DP for link_m/n ratio > 10
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (10 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 11/14] drm/i915/display: Dump bypass_m_n_ratio_limit in the crtc state dump Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:02 ` [PATCH v8 13/14] drm/i915/dp: Extend intel_dp_can_support_m_n() for BMG M/N bypass Suraj Kandpal
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: mitulkumar.ajitkumar.golani, Ankit Nautiyal, Suraj Kandpal

From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

Handle the bypass logic for the M/N ratio limit for DP.
Calculate the M/N ratio, check if it can bypass the limit, and set the
appropriate flags for the workaround.

v2:
-Restrict the workaround to 128b/132b links.
-Clear bypass_m_n_ratio_limit on entry, so a rejected link rate cannot
leave it set for the rate that gets used. (Sashiko)
v3:
-Rebase on the reworked M/N ratio check, which no longer checks m_n and
link_n. m_n is no longer const, as the flag is set through it. (Mitul)
-Pass the cpu transcoder to intel_display_can_bypass_m_n_limit() instead
of the pipe. (Mitul)

Bspec: 49266
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Co-developed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 28 ++++++++++++++++++++-----
 drivers/gpu/drm/i915/display/intel_dp.h |  2 +-
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index db5747338b57..73c67565a329 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1302,18 +1302,32 @@ bool intel_dp_can_support_m_n(struct intel_display *display,
 }
 
 void intel_dp_check_m_n_ratio(const struct intel_crtc_state *crtc_state,
-			      const struct intel_link_m_n *m_n)
+			      struct intel_link_m_n *m_n)
 {
 	struct intel_display *display = to_intel_display(crtc_state);
 	int max_m_n_ratio = intel_dp_get_max_m_n_ratio(display);
 	int m_n_ratio;
 
+	m_n->bypass_m_n_ratio_limit = false;
+
 	m_n_ratio = intel_dp_link_m_n_ratio(m_n->link_m, m_n->link_n);
 
-	if (m_n_ratio > max_m_n_ratio)
+	if (m_n_ratio <= max_m_n_ratio)
+		return;
+
+	if (intel_dp_is_uhbr(crtc_state) &&
+	    intel_display_can_bypass_m_n_limit(display, m_n_ratio,
+					       crtc_state->cpu_transcoder)) {
+		m_n->bypass_m_n_ratio_limit = true;
 		drm_dbg_kms(display->drm,
-			    "Link M/N ratio (%d) exceeds max allowed (%d)\n",
-			    m_n_ratio, max_m_n_ratio);
+			    "Bypassing Link_m/Link_n ratio limit (ratio %d)\n",
+			    m_n_ratio);
+		return;
+	}
+
+	drm_dbg_kms(display->drm,
+		    "Link M/N ratio (%d) exceeds max allowed (%d)\n",
+		    m_n_ratio, max_m_n_ratio);
 }
 
 static int intel_dp_mso_pixel_clock(struct intel_dp *intel_dp, int pixel_clock)
@@ -3395,6 +3409,9 @@ static bool can_enable_drrs(struct intel_connector *connector,
 	if (pipe_config->vrr.enable)
 		return false;
 
+	if (pipe_config->dp_m_n.bypass_m_n_ratio_limit)
+		return false;
+
 	/*
 	 * DRRS and PSR can't be enable together, so giving preference to PSR
 	 * as it allows more power-savings by complete shutting down display,
@@ -3429,7 +3446,8 @@ intel_dp_drrs_compute_config(struct intel_connector *connector,
 	 * FIXME all joined pipes share the same transcoder.
 	 * Need to account for that when updating M/N live.
 	 */
-	if (has_seamless_m_n(connector) && !pipe_config->joiner_pipes)
+	if (has_seamless_m_n(connector) && !pipe_config->joiner_pipes &&
+	    !pipe_config->dp_m_n.bypass_m_n_ratio_limit)
 		pipe_config->update_m_n = true;
 
 	if (!can_enable_drrs(connector, pipe_config, downclock_mode)) {
diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h
index 0f045f2df534..ef5aa28617f0 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.h
+++ b/drivers/gpu/drm/i915/display/intel_dp.h
@@ -247,6 +247,6 @@ int intel_dp_link_init(struct intel_dp *intel_dp);
 void intel_dp_link_cleanup(struct intel_dp *intel_dp);
 
 void intel_dp_check_m_n_ratio(const struct intel_crtc_state *crtc_state,
-			      const struct intel_link_m_n *m_n);
+			      struct intel_link_m_n *m_n);
 
 #endif /* __INTEL_DP_H__ */
-- 
2.34.1


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

* [PATCH v8 13/14] drm/i915/dp: Extend intel_dp_can_support_m_n() for BMG M/N bypass
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (11 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 12/14] drm/i915/display: Implement Wa_14021768792 for BMG DP for link_m/n ratio > 10 Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:16   ` Golani, Mitulkumar Ajitkumar
  2026-10-23  5:02 ` [PATCH v8 14/14] drm/i915/dp: Bump the max Link M/N ratio to 22 for DISPLAY_VER >= 35 Suraj Kandpal
                   ` (3 subsequent siblings)
  16 siblings, 1 reply; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: mitulkumar.ajitkumar.golani, Ankit Nautiyal, Suraj Kandpal

From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

On BMG platforms, the standard M/N ratio limit of 10 can be bypassed
under specific conditions, as permitted by hardware capabilities.

Modify the helper intel_dp_can_support_m_n() to account for this by
checking whether the platform supports bypassing the limit. The
workaround is only intended for 128b/132b links, so restrict it to
those.

Put the bypass condition, a UHBR link rate plus
intel_display_can_bypass_m_n_limit(), into a helper and use it from
intel_dp_check_m_n_ratio() as well, so that the prediction and the
decision on the final state cannot drift apart.

During the mode_valid phase, the check assumes that TRANSCODER_A will be
used, to allow the mode where the M/N ratio is within the limits for the
workaround.

v2:
-Keep the helper static: the MST mode_valid now goes through the shared
intel_dp_mode_valid_m_n() rather than calling it directly, so it no
longer needs to be exported.
v3:
-Use the cpu transcoder instead of the pipe, following the change to
intel_display_can_bypass_m_n_limit(). (Mitul)
v4:
-Share the bypass condition with intel_dp_check_m_n_ratio() through
intel_dp_can_bypass_m_n_limit(). (Mitul)
-The helper is exported again, the MST mode_valid calls it directly to
check the ratio against the maximum BW configuration. (Mitul)

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Co-developed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c     | 28 ++++++++++++++++-----
 drivers/gpu/drm/i915/display/intel_dp.h     |  1 +
 drivers/gpu/drm/i915/display/intel_dp_mst.c |  2 +-
 3 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 73c67565a329..772006691882 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1286,10 +1286,20 @@ static int intel_dp_link_m_n_ratio(u32 link_m, u32 link_n)
 	return DIV_ROUND_UP(link_m, link_n);
 }
 
+static bool
+intel_dp_can_bypass_m_n_limit(struct intel_display *display, int link_rate,
+			      int m_n_ratio, enum transcoder cpu_transcoder)
+{
+	return drm_dp_is_uhbr_rate(link_rate) &&
+		intel_display_can_bypass_m_n_limit(display, m_n_ratio, cpu_transcoder);
+}
+
 bool intel_dp_can_support_m_n(struct intel_display *display,
+			      const struct intel_crtc_state *crtc_state,
 			      int pixel_clock, int link_rate)
 {
 	int max_m_n_ratio = intel_dp_get_max_m_n_ratio(display);
+	enum transcoder cpu_transcoder = TRANSCODER_A;
 	u32 link_m, link_n;
 	int m_n_ratio;
 
@@ -1298,7 +1308,13 @@ bool intel_dp_can_support_m_n(struct intel_display *display,
 
 	m_n_ratio = intel_dp_link_m_n_ratio(link_m, link_n);
 
-	return m_n_ratio <= max_m_n_ratio;
+	if (m_n_ratio <= max_m_n_ratio)
+		return true;
+
+	if (crtc_state)
+		cpu_transcoder = crtc_state->cpu_transcoder;
+
+	return intel_dp_can_bypass_m_n_limit(display, link_rate, m_n_ratio, cpu_transcoder);
 }
 
 void intel_dp_check_m_n_ratio(const struct intel_crtc_state *crtc_state,
@@ -1315,9 +1331,8 @@ void intel_dp_check_m_n_ratio(const struct intel_crtc_state *crtc_state,
 	if (m_n_ratio <= max_m_n_ratio)
 		return;
 
-	if (intel_dp_is_uhbr(crtc_state) &&
-	    intel_display_can_bypass_m_n_limit(display, m_n_ratio,
-					       crtc_state->cpu_transcoder)) {
+	if (intel_dp_can_bypass_m_n_limit(display, crtc_state->port_clock, m_n_ratio,
+					  crtc_state->cpu_transcoder)) {
 		m_n->bypass_m_n_ratio_limit = true;
 		drm_dbg_kms(display->drm,
 			    "Bypassing Link_m/Link_n ratio limit (ratio %d)\n",
@@ -1388,7 +1403,7 @@ static bool intel_dp_mode_valid_m_n(struct intel_dp *intel_dp, int pixel_clock)
 	intel_dp_link_caps_iter_start(&iter, intel_dp->link.caps, order,
 				      INTEL_DP_LINK_CAPS_FILTER_ALL);
 	for_each_dp_link_config(&iter, &link_config) {
-		if (intel_dp_can_support_m_n(display, m_n_pixel_clock,
+		if (intel_dp_can_support_m_n(display, NULL, m_n_pixel_clock,
 					     link_config.rate)) {
 			found = true;
 
@@ -2777,7 +2792,8 @@ intel_dp_compute_m_n_ratio_limits(struct intel_dp *intel_dp,
 
 	intel_dp_link_caps_iter_start(&iter, link_caps, order, limits->link_config_filter);
 	for_each_dp_link_config(&iter, &link_config) {
-		if (!intel_dp_can_support_m_n(display, pixel_clock, link_config.rate))
+		if (!intel_dp_can_support_m_n(display, crtc_state, pixel_clock,
+					      link_config.rate))
 			continue;
 
 		intel_dp_link_caps_filter_add(link_caps, &new_filter, &link_config);
diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h
index ef5aa28617f0..1f4a3aff9abe 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.h
+++ b/drivers/gpu/drm/i915/display/intel_dp.h
@@ -241,6 +241,7 @@ bool intel_dp_joiner_candidate_valid(struct intel_connector *connector,
 u8 intel_dp_as_sdp_transmission_time(void);
 
 bool intel_dp_can_support_m_n(struct intel_display *display,
+			      const struct intel_crtc_state *crtc_state,
 			      int pixel_clock, int link_rate);
 
 int intel_dp_link_init(struct intel_dp *intel_dp);
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 687a12e995c5..ed130df0b615 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -1567,7 +1567,7 @@ mst_connector_mode_valid_ctx(struct drm_connector *_connector,
 					   min_link_bpp_x16,
 					   bw_overhead_flags);
 
-	if (!intel_dp_can_support_m_n(display, mode->clock, max_link_clock)) {
+	if (!intel_dp_can_support_m_n(display, NULL, mode->clock, max_link_clock)) {
 		*status = MODE_CLOCK_HIGH;
 		return 0;
 	}
-- 
2.34.1


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

* [PATCH v8 14/14] drm/i915/dp: Bump the max Link M/N ratio to 22 for DISPLAY_VER >= 35
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (12 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 13/14] drm/i915/dp: Extend intel_dp_can_support_m_n() for BMG M/N bypass Suraj Kandpal
@ 2026-10-23  5:02 ` Suraj Kandpal
  2026-10-23  5:11 ` ✓ CI.KUnit: success for Implement Wa_14021768792 to bypass m_n ratio limit (rev12) Patchwork
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Suraj Kandpal @ 2026-10-23  5:02 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: mitulkumar.ajitkumar.golani, Suraj Kandpal

Starting Xe3p max M/N ratio has been increased to 22.

Bspec: 68922
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 772006691882..bf5e87a72108 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1272,6 +1272,9 @@ bool intel_dp_has_dsc(const struct intel_connector *connector)
 static int
 intel_dp_get_max_m_n_ratio(struct intel_display *display)
 {
+	if (DISPLAY_VER(display) >= 35)
+		return 22;
+
 	if (intel_display_wa(display, INTEL_DISPLAY_WA_14014191401))
 		return 4;
 
-- 
2.34.1


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

* RE: [PATCH v8 08/14] drm/i915/display: Add bits for Wa_14021768792 for linkm/n ratio > 10
  2026-10-23  5:02 ` [PATCH v8 08/14] drm/i915/display: Add bits for Wa_14021768792 for linkm/n ratio > 10 Suraj Kandpal
@ 2026-10-23  5:09   ` Golani, Mitulkumar Ajitkumar
  0 siblings, 0 replies; 24+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2026-10-23  5:09 UTC (permalink / raw)
  To: Kandpal, Suraj, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Kandpal, Suraj <suraj.kandpal@intel.com>
> Sent: 23 October 2026 10:32
> To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Golani, Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>;
> Kandpal, Suraj <suraj.kandpal@intel.com>
> Subject: [PATCH v8 08/14] drm/i915/display: Add bits for Wa_14021768792
> for linkm/n ratio > 10
> 
> Add the register definitions for the WA: the INT and CEIL nibbles of the
> extended LINK_N field, the Link M fraction field of HDMI_EMP_DATA and the
> enhanced TGDDA bit of CHICKEN_TRANS.
> Per Bspec the extended LINK_N field is two nibbles: bits 27:24 hold INT(Link
> M / Link N) and bits 31:28 hold CEIL(Link M / Link N).
> 
> Bspec: 49266
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display_regs.h | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_regs.h
> b/drivers/gpu/drm/i915/display/intel_display_regs.h
> index 983a0d9dcb9c..bbdbc27629d7 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_regs.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_regs.h
> @@ -550,6 +550,11 @@
>  #define _TRANS_MULT_B		0x6102c
>  #define TRANS_MULT(dev_priv, trans)	_MMIO_TRANS2(dev_priv, (trans),
> _TRANS_MULT_A)
> 
> +#define _HDMI_EMP_DATA_A	0x600d8
> +#define _HDMI_EMP_DATA_B	0x610d8
> +#define  HDMI_EMP_DATA_LINK_M_FRAC_MASK	REG_GENMASK(23, 0)
> +#define HDMI_EMP_DATA(display, trans)	_MMIO_TRANS2((display),
> (trans), _HDMI_EMP_DATA_A)
> +
>  /* Hotplug control (945+ only) */
>  #define PORT_HOTPLUG_EN(dev_priv)
> 	_MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x61110)
>  #define   PORTB_HOTPLUG_INT_EN			(1 << 29)
> @@ -1192,6 +1197,10 @@
>  #define _PIPEB_LINK_N1		0x61044
>  #define  PIPE_LINK_N1_EXTENDED_MASK	REG_GENMASK(31, 24)
>  #define  PIPE_LINK_N1_EXTENDED(val)
> 	REG_FIELD_PREP(PIPE_LINK_N1_EXTENDED_MASK, (val))
> +#define  PIPE_LINK_N1_EXT_CEIL_MASK	REG_GENMASK(7, 4)
> +#define  PIPE_LINK_N1_EXT_CEIL(val)
> 	REG_FIELD_PREP(PIPE_LINK_N1_EXT_CEIL_MASK, (val))
> +#define  PIPE_LINK_N1_EXT_INT_MASK	REG_GENMASK(3, 0)
> +#define  PIPE_LINK_N1_EXT_INT(val)
> 	REG_FIELD_PREP(PIPE_LINK_N1_EXT_INT_MASK, (val))



>  #define PIPE_LINK_N1(dev_priv, tran) _MMIO_TRANS2(dev_priv, tran,
> _PIPEA_LINK_N1)
> 
>  #define _PIPEA_LINK_M2		0x60048
> @@ -1710,6 +1719,7 @@
>  #define   PSR2_ADD_VERTICAL_LINE_COUNT	REG_BIT(15)
>  #define   DP_FEC_BS_JITTER_WA		REG_BIT(15)
>  #define   PSR2_VSC_ENABLE_PROG_HEADER	REG_BIT(12)
> +#define   DP_ENHANCED_TGDDA_ENABLE	REG_BIT(11)

LGTM
Reviewed-by: Mitul Golani<mitulkumar.ajitkumar.golani@intel.com>

>  #define   DP_DSC_INSERT_SF_AT_EOL_WA	REG_BIT(4)
>  #define   HDCP_LINE_REKEY_DISABLE	REG_BIT(0)
> 
> --
> 2.34.1


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

* RE: [PATCH v8 09/14] drm/i915/display: Program Wa_14021768792 for linkm/n ratio > 10
  2026-10-23  5:02 ` [PATCH v8 09/14] drm/i915/display: Program " Suraj Kandpal
@ 2026-10-23  5:11   ` Golani, Mitulkumar Ajitkumar
  0 siblings, 0 replies; 24+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2026-10-23  5:11 UTC (permalink / raw)
  To: Kandpal, Suraj, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org
  Cc: Nautiyal, Ankit K



> -----Original Message-----
> From: Kandpal, Suraj <suraj.kandpal@intel.com>
> Sent: 23 October 2026 10:32
> To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Golani, Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>;
> Kandpal, Suraj <suraj.kandpal@intel.com>; Nautiyal, Ankit K
> <ankit.k.nautiyal@intel.com>
> Subject: [PATCH v8 09/14] drm/i915/display: Program Wa_14021768792 for
> linkm/n ratio > 10
> 
> Add a bypass_m_n_ratio_limit member to struct intel_link_m_n to track
> whether Wa_14021768792 is used to bypass the Link M/N ratio limit, and
> program the workaround when it is set.
> CHICKEN_TRANS and HDMI_EMP_DATA are programmed before LINK_N, since
> writing LINK_N arms the double buffered update of the M/N registers, and all
> of the programming has to be done before the transcoder is enabled.
> Both are also explicitly cleared when the mechanism is not in use, so that
> state cannot leak from a previous modeset.
> 
> Bspec: 49266
> Co-developed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c  | 35 ++++++++++++++++++-
>  .../drm/i915/display/intel_display_types.h    |  2 ++
>  2 files changed, 36 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 461b81bf8341..b48f12cc615f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -2715,6 +2715,15 @@ void intel_zero_m_n(struct intel_link_m_n *m_n)
>  	m_n->tu = 1;
>  }
> 
> +static u8 bmg_get_link_n_ext(const struct intel_link_m_n *m_n) {
> +	if (!m_n->link_n)
> +		return 0;
> +
> +	return PIPE_LINK_N1_EXT_INT(m_n->link_m / m_n->link_n) |
> +		PIPE_LINK_N1_EXT_CEIL(DIV_ROUND_UP(m_n->link_m, m_n-
> >link_n)); }
> +
>  void intel_set_m_n(struct intel_display *display,
>  		   const struct intel_link_m_n *m_n,
>  		   intel_reg_t data_m_reg, intel_reg_t data_n_reg, @@ -2726,7
> +2735,9 @@ void intel_set_m_n(struct intel_display *display,
>  	intel_de_write(display, data_n_reg, m_n->data_n);
>  	intel_de_write(display, link_m_reg, m_n->link_m);
> 
> -	if (DISPLAY_VER(display) >= 14)
> +	if (DISPLAY_VER(display) >= 14 && m_n->bypass_m_n_ratio_limit)
> +		link_n |=
> PIPE_LINK_N1_EXTENDED(bmg_get_link_n_ext(m_n));
> +	else if (DISPLAY_VER(display) >= 14)
>  		link_n &= ~PIPE_LINK_N1_EXTENDED_MASK;
>  	else
>  		link_n &= DATA_LINK_M_N_MASK;
> @@ -2747,6 +2758,26 @@ bool intel_cpu_transcoder_has_m2_n2(struct
> intel_display *display,
>  	return IS_DISPLAY_VER(display, 5, 7) || display->platform.cherryview;
> }
> 
> +static void bmg_enhanced_tgdda_write(struct intel_crtc *crtc,
> +				     enum transcoder transcoder,
> +				     const struct intel_link_m_n *m_n) {
> +	struct intel_display *display = to_intel_display(crtc);
> +	bool enable = m_n->bypass_m_n_ratio_limit && m_n->link_n;
> +	u32 link_m_frac = enable ? m_n->link_m % m_n->link_n : 0;
> +
> +	if (!intel_display_wa(display, INTEL_DISPLAY_WA_14021768792))
> +		return;
> +
> +	intel_de_rmw(display, HDMI_EMP_DATA(display, transcoder),
> +		     HDMI_EMP_DATA_LINK_M_FRAC_MASK,
> +		     REG_FIELD_PREP(HDMI_EMP_DATA_LINK_M_FRAC_MASK,
> link_m_frac));
> +
> +	intel_de_rmw(display, CHICKEN_TRANS(display, transcoder),
> +		     DP_ENHANCED_TGDDA_ENABLE,
> +		     enable ? DP_ENHANCED_TGDDA_ENABLE : 0); }
> +
>  void intel_cpu_transcoder_set_m1_n1(struct intel_crtc *crtc,
>  				    enum transcoder transcoder,
>  				    const struct intel_link_m_n *m_n) @@ -
> 2754,6 +2785,8 @@ void intel_cpu_transcoder_set_m1_n1(struct intel_crtc
> *crtc,
>  	struct intel_display *display = to_intel_display(crtc);
>  	enum pipe pipe = crtc->pipe;
> 
> +	bmg_enhanced_tgdda_write(crtc, transcoder, m_n);
> +
>  	if (DISPLAY_VER(display) >= 5)
>  		intel_set_m_n(display, m_n,
>  			      PIPE_DATA_M1(display, transcoder), diff --git
> a/drivers/gpu/drm/i915/display/intel_display_types.h
> b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 8f9fb2603638..d0748837ce97 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -985,6 +985,8 @@ struct intel_link_m_n {
>  	u32 data_n;
>  	u32 link_m;
>  	u32 link_n;
> +	/* Wa_14021768792 for linkm/n ratio > 10 */
> +	bool bypass_m_n_ratio_limit;

LGTM
Reviewed-by: Mitul Golani<mitulkumar.ajitkumar.golani@intel.com>

>  };
> 
>  struct intel_csc_matrix {
> --
> 2.34.1


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

* ✓ CI.KUnit: success for Implement Wa_14021768792 to bypass m_n ratio limit (rev12)
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (13 preceding siblings ...)
  2026-10-23  5:02 ` [PATCH v8 14/14] drm/i915/dp: Bump the max Link M/N ratio to 22 for DISPLAY_VER >= 35 Suraj Kandpal
@ 2026-10-23  5:11 ` Patchwork
  2026-10-23  5:55 ` ✓ Xe.CI.BAT: " Patchwork
  2026-10-23  7:48 ` ✓ Xe.CI.FULL: " Patchwork
  16 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2026-10-23  5:11 UTC (permalink / raw)
  To: Suraj Kandpal; +Cc: intel-xe

== Series Details ==

Series: Implement Wa_14021768792 to bypass m_n ratio limit (rev12)
URL   : https://patchwork.freedesktop.org/series/138256/
State : success

== Summary ==

+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[05:09:43] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[05:09:48] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[05:10:07] Starting KUnit Kernel (1/1)...
[05:10:07] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[05:10:07] ================= gpu_buddy (14 subtests) ==================
[05:10:07] [PASSED] gpu_test_buddy_alloc_limit
[05:10:07] [PASSED] gpu_test_buddy_alloc_optimistic
[05:10:07] [PASSED] gpu_test_buddy_alloc_pessimistic
[05:10:07] [PASSED] gpu_test_buddy_alloc_pathological
[05:10:07] [PASSED] gpu_test_buddy_alloc_contiguous
[05:10:07] [PASSED] gpu_test_buddy_alloc_clear
[05:10:07] [PASSED] gpu_test_buddy_alloc_range
[05:10:08] [PASSED] gpu_test_buddy_alloc_range_bias
[05:10:09] [PASSED] gpu_test_buddy_fragmentation_performance
[05:10:09] [PASSED] gpu_test_buddy_dirty_tracker_performance
[05:10:09] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[05:10:09] [PASSED] gpu_test_buddy_offset_aligned_allocation
[05:10:09] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[05:10:09] [PASSED] gpu_test_buddy_addr_to_block
[05:10:09] ==================== [PASSED] gpu_buddy ====================
[05:10:09] ============================================================
[05:10:09] Testing complete. Ran 14 tests: passed: 14
[05:10:09] Elapsed time: 26.188s total, 4.507s configuring, 19.813s building, 1.822s running

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[05:10:09] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[05:10:11] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[05:10:50] Starting KUnit Kernel (1/1)...
[05:10:50] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[05:10:50] ================== guc_buf (11 subtests) ===================
[05:10:50] [PASSED] test_smallest
[05:10:50] [PASSED] test_largest
[05:10:50] [PASSED] test_granular
[05:10:50] [PASSED] test_unique
[05:10:50] [PASSED] test_overlap
[05:10:50] [PASSED] test_reusable
[05:10:50] [PASSED] test_too_big
[05:10:50] [PASSED] test_flush
[05:10:50] [PASSED] test_lookup
[05:10:50] [PASSED] test_data
[05:10:50] [PASSED] test_class
[05:10:50] ===================== [PASSED] guc_buf =====================
[05:10:50] =================== guc_dbm (7 subtests) ===================
[05:10:50] [PASSED] test_empty
[05:10:50] [PASSED] test_default
[05:10:50] ======================== test_size  ========================
[05:10:50] [PASSED] 4
[05:10:50] [PASSED] 8
[05:10:50] [PASSED] 32
[05:10:50] [PASSED] 256
[05:10:50] ==================== [PASSED] test_size ====================
[05:10:50] ======================= test_reuse  ========================
[05:10:50] [PASSED] 4
[05:10:50] [PASSED] 8
[05:10:50] [PASSED] 32
[05:10:50] [PASSED] 256
[05:10:50] =================== [PASSED] test_reuse ====================
[05:10:50] =================== test_range_overlap  ====================
[05:10:50] [PASSED] 4
[05:10:50] [PASSED] 8
[05:10:50] [PASSED] 32
[05:10:50] [PASSED] 256
[05:10:50] =============== [PASSED] test_range_overlap ================
[05:10:50] =================== test_range_compact  ====================
[05:10:50] [PASSED] 4
[05:10:50] [PASSED] 8
[05:10:50] [PASSED] 32
[05:10:50] [PASSED] 256
[05:10:50] =============== [PASSED] test_range_compact ================
[05:10:50] ==================== test_range_spare  =====================
[05:10:50] [PASSED] 4
[05:10:50] [PASSED] 8
[05:10:50] [PASSED] 32
[05:10:50] [PASSED] 256
[05:10:50] ================ [PASSED] test_range_spare =================
[05:10:50] ===================== [PASSED] guc_dbm =====================
[05:10:50] ================== guc_idm (22 subtests) ===================
[05:10:50] [PASSED] bad_init
[05:10:50] [PASSED] no_init
[05:10:50] [PASSED] init_fini
[05:10:50] [PASSED] check_init_small
[05:10:50] [PASSED] check_init_shared
[05:10:50] [PASSED] check_used
[05:10:50] [PASSED] check_quota
[05:10:50] [PASSED] check_all
[05:10:50] [PASSED] check_limits
[05:10:50] [PASSED] check_overlap
[05:10:50] [PASSED] check_overlap_alloc
[05:10:50] [PASSED] check_overlap_release
[05:10:50] [PASSED] check_overlap_partial_init
[05:10:50] [PASSED] check_overlap_partial_shared_range_blocking
[05:10:50] [PASSED] check_used_usable
[05:10:50] [PASSED] check_used_shareable
[05:10:50] [PASSED] check_used_mixed
[05:10:50] [PASSED] check_release_usable_range
[05:10:50] [PASSED] check_release_shareable_range
[05:10:50] [PASSED] check_split_boundaries
[05:10:50] [PASSED] check_shareable_spare
[05:10:50] [PASSED] check_shareable_spare_fragmented_tail
[05:10:50] ===================== [PASSED] guc_idm =====================
[05:10:50] ============== guc_klv_helpers (13 subtests) ===============
[05:10:50] [PASSED] test_count
[05:10:50] [PASSED] test_encode_u32
[05:10:50] [PASSED] test_encode_u64
[05:10:50] [PASSED] test_encode_string
[05:10:50] [PASSED] test_encode_object_raw
[05:10:50] [PASSED] test_encode_object_klv
[05:10:50] [PASSED] test_encode_object_nested
[05:10:50] [PASSED] test_encode_object_basic
[05:10:50] ===================== test_decode_u16  =====================
[05:10:50] [PASSED] empty
[05:10:50] [PASSED] valid
[05:10:50] [PASSED] max
[05:10:50] [PASSED] big
[05:10:50] [PASSED] long
[05:10:50] ================= [PASSED] test_decode_u16 =================
[05:10:50] ===================== test_decode_u32  =====================
[05:10:50] [PASSED] empty
[05:10:50] [PASSED] valid
[05:10:50] [PASSED] max
[05:10:50] [PASSED] long
[05:10:50] ================= [PASSED] test_decode_u32 =================
[05:10:50] ===================== test_decode_u64  =====================
[05:10:50] [PASSED] empty
[05:10:50] [PASSED] short
[05:10:50] [PASSED] valid
[05:10:50] [PASSED] max
[05:10:50] [PASSED] long
[05:10:50] ================= [PASSED] test_decode_u64 =================
[05:10:50] ===================== test_decode_str  =====================
[05:10:50] [PASSED] empty
[05:10:50] [PASSED] one
[05:10:50] [PASSED] one_trash
[05:10:50] [PASSED] two
[05:10:50] [PASSED] two_trash
[05:10:50] [PASSED] three
[05:10:50] [PASSED] dword
[05:10:50] [PASSED] four
[05:10:50] [PASSED] five
[05:10:50] [PASSED] six
[05:10:50] [PASSED] seven
[05:10:50] [PASSED] qword
[05:10:50] ================= [PASSED] test_decode_str =================
[05:10:50] [PASSED] test_print
[05:10:50] ================= [PASSED] guc_klv_helpers =================
[05:10:50] =================== xe_log (4 subtests) ====================
[05:10:50] [PASSED] demo_cper
[05:10:50] [PASSED] demo_dmesg
[05:10:50] ======================= test_dmesg  ========================
[05:10:50] [PASSED] test_fatal
[05:10:50] [PASSED] test_fatal_tile
[05:10:50] [PASSED] test_fatal_gt
[05:10:50] [PASSED] test_fatal_comp
[05:10:50] [PASSED] test_fatal_comp_tile
[05:10:50] [PASSED] test_fatal_comp_gt
[05:10:50] [PASSED] test_fatal_all
[05:10:50] [PASSED] test_recoverable
[05:10:50] [PASSED] test_recoverable_tile
[05:10:50] [PASSED] test_recoverable_gt
[05:10:50] [PASSED] test_recoverable_comp
[05:10:50] [PASSED] test_recoverable_comp_tile
[05:10:50] [PASSED] test_recoverable_comp_gt
[05:10:50] [PASSED] test_recoverable_all
[05:10:50] [PASSED] test_info
[05:10:50] [PASSED] test_info_tile
[05:10:50] [PASSED] test_info_gt
[05:10:50] [PASSED] test_info_err
[05:10:50] [PASSED] test_info_comp
[05:10:50] [PASSED] test_info_comp_tile
[05:10:50] [PASSED] test_info_comp_gt
[05:10:50] [PASSED] test_info_all
[05:10:50] [PASSED] test_hw_fatal
[05:10:50] [PASSED] test_hw_recoverable
[05:10:50] [PASSED] test_hw_corrected
[05:10:50] [PASSED] test_hw_informational
[05:10:50] =================== [PASSED] test_dmesg ====================
[05:10:50] ====================== test_invalid  =======================
[05:10:50] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[05:10:50] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[05:10:50] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[05:10:50] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[05:10:50] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[05:10:50] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[05:10:50] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[05:10:50] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[05:10:50] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[05:10:50] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[05:10:50] ================== [SKIPPED] test_invalid ==================
[05:10:50] ===================== [PASSED] xe_log ======================
[05:10:50] ================== no_relay (3 subtests) ===================
[05:10:50] [PASSED] xe_drops_guc2pf_if_not_ready
[05:10:50] [PASSED] xe_drops_guc2vf_if_not_ready
[05:10:50] [PASSED] xe_rejects_send_if_not_ready
[05:10:50] ==================== [PASSED] no_relay =====================
[05:10:50] ================== pf_relay (14 subtests) ==================
[05:10:50] [PASSED] pf_rejects_guc2pf_too_short
[05:10:50] [PASSED] pf_rejects_guc2pf_too_long
[05:10:50] [PASSED] pf_rejects_guc2pf_no_payload
[05:10:50] [PASSED] pf_fails_no_payload
[05:10:50] [PASSED] pf_fails_bad_origin
[05:10:50] [PASSED] pf_fails_bad_type
[05:10:50] [PASSED] pf_txn_reports_error
[05:10:50] [PASSED] pf_txn_sends_pf2guc
[05:10:50] [PASSED] pf_sends_pf2guc
[05:10:50] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[05:10:50] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[05:10:50] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[05:10:50] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[05:10:50] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[05:10:50] ==================== [PASSED] pf_relay =====================
[05:10:50] ================== vf_relay (3 subtests) ===================
[05:10:50] [PASSED] vf_rejects_guc2vf_too_short
[05:10:50] [PASSED] vf_rejects_guc2vf_too_long
[05:10:50] [PASSED] vf_rejects_guc2vf_no_payload
[05:10:50] ==================== [PASSED] vf_relay =====================
[05:10:50] ================ pf_gt_config (9 subtests) =================
[05:10:50] [PASSED] fair_contexts_1vf
[05:10:50] [PASSED] fair_doorbells_1vf
[05:10:50] [PASSED] fair_ggtt_1vf
[05:10:50] ====================== fair_vram_1vf  ======================
[05:10:50] [PASSED] 3.50 GiB
[05:10:50] [PASSED] 11.5 GiB
[05:10:50] [PASSED] 15.5 GiB
[05:10:50] [PASSED] 31.5 GiB
[05:10:50] [PASSED] 63.5 GiB
[05:10:50] [PASSED] 1.91 GiB
[05:10:50] ================== [PASSED] fair_vram_1vf ==================
[05:10:50] ================ fair_vram_1vf_admin_only  =================
[05:10:50] [PASSED] 3.50 GiB
[05:10:50] [PASSED] 11.5 GiB
[05:10:50] [PASSED] 15.5 GiB
[05:10:50] [PASSED] 31.5 GiB
[05:10:50] [PASSED] 63.5 GiB
[05:10:50] [PASSED] 1.91 GiB
[05:10:50] ============ [PASSED] fair_vram_1vf_admin_only =============
[05:10:50] ====================== fair_contexts  ======================
[05:10:50] [PASSED] 1 VF
[05:10:50] [PASSED] 2 VFs
[05:10:50] [PASSED] 3 VFs
[05:10:50] [PASSED] 4 VFs
[05:10:50] [PASSED] 5 VFs
[05:10:50] [PASSED] 6 VFs
[05:10:50] [PASSED] 7 VFs
[05:10:50] [PASSED] 8 VFs
[05:10:50] [PASSED] 9 VFs
[05:10:50] [PASSED] 10 VFs
[05:10:50] [PASSED] 11 VFs
[05:10:50] [PASSED] 12 VFs
[05:10:50] [PASSED] 13 VFs
[05:10:50] [PASSED] 14 VFs
[05:10:50] [PASSED] 15 VFs
[05:10:50] [PASSED] 16 VFs
[05:10:50] [PASSED] 17 VFs
[05:10:50] [PASSED] 18 VFs
[05:10:50] [PASSED] 19 VFs
[05:10:50] [PASSED] 20 VFs
[05:10:50] [PASSED] 21 VFs
[05:10:50] [PASSED] 22 VFs
[05:10:50] [PASSED] 23 VFs
[05:10:50] [PASSED] 24 VFs
[05:10:50] [PASSED] 25 VFs
[05:10:50] [PASSED] 26 VFs
[05:10:50] [PASSED] 27 VFs
[05:10:50] [PASSED] 28 VFs
[05:10:50] [PASSED] 29 VFs
[05:10:50] [PASSED] 30 VFs
[05:10:50] [PASSED] 31 VFs
[05:10:50] [PASSED] 32 VFs
[05:10:50] [PASSED] 33 VFs
[05:10:50] [PASSED] 34 VFs
[05:10:50] [PASSED] 35 VFs
[05:10:50] [PASSED] 36 VFs
[05:10:50] [PASSED] 37 VFs
[05:10:50] [PASSED] 38 VFs
[05:10:50] [PASSED] 39 VFs
[05:10:50] [PASSED] 40 VFs
[05:10:50] [PASSED] 41 VFs
[05:10:50] [PASSED] 42 VFs
[05:10:50] [PASSED] 43 VFs
[05:10:50] [PASSED] 44 VFs
[05:10:50] [PASSED] 45 VFs
[05:10:50] [PASSED] 46 VFs
[05:10:50] [PASSED] 47 VFs
[05:10:50] [PASSED] 48 VFs
[05:10:50] [PASSED] 49 VFs
[05:10:50] [PASSED] 50 VFs
[05:10:50] [PASSED] 51 VFs
[05:10:50] [PASSED] 52 VFs
[05:10:50] [PASSED] 53 VFs
[05:10:50] [PASSED] 54 VFs
[05:10:50] [PASSED] 55 VFs
[05:10:50] [PASSED] 56 VFs
[05:10:50] [PASSED] 57 VFs
[05:10:50] [PASSED] 58 VFs
[05:10:50] [PASSED] 59 VFs
[05:10:50] [PASSED] 60 VFs
[05:10:50] [PASSED] 61 VFs
[05:10:50] [PASSED] 62 VFs
[05:10:50] [PASSED] 63 VFs
[05:10:50] ================== [PASSED] fair_contexts ==================
[05:10:50] ===================== fair_doorbells  ======================
[05:10:50] [PASSED] 1 VF
[05:10:50] [PASSED] 2 VFs
[05:10:50] [PASSED] 3 VFs
[05:10:50] [PASSED] 4 VFs
[05:10:50] [PASSED] 5 VFs
[05:10:50] [PASSED] 6 VFs
[05:10:50] [PASSED] 7 VFs
[05:10:50] [PASSED] 8 VFs
[05:10:50] [PASSED] 9 VFs
[05:10:50] [PASSED] 10 VFs
[05:10:50] [PASSED] 11 VFs
[05:10:50] [PASSED] 12 VFs
[05:10:50] [PASSED] 13 VFs
[05:10:50] [PASSED] 14 VFs
[05:10:50] [PASSED] 15 VFs
[05:10:50] [PASSED] 16 VFs
[05:10:50] [PASSED] 17 VFs
[05:10:50] [PASSED] 18 VFs
[05:10:50] [PASSED] 19 VFs
[05:10:50] [PASSED] 20 VFs
[05:10:50] [PASSED] 21 VFs
[05:10:50] [PASSED] 22 VFs
[05:10:50] [PASSED] 23 VFs
[05:10:50] [PASSED] 24 VFs
[05:10:50] [PASSED] 25 VFs
[05:10:50] [PASSED] 26 VFs
[05:10:50] [PASSED] 27 VFs
[05:10:50] [PASSED] 28 VFs
[05:10:50] [PASSED] 29 VFs
[05:10:50] [PASSED] 30 VFs
[05:10:50] [PASSED] 31 VFs
[05:10:50] [PASSED] 32 VFs
[05:10:50] [PASSED] 33 VFs
[05:10:50] [PASSED] 34 VFs
[05:10:50] [PASSED] 35 VFs
[05:10:50] [PASSED] 36 VFs
[05:10:50] [PASSED] 37 VFs
[05:10:50] [PASSED] 38 VFs
[05:10:50] [PASSED] 39 VFs
[05:10:50] [PASSED] 40 VFs
[05:10:50] [PASSED] 41 VFs
[05:10:50] [PASSED] 42 VFs
[05:10:50] [PASSED] 43 VFs
[05:10:50] [PASSED] 44 VFs
[05:10:50] [PASSED] 45 VFs
[05:10:50] [PASSED] 46 VFs
[05:10:50] [PASSED] 47 VFs
[05:10:50] [PASSED] 48 VFs
[05:10:50] [PASSED] 49 VFs
[05:10:50] [PASSED] 50 VFs
[05:10:50] [PASSED] 51 VFs
[05:10:50] [PASSED] 52 VFs
[05:10:50] [PASSED] 53 VFs
[05:10:50] [PASSED] 54 VFs
[05:10:50] [PASSED] 55 VFs
[05:10:50] [PASSED] 56 VFs
[05:10:50] [PASSED] 57 VFs
[05:10:50] [PASSED] 58 VFs
[05:10:50] [PASSED] 59 VFs
[05:10:50] [PASSED] 60 VFs
[05:10:50] [PASSED] 61 VFs
[05:10:50] [PASSED] 62 VFs
[05:10:50] [PASSED] 63 VFs
[05:10:50] ================= [PASSED] fair_doorbells ==================
[05:10:50] ======================== fair_ggtt  ========================
[05:10:50] [PASSED] 1 VF
[05:10:50] [PASSED] 2 VFs
[05:10:50] [PASSED] 3 VFs
[05:10:50] [PASSED] 4 VFs
[05:10:50] [PASSED] 5 VFs
[05:10:50] [PASSED] 6 VFs
[05:10:50] [PASSED] 7 VFs
[05:10:50] [PASSED] 8 VFs
[05:10:50] [PASSED] 9 VFs
[05:10:50] [PASSED] 10 VFs
[05:10:50] [PASSED] 11 VFs
[05:10:50] [PASSED] 12 VFs
[05:10:50] [PASSED] 13 VFs
[05:10:50] [PASSED] 14 VFs
[05:10:50] [PASSED] 15 VFs
[05:10:50] [PASSED] 16 VFs
[05:10:50] [PASSED] 17 VFs
[05:10:50] [PASSED] 18 VFs
[05:10:50] [PASSED] 19 VFs
[05:10:50] [PASSED] 20 VFs
[05:10:50] [PASSED] 21 VFs
[05:10:50] [PASSED] 22 VFs
[05:10:50] [PASSED] 23 VFs
[05:10:50] [PASSED] 24 VFs
[05:10:50] [PASSED] 25 VFs
[05:10:50] [PASSED] 26 VFs
[05:10:50] [PASSED] 27 VFs
[05:10:50] [PASSED] 28 VFs
[05:10:50] [PASSED] 29 VFs
[05:10:50] [PASSED] 30 VFs
[05:10:50] [PASSED] 31 VFs
[05:10:50] [PASSED] 32 VFs
[05:10:50] [PASSED] 33 VFs
[05:10:50] [PASSED] 34 VFs
[05:10:50] [PASSED] 35 VFs
[05:10:50] [PASSED] 36 VFs
[05:10:50] [PASSED] 37 VFs
[05:10:50] [PASSED] 38 VFs
[05:10:50] [PASSED] 39 VFs
[05:10:50] [PASSED] 40 VFs
[05:10:50] [PASSED] 41 VFs
[05:10:50] [PASSED] 42 VFs
[05:10:50] [PASSED] 43 VFs
[05:10:50] [PASSED] 44 VFs
[05:10:50] [PASSED] 45 VFs
[05:10:50] [PASSED] 46 VFs
[05:10:50] [PASSED] 47 VFs
[05:10:50] [PASSED] 48 VFs
[05:10:50] [PASSED] 49 VFs
[05:10:50] [PASSED] 50 VFs
[05:10:50] [PASSED] 51 VFs
[05:10:50] [PASSED] 52 VFs
[05:10:50] [PASSED] 53 VFs
[05:10:50] [PASSED] 54 VFs
[05:10:50] [PASSED] 55 VFs
[05:10:50] [PASSED] 56 VFs
[05:10:50] [PASSED] 57 VFs
[05:10:50] [PASSED] 58 VFs
[05:10:50] [PASSED] 59 VFs
[05:10:50] [PASSED] 60 VFs
[05:10:50] [PASSED] 61 VFs
[05:10:50] [PASSED] 62 VFs
[05:10:50] [PASSED] 63 VFs
[05:10:50] ==================== [PASSED] fair_ggtt ====================
[05:10:50] ======================== fair_vram  ========================
[05:10:50] [PASSED] 1 VF
[05:10:50] [PASSED] 2 VFs
[05:10:50] [PASSED] 3 VFs
[05:10:50] [PASSED] 4 VFs
[05:10:50] [PASSED] 5 VFs
[05:10:50] [PASSED] 6 VFs
[05:10:50] [PASSED] 7 VFs
[05:10:50] [PASSED] 8 VFs
[05:10:50] [PASSED] 9 VFs
[05:10:50] [PASSED] 10 VFs
[05:10:50] [PASSED] 11 VFs
[05:10:50] [PASSED] 12 VFs
[05:10:50] [PASSED] 13 VFs
[05:10:50] [PASSED] 14 VFs
[05:10:50] [PASSED] 15 VFs
[05:10:50] [PASSED] 16 VFs
[05:10:50] [PASSED] 17 VFs
[05:10:50] [PASSED] 18 VFs
[05:10:50] [PASSED] 19 VFs
[05:10:50] [PASSED] 20 VFs
[05:10:50] [PASSED] 21 VFs
[05:10:50] [PASSED] 22 VFs
[05:10:50] [PASSED] 23 VFs
[05:10:50] [PASSED] 24 VFs
[05:10:50] [PASSED] 25 VFs
[05:10:50] [PASSED] 26 VFs
[05:10:50] [PASSED] 27 VFs
[05:10:50] [PASSED] 28 VFs
[05:10:50] [PASSED] 29 VFs
[05:10:50] [PASSED] 30 VFs
[05:10:50] [PASSED] 31 VFs
[05:10:50] [PASSED] 32 VFs
[05:10:50] [PASSED] 33 VFs
[05:10:50] [PASSED] 34 VFs
[05:10:50] [PASSED] 35 VFs
[05:10:50] [PASSED] 36 VFs
[05:10:50] [PASSED] 37 VFs
[05:10:50] [PASSED] 38 VFs
[05:10:50] [PASSED] 39 VFs
[05:10:50] [PASSED] 40 VFs
[05:10:50] [PASSED] 41 VFs
[05:10:50] [PASSED] 42 VFs
[05:10:50] [PASSED] 43 VFs
[05:10:50] [PASSED] 44 VFs
[05:10:50] [PASSED] 45 VFs
[05:10:50] [PASSED] 46 VFs
[05:10:50] [PASSED] 47 VFs
[05:10:50] [PASSED] 48 VFs
[05:10:50] [PASSED] 49 VFs
[05:10:50] [PASSED] 50 VFs
[05:10:50] [PASSED] 51 VFs
[05:10:50] [PASSED] 52 VFs
[05:10:50] [PASSED] 53 VFs
[05:10:50] [PASSED] 54 VFs
[05:10:50] [PASSED] 55 VFs
[05:10:50] [PASSED] 56 VFs
[05:10:50] [PASSED] 57 VFs
[05:10:50] [PASSED] 58 VFs
[05:10:50] [PASSED] 59 VFs
[05:10:50] [PASSED] 60 VFs
[05:10:50] [PASSED] 61 VFs
[05:10:50] [PASSED] 62 VFs
[05:10:50] [PASSED] 63 VFs
[05:10:50] ==================== [PASSED] fair_vram ====================
[05:10:50] ================== [PASSED] pf_gt_config ===================
[05:10:50] ===================== lmtt (1 subtest) =====================
[05:10:50] ======================== test_ops  =========================
[05:10:50] [PASSED] 2-level
[05:10:50] [PASSED] multi-level
[05:10:50] ==================== [PASSED] test_ops =====================
[05:10:50] ====================== [PASSED] lmtt =======================
[05:10:50] ================= sriov_packet (1 subtest) =================
[05:10:50] [PASSED] test_descriptor_init
[05:10:50] ================== [PASSED] sriov_packet ===================
[05:10:50] ================= pf_service (11 subtests) =================
[05:10:50] [PASSED] pf_negotiate_any
[05:10:50] [PASSED] pf_negotiate_base_match
[05:10:50] [PASSED] pf_negotiate_base_newer
[05:10:50] [PASSED] pf_negotiate_base_next
[05:10:50] [SKIPPED] pf_negotiate_base_older (no older minor)
[05:10:50] [PASSED] pf_negotiate_base_prev
[05:10:50] [PASSED] pf_negotiate_latest_match
[05:10:50] [PASSED] pf_negotiate_latest_newer
[05:10:50] [PASSED] pf_negotiate_latest_next
[05:10:50] [SKIPPED] pf_negotiate_latest_older (no older minor)
[05:10:50] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[05:10:50] =================== [PASSED] pf_service ====================
[05:10:50] ================= xe_guc_g2g (2 subtests) ==================
[05:10:50] ============== xe_live_guc_g2g_kunit_default  ==============
[05:10:50] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[05:10:50] ============== xe_live_guc_g2g_kunit_allmem  ===============
[05:10:50] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[05:10:50] =================== [SKIPPED] xe_guc_g2g ===================
[05:10:50] =================== xe_mocs (2 subtests) ===================
[05:10:50] ================ xe_live_mocs_kernel_kunit  ================
[05:10:50] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[05:10:50] ================ xe_live_mocs_reset_kunit  =================
[05:10:50] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[05:10:50] ==================== [SKIPPED] xe_mocs =====================
[05:10:50] ================= xe_migrate (3 subtests) ==================
[05:10:50] ================= xe_migrate_sanity_kunit  =================
[05:10:50] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[05:10:50] ================== xe_validate_ccs_kunit  ==================
[05:10:50] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[05:10:50] ============= xe_migrate_access_memory_kunit  ==============
[05:10:50] ========= [SKIPPED] xe_migrate_access_memory_kunit =========
[05:10:50] =================== [SKIPPED] xe_migrate ===================
[05:10:50] ================== xe_dma_buf (1 subtest) ==================
[05:10:50] ==================== xe_dma_buf_kunit  =====================
[05:10:50] ================ [SKIPPED] xe_dma_buf_kunit ================
[05:10:50] =================== [SKIPPED] xe_dma_buf ===================
[05:10:50] ================= xe_bo_shrink (1 subtest) =================
[05:10:50] =================== xe_bo_shrink_kunit  ====================
[05:10:50] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[05:10:50] ================== [SKIPPED] xe_bo_shrink ==================
[05:10:50] ==================== xe_bo (2 subtests) ====================
[05:10:50] ================== xe_ccs_migrate_kunit  ===================
[05:10:50] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[05:10:50] ==================== xe_bo_evict_kunit  ====================
[05:10:50] =============== [SKIPPED] xe_bo_evict_kunit ================
[05:10:50] ===================== [SKIPPED] xe_bo ======================
[05:10:50] =================== xe_any (9 subtests) ====================
[05:10:50] [PASSED] test_to_xe
[05:10:50] [PASSED] test_to_dev
[05:10:50] [PASSED] test_to_pdev
[05:10:50] [PASSED] test_to_drm
[05:10:50] [PASSED] test_if_pdev
[05:10:50] [PASSED] test_if_xe
[05:10:50] [PASSED] test_if_tile
[05:10:50] [PASSED] test_if_gt
[05:10:50] [PASSED] test_to_id
[05:10:50] ===================== [PASSED] xe_any ======================
[05:10:50] ==================== args (13 subtests) ====================
[05:10:50] [PASSED] count_args_test
[05:10:50] [PASSED] call_args_example
[05:10:50] [PASSED] call_args_test
[05:10:50] [PASSED] drop_first_arg_example
[05:10:50] [PASSED] drop_first_arg_test
[05:10:50] [PASSED] first_arg_example
[05:10:50] [PASSED] first_arg_test
[05:10:50] [PASSED] last_arg_example
[05:10:50] [PASSED] last_arg_test
[05:10:50] [PASSED] pick_arg_example
[05:10:50] [PASSED] if_args_example
[05:10:50] [PASSED] if_args_test
[05:10:50] [PASSED] sep_comma_example
[05:10:50] ====================== [PASSED] args =======================
[05:10:50] =================== xe_pci (3 subtests) ====================
[05:10:50] ==================== check_graphics_ip  ====================
[05:10:50] [PASSED] 12.00 Xe_LP
[05:10:50] [PASSED] 12.10 Xe_LP+
[05:10:50] [PASSED] 12.55 Xe_HPG
[05:10:50] [PASSED] 12.60 Xe_HPC
[05:10:50] [PASSED] 12.70 Xe_LPG
[05:10:50] [PASSED] 12.71 Xe_LPG
[05:10:50] [PASSED] 12.74 Xe_LPG+
[05:10:50] [PASSED] 20.01 Xe2_HPG
[05:10:50] [PASSED] 20.02 Xe2_HPG
[05:10:50] [PASSED] 20.04 Xe2_LPG
[05:10:50] [PASSED] 30.00 Xe3_LPG
[05:10:50] [PASSED] 30.01 Xe3_LPG
[05:10:50] [PASSED] 30.03 Xe3_LPG
[05:10:50] [PASSED] 30.04 Xe3_LPG
[05:10:50] [PASSED] 30.05 Xe3_LPG
[05:10:50] [PASSED] 35.10 Xe3p_LPG
[05:10:50] [PASSED] 35.11 Xe3p_XPC
[05:10:50] ================ [PASSED] check_graphics_ip ================
[05:10:50] ===================== check_media_ip  ======================
[05:10:50] [PASSED] 12.00 Xe_M
[05:10:50] [PASSED] 12.55 Xe_HPM
[05:10:50] [PASSED] 13.00 Xe_LPM+
[05:10:50] [PASSED] 13.01 Xe2_HPM
[05:10:50] [PASSED] 20.00 Xe2_LPM
[05:10:50] [PASSED] 30.00 Xe3_LPM
[05:10:50] [PASSED] 30.02 Xe3_LPM
[05:10:50] [PASSED] 35.00 Xe3p_LPM
[05:10:50] [PASSED] 35.03 Xe3p_HPM
[05:10:50] ================= [PASSED] check_media_ip ==================
[05:10:50] =================== check_platform_desc  ===================
[05:10:50] [PASSED] 0x9A60 (TIGERLAKE)
[05:10:50] [PASSED] 0x9A68 (TIGERLAKE)
[05:10:50] [PASSED] 0x9A70 (TIGERLAKE)
[05:10:50] [PASSED] 0x9A40 (TIGERLAKE)
[05:10:50] [PASSED] 0x9A49 (TIGERLAKE)
[05:10:50] [PASSED] 0x9A59 (TIGERLAKE)
[05:10:50] [PASSED] 0x9A78 (TIGERLAKE)
[05:10:50] [PASSED] 0x9AC0 (TIGERLAKE)
[05:10:50] [PASSED] 0x9AC9 (TIGERLAKE)
[05:10:50] [PASSED] 0x9AD9 (TIGERLAKE)
[05:10:50] [PASSED] 0x9AF8 (TIGERLAKE)
[05:10:50] [PASSED] 0x4C80 (ROCKETLAKE)
[05:10:50] [PASSED] 0x4C8A (ROCKETLAKE)
[05:10:50] [PASSED] 0x4C8B (ROCKETLAKE)
[05:10:50] [PASSED] 0x4C8C (ROCKETLAKE)
[05:10:50] [PASSED] 0x4C90 (ROCKETLAKE)
[05:10:50] [PASSED] 0x4C9A (ROCKETLAKE)
[05:10:50] [PASSED] 0x4680 (ALDERLAKE_S)
[05:10:50] [PASSED] 0x4682 (ALDERLAKE_S)
[05:10:50] [PASSED] 0x4688 (ALDERLAKE_S)
[05:10:50] [PASSED] 0x468A (ALDERLAKE_S)
[05:10:50] [PASSED] 0x468B (ALDERLAKE_S)
[05:10:50] [PASSED] 0x4690 (ALDERLAKE_S)
[05:10:50] [PASSED] 0x4692 (ALDERLAKE_S)
[05:10:50] [PASSED] 0x4693 (ALDERLAKE_S)
[05:10:50] [PASSED] 0x46A0 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46A1 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46A2 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46A3 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46A6 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46A8 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46AA (ALDERLAKE_P)
[05:10:50] [PASSED] 0x462A (ALDERLAKE_P)
[05:10:50] [PASSED] 0x4626 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x4628 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46B0 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46B1 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46B2 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46B3 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46C0 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46C1 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46C2 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46C3 (ALDERLAKE_P)
[05:10:50] [PASSED] 0x46D0 (ALDERLAKE_N)
[05:10:50] [PASSED] 0x46D1 (ALDERLAKE_N)
[05:10:50] [PASSED] 0x46D2 (ALDERLAKE_N)
[05:10:50] [PASSED] 0x46D3 (ALDERLAKE_N)
[05:10:50] [PASSED] 0x46D4 (ALDERLAKE_N)
[05:10:50] [PASSED] 0xA721 (ALDERLAKE_P)
[05:10:50] [PASSED] 0xA7A1 (ALDERLAKE_P)
[05:10:50] [PASSED] 0xA7A9 (ALDERLAKE_P)
[05:10:50] [PASSED] 0xA7AC (ALDERLAKE_P)
[05:10:50] [PASSED] 0xA7AD (ALDERLAKE_P)
[05:10:50] [PASSED] 0xA720 (ALDERLAKE_P)
[05:10:50] [PASSED] 0xA7A0 (ALDERLAKE_P)
[05:10:50] [PASSED] 0xA7A8 (ALDERLAKE_P)
[05:10:50] [PASSED] 0xA7AA (ALDERLAKE_P)
[05:10:50] [PASSED] 0xA7AB (ALDERLAKE_P)
[05:10:50] [PASSED] 0xA780 (ALDERLAKE_S)
[05:10:50] [PASSED] 0xA781 (ALDERLAKE_S)
[05:10:50] [PASSED] 0xA782 (ALDERLAKE_S)
[05:10:50] [PASSED] 0xA783 (ALDERLAKE_S)
[05:10:50] [PASSED] 0xA788 (ALDERLAKE_S)
[05:10:50] [PASSED] 0xA789 (ALDERLAKE_S)
[05:10:50] [PASSED] 0xA78A (ALDERLAKE_S)
[05:10:50] [PASSED] 0xA78B (ALDERLAKE_S)
[05:10:50] [PASSED] 0x4905 (DG1)
[05:10:50] [PASSED] 0x4906 (DG1)
[05:10:50] [PASSED] 0x4907 (DG1)
[05:10:50] [PASSED] 0x4908 (DG1)
[05:10:50] [PASSED] 0x4909 (DG1)
[05:10:50] [PASSED] 0x56C0 (DG2)
[05:10:50] [PASSED] 0x56C2 (DG2)
[05:10:50] [PASSED] 0x56C1 (DG2)
[05:10:50] [PASSED] 0x7D51 (METEORLAKE)
[05:10:50] [PASSED] 0x7DD1 (METEORLAKE)
[05:10:50] [PASSED] 0x7D41 (METEORLAKE)
[05:10:50] [PASSED] 0x7D67 (METEORLAKE)
[05:10:50] [PASSED] 0xB640 (METEORLAKE)
[05:10:50] [PASSED] 0x56A0 (DG2)
[05:10:50] [PASSED] 0x56A1 (DG2)
[05:10:50] [PASSED] 0x56A2 (DG2)
[05:10:50] [PASSED] 0x56BE (DG2)
[05:10:50] [PASSED] 0x56BF (DG2)
[05:10:50] [PASSED] 0x5690 (DG2)
[05:10:50] [PASSED] 0x5691 (DG2)
[05:10:50] [PASSED] 0x5692 (DG2)
[05:10:50] [PASSED] 0x56A5 (DG2)
[05:10:50] [PASSED] 0x56A6 (DG2)
[05:10:50] [PASSED] 0x56B0 (DG2)
[05:10:50] [PASSED] 0x56B1 (DG2)
[05:10:50] [PASSED] 0x56BA (DG2)
[05:10:50] [PASSED] 0x56BB (DG2)
[05:10:50] [PASSED] 0x56BC (DG2)
[05:10:50] [PASSED] 0x56BD (DG2)
[05:10:50] [PASSED] 0x5693 (DG2)
[05:10:50] [PASSED] 0x5694 (DG2)
[05:10:50] [PASSED] 0x5695 (DG2)
[05:10:50] [PASSED] 0x56A3 (DG2)
[05:10:50] [PASSED] 0x56A4 (DG2)
[05:10:50] [PASSED] 0x56B2 (DG2)
[05:10:50] [PASSED] 0x56B3 (DG2)
[05:10:50] [PASSED] 0x5696 (DG2)
[05:10:50] [PASSED] 0x5697 (DG2)
[05:10:50] [PASSED] 0xB69 (PVC)
[05:10:50] [PASSED] 0xB6E (PVC)
[05:10:50] [PASSED] 0xBD4 (PVC)
[05:10:50] [PASSED] 0xBD5 (PVC)
[05:10:50] [PASSED] 0xBD6 (PVC)
[05:10:50] [PASSED] 0xBD7 (PVC)
[05:10:50] [PASSED] 0xBD8 (PVC)
[05:10:50] [PASSED] 0xBD9 (PVC)
[05:10:50] [PASSED] 0xBDA (PVC)
[05:10:50] [PASSED] 0xBDB (PVC)
[05:10:50] [PASSED] 0xBE0 (PVC)
[05:10:50] [PASSED] 0xBE1 (PVC)
[05:10:50] [PASSED] 0xBE5 (PVC)
[05:10:50] [PASSED] 0x7D40 (METEORLAKE)
[05:10:50] [PASSED] 0x7D45 (METEORLAKE)
[05:10:50] [PASSED] 0x7D55 (METEORLAKE)
[05:10:50] [PASSED] 0x7D60 (METEORLAKE)
[05:10:50] [PASSED] 0x7DD5 (METEORLAKE)
[05:10:50] [PASSED] 0x6420 (LUNARLAKE)
[05:10:50] [PASSED] 0x64A0 (LUNARLAKE)
[05:10:50] [PASSED] 0x64B0 (LUNARLAKE)
[05:10:50] [PASSED] 0xE202 (BATTLEMAGE)
[05:10:50] [PASSED] 0xE209 (BATTLEMAGE)
[05:10:50] [PASSED] 0xE20B (BATTLEMAGE)
[05:10:50] [PASSED] 0xE20C (BATTLEMAGE)
[05:10:50] [PASSED] 0xE20D (BATTLEMAGE)
[05:10:50] [PASSED] 0xE210 (BATTLEMAGE)
[05:10:50] [PASSED] 0xE211 (BATTLEMAGE)
[05:10:50] [PASSED] 0xE212 (BATTLEMAGE)
[05:10:50] [PASSED] 0xE216 (BATTLEMAGE)
[05:10:50] [PASSED] 0xE220 (BATTLEMAGE)
[05:10:50] [PASSED] 0xE221 (BATTLEMAGE)
[05:10:50] [PASSED] 0xE222 (BATTLEMAGE)
[05:10:50] [PASSED] 0xE223 (BATTLEMAGE)
[05:10:50] [PASSED] 0xB080 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB081 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB082 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB083 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB084 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB085 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB086 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB087 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB08F (PANTHERLAKE)
[05:10:50] [PASSED] 0xB090 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB0A0 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB0A1 (PANTHERLAKE)
[05:10:50] [PASSED] 0xB0B0 (PANTHERLAKE)
[05:10:50] [PASSED] 0xFD80 (PANTHERLAKE)
[05:10:50] [PASSED] 0xFD81 (PANTHERLAKE)
[05:10:50] [PASSED] 0xD740 (NOVALAKE_S)
[05:10:50] [PASSED] 0xD741 (NOVALAKE_S)
[05:10:50] [PASSED] 0xD742 (NOVALAKE_S)
[05:10:50] [PASSED] 0xD743 (NOVALAKE_S)
[05:10:50] [PASSED] 0xD745 (NOVALAKE_S)
[05:10:50] [PASSED] 0xD74A (NOVALAKE_S)
[05:10:50] [PASSED] 0xD74B (NOVALAKE_S)
[05:10:50] [PASSED] 0x674C (CRESCENTISLAND)
[05:10:50] [PASSED] 0x674D (CRESCENTISLAND)
[05:10:50] [PASSED] 0x674E (CRESCENTISLAND)
[05:10:50] [PASSED] 0x674F (CRESCENTISLAND)
[05:10:50] [PASSED] 0x6750 (CRESCENTISLAND)
[05:10:50] [PASSED] 0x6751 (CRESCENTISLAND)
[05:10:50] [PASSED] 0xD750 (NOVALAKE_P)
[05:10:50] [PASSED] 0xD751 (NOVALAKE_P)
[05:10:50] [PASSED] 0xD752 (NOVALAKE_P)
[05:10:50] [PASSED] 0xD753 (NOVALAKE_P)
[05:10:50] [PASSED] 0xD754 (NOVALAKE_P)
[05:10:50] [PASSED] 0xD755 (NOVALAKE_P)
[05:10:50] [PASSED] 0xD756 (NOVALAKE_P)
[05:10:50] [PASSED] 0xD757 (NOVALAKE_P)
[05:10:50] [PASSED] 0xD75F (NOVALAKE_P)
[05:10:50] =============== [PASSED] check_platform_desc ===============
[05:10:50] ===================== [PASSED] xe_pci ======================
[05:10:50] ============= xe_rtp_tables_test (5 subtests) ==============
[05:10:50] ================== xe_rtp_table_gt_test  ===================
[05:10:50] [PASSED] gt_was/14011060649
[05:10:50] [PASSED] gt_was/14011059788
[05:10:50] [PASSED] gt_was/14015795083
[05:10:50] [PASSED] gt_was/16021867713
[05:10:50] [PASSED] gt_was/14019449301
[05:10:50] [PASSED] gt_was/16028005424
[05:10:50] [PASSED] gt_was/14026578760
[05:10:50] [PASSED] gt_was/1409420604
[05:10:50] [PASSED] gt_was/1408615072
[05:10:50] [PASSED] gt_was/22010523718
[05:10:50] [PASSED] gt_was/14011006942
[05:10:50] [PASSED] gt_was/14014830051
[05:10:50] [PASSED] gt_was/18018781329
[05:10:50] [PASSED] gt_was/1509235366
[05:10:50] [PASSED] gt_was/18018781329
[05:10:50] [PASSED] gt_was/16016694945
[05:10:50] [PASSED] gt_was/14018575942
[05:10:50] [PASSED] gt_was/22016670082
[05:10:50] [PASSED] gt_was/22016670082
[05:10:50] [PASSED] gt_was/14017421178
[05:10:50] [PASSED] gt_was/16025250150
[05:10:50] [PASSED] gt_was/14021871409
[05:10:50] [PASSED] gt_was/16021865536
[05:10:50] [PASSED] gt_was/14021486841
[05:10:50] [PASSED] gt_was/14025160223
[05:10:50] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[05:10:50] [PASSED] gt_was/14025635424
[05:10:50] [PASSED] gt_was/16028005424
[05:10:50] ============== [PASSED] xe_rtp_table_gt_test ===============
[05:10:50] ================== xe_rtp_table_gt_test  ===================
[05:10:50] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[05:10:50] [PASSED] gt_tunings/Tuning: 32B Access Enable
[05:10:50] [PASSED] gt_tunings/Tuning: L3 cache
[05:10:50] [PASSED] gt_tunings/Tuning: L3 cache - media
[05:10:50] [PASSED] gt_tunings/Tuning: Compression Overfetch
[05:10:50] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[05:10:50] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[05:10:50] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[05:10:50] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[05:10:50] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[05:10:50] [PASSED] gt_tunings/Tuning: Stateless compression control
[05:10:50] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[05:10:50] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[05:10:50] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[05:10:50] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[05:10:50] [PASSED] gt_tunings/Tuning: Force All Non-Compressible Memory Reads to be 256B Overfetches
[05:10:50] ============== [PASSED] xe_rtp_table_gt_test ===============
[05:10:50] ================== xe_rtp_table_oob_test  ==================
[05:10:50] [PASSED] oob_was/1607983814
[05:10:50] [PASSED] oob_was/16010904313
[05:10:50] [PASSED] oob_was/18022495364
[05:10:50] [PASSED] oob_was/22012773006
[05:10:50] [PASSED] oob_was/14014475959
[05:10:50] [PASSED] oob_was/22011391025
[05:10:50] [PASSED] oob_was/22012727170
[05:10:50] [PASSED] oob_was/22012727685
[05:10:50] [PASSED] oob_was/22016596838
[05:10:50] [PASSED] oob_was/18020744125
[05:10:50] [PASSED] oob_was/1409600907
[05:10:50] [PASSED] oob_was/22014953428
[05:10:50] [PASSED] oob_was/16017236439
[05:10:50] [PASSED] oob_was/14019821291
[05:10:50] [PASSED] oob_was/14015076503
[05:10:50] [PASSED] oob_was/22016122933
[05:10:50] [PASSED] oob_was/14018913170
[05:10:50] [PASSED] oob_was/14018094691
[05:10:50] [PASSED] oob_was/18024947630
[05:10:50] [PASSED] oob_was/16022287689
[05:10:50] [PASSED] oob_was/13011645652
[05:10:50] [PASSED] oob_was/14022293748
[05:10:50] [PASSED] oob_was/22019794406
[05:10:50] [PASSED] oob_was/22019338487
[05:10:50] [PASSED] oob_was/16023588340
[05:10:50] [PASSED] oob_was/14019789679
[05:10:50] [PASSED] oob_was/14022866841
[05:10:50] [PASSED] oob_was/16021333562
[05:10:50] [PASSED] oob_was/14016712196
[05:10:50] [PASSED] oob_was/14015568240
[05:10:50] [PASSED] oob_was/18013179988
[05:10:50] [PASSED] oob_was/1508761755
[05:10:50] [PASSED] oob_was/16023105232
[05:10:50] [PASSED] oob_was/16026508708
[05:10:50] [PASSED] oob_was/14020001231
[05:10:50] [PASSED] oob_was/16023683509
[05:10:50] [PASSED] oob_was/14025515070
[05:10:50] [PASSED] oob_was/15015404425_disable
[05:10:50] [PASSED] oob_was/16026007364
[05:10:50] [PASSED] oob_was/14020316580
[05:10:50] [PASSED] oob_was/14025883347
[05:10:50] [PASSED] oob_was/16029380221
[05:10:50] [PASSED] oob_was/22022079272
[05:10:50] [PASSED] oob_was/16029897822
[05:10:50] [PASSED] oob_was/14027054324
[05:10:50] [PASSED] oob_was/14025941587
[05:10:50] [PASSED] oob_was/16030224309
[05:10:50] ============== [PASSED] xe_rtp_table_oob_test ==============
[05:10:50] ================ xe_rtp_table_dev_oob_test  ================
[05:10:50] [PASSED] device_oob_was/22010954014
[05:10:50] [PASSED] device_oob_was/15015404425
[05:10:50] [PASSED] device_oob_was/22019338487_display
[05:10:50] [PASSED] device_oob_was/14022085890
[05:10:50] [PASSED] device_oob_was/14026539277
[05:10:50] [PASSED] device_oob_was/14026633728
[05:10:50] [PASSED] device_oob_was/14026746987
[05:10:50] [PASSED] device_oob_was/14026779378
[05:10:50] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[05:10:50] ========== xe_rtp_table_missing_upper_bound_test  ==========
[05:10:50] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[05:10:50] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[05:10:50] [PASSED] register_whitelist/1806527549
[05:10:50] [PASSED] register_whitelist/allow_read_ctx_timestamp
[05:10:50] [PASSED] register_whitelist/allow_read_queue_timestamp
[05:10:50] [PASSED] register_whitelist/16014440446
[05:10:50] [PASSED] register_whitelist/16017236439
[05:10:50] [PASSED] register_whitelist/16020183090
[05:10:50] [PASSED] register_whitelist/14024997852
[05:10:50] [PASSED] register_whitelist/14024997852
[05:10:50] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[05:10:50] =============== [PASSED] xe_rtp_tables_test ================
[05:10:50] =================== xe_rtp (3 subtests) ====================
[05:10:50] =================== xe_rtp_rules_tests  ====================
[05:10:50] [PASSED] no
[05:10:50] [PASSED] yes
[05:10:50] [PASSED] no-and-no
[05:10:50] [PASSED] no-and-yes
[05:10:50] [PASSED] yes-and-no
[05:10:50] [PASSED] yes-and-yes
[05:10:50] [PASSED] no-or-no
[05:10:50] [PASSED] no-or-yes
[05:10:50] [PASSED] yes-or-no
[05:10:50] [PASSED] yes-or-yes
[05:10:50] [PASSED] no-yes-or-yes-no
[05:10:50] [PASSED] no-yes-or-yes-yes
[05:10:50] [PASSED] yes-yes-or-no-yes
[05:10:50] [PASSED] yes-yes-or-yes-yes
[05:10:50] [PASSED] no-no-or-yes-or-no
[05:10:50] [PASSED] or
[05:10:50] [PASSED] or-yes
[05:10:50] [PASSED] or-no
[05:10:50] [PASSED] yes-or
[05:10:50] [PASSED] no-or
[05:10:50] [PASSED] no-or-or-yes
[05:10:50] [PASSED] yes-or-or-no
[05:10:50] [PASSED] no-or-or-no
[05:10:50] [PASSED] missing-context-engine-class
[05:10:50] [PASSED] missing-context-engine-class-or-yes
[05:10:50] [PASSED] missing-context-engine-class-or-or-yes
[05:10:50] =============== [PASSED] xe_rtp_rules_tests ================
[05:10:50] =============== xe_rtp_process_to_sr_tests  ================
[05:10:50] [PASSED] coalesce-same-reg
[05:10:50] [PASSED] coalesce-same-reg-literal-and-func
[05:10:50] [PASSED] no-match-no-add
[05:10:50] [PASSED] two-regs-two-entries
[05:10:50] [PASSED] clr-one-set-other
[05:10:50] [PASSED] set-field
[05:10:50] [PASSED] conflict-duplicate
[05:10:50] [PASSED] conflict-not-disjoint
[05:10:50] [PASSED] conflict-not-disjoint-literal-and-func
[05:10:50] [PASSED] conflict-reg-type
[05:10:50] [PASSED] bad-mcr-reg-forced-to-regular
[05:10:50] [PASSED] bad-regular-reg-forced-to-mcr
[05:10:50] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[05:10:50] ================== xe_rtp_process_tests  ===================
[05:10:50] [PASSED] active1
[05:10:50] [PASSED] active2
[05:10:50] [PASSED] active-inactive
[05:10:50] [PASSED] inactive-active
[05:10:50] [PASSED] inactive-active-inactive
[05:10:50] [PASSED] inactive-inactive-inactive
[05:10:50] ============== [PASSED] xe_rtp_process_tests ===============
[05:10:50] ===================== [PASSED] xe_rtp ======================
[05:10:50] ==================== xe_wa (1 subtest) =====================
[05:10:50] ======================== xe_wa_gt  =========================
[05:10:50] [PASSED] TIGERLAKE B0
[05:10:50] [PASSED] DG1 A0
[05:10:50] [PASSED] DG1 B0
[05:10:50] [PASSED] ALDERLAKE_S A0
[05:10:50] [PASSED] ALDERLAKE_S B0
[05:10:50] [PASSED] ALDERLAKE_S C0
[05:10:50] [PASSED] ALDERLAKE_S D0
[05:10:50] [PASSED] ALDERLAKE_P A0
[05:10:50] [PASSED] ALDERLAKE_P B0
[05:10:50] [PASSED] ALDERLAKE_P C0
[05:10:50] [PASSED] ALDERLAKE_S RPLS D0
[05:10:50] [PASSED] ALDERLAKE_P RPLU E0
[05:10:50] [PASSED] DG2 G10 C0
[05:10:50] [PASSED] DG2 G11 B1
[05:10:50] [PASSED] DG2 G12 A1
[05:10:50] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[05:10:50] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[05:10:50] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[05:10:50] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[05:10:50] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[05:10:50] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[05:10:50] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[05:10:50] ==================== [PASSED] xe_wa_gt =====================
[05:10:50] ====================== [PASSED] xe_wa ======================
[05:10:50] ============================================================
[05:10:50] Testing complete. Ran 838 tests: passed: 809, skipped: 29
[05:10:51] Elapsed time: 41.141s total, 1.831s configuring, 38.544s building, 0.719s running

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[05:10:51] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[05:10:53] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[05:11:18] Starting KUnit Kernel (1/1)...
[05:11:18] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[05:11:18] ============ drm_test_pick_cmdline (2 subtests) ============
[05:11:18] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[05:11:18] =============== drm_test_pick_cmdline_named  ===============
[05:11:18] [PASSED] NTSC
[05:11:18] [PASSED] NTSC-J
[05:11:18] [PASSED] PAL
[05:11:18] [PASSED] PAL-M
[05:11:18] =========== [PASSED] drm_test_pick_cmdline_named ===========
[05:11:18] ============== [PASSED] drm_test_pick_cmdline ==============
[05:11:18] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[05:11:18] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[05:11:18] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[05:11:18] =========== drm_validate_clone_mode (2 subtests) ===========
[05:11:18] ============== drm_test_check_in_clone_mode  ===============
[05:11:18] [PASSED] in_clone_mode
[05:11:18] [PASSED] not_in_clone_mode
[05:11:18] ========== [PASSED] drm_test_check_in_clone_mode ===========
[05:11:18] =============== drm_test_check_valid_clones  ===============
[05:11:18] [PASSED] not_in_clone_mode
[05:11:18] [PASSED] valid_clone
[05:11:18] [PASSED] invalid_clone
[05:11:18] =========== [PASSED] drm_test_check_valid_clones ===========
[05:11:18] ============= [PASSED] drm_validate_clone_mode =============
[05:11:18] ============= drm_validate_modeset (1 subtest) =============
[05:11:18] [PASSED] drm_test_check_connector_changed_modeset
[05:11:18] ============== [PASSED] drm_validate_modeset ===============
[05:11:18] ====== drm_test_bridge_get_current_state (1 subtest) =======
[05:11:18] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[05:11:18] ======== [PASSED] drm_test_bridge_get_current_state ========
[05:11:18] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[05:11:18] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[05:11:18] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[05:11:18] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[05:11:18] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[05:11:18] ============== drm_bridge_alloc (2 subtests) ===============
[05:11:18] [PASSED] drm_test_drm_bridge_alloc_basic
[05:11:18] [PASSED] drm_test_drm_bridge_alloc_get_put
[05:11:18] ================ [PASSED] drm_bridge_alloc =================
[05:11:18] ============= drm_bridge_bus_fmt (5 subtests) ==============
[05:11:18] [PASSED] drm_test_bridge_rgb_yuv_rgb
[05:11:18] [PASSED] drm_test_bridge_must_convert_to_yuv444
[05:11:18] [PASSED] drm_test_bridge_hdmi_auto_rgb
[05:11:18] [PASSED] drm_test_bridge_auto_first
[05:11:18] [PASSED] drm_test_bridge_rgb_yuv_no_path
[05:11:18] =============== [PASSED] drm_bridge_bus_fmt ================
[05:11:18] ============= drm_cmdline_parser (40 subtests) =============
[05:11:18] [PASSED] drm_test_cmdline_force_d_only
[05:11:18] [PASSED] drm_test_cmdline_force_D_only_dvi
[05:11:18] [PASSED] drm_test_cmdline_force_D_only_hdmi
[05:11:18] [PASSED] drm_test_cmdline_force_D_only_not_digital
[05:11:18] [PASSED] drm_test_cmdline_force_e_only
[05:11:18] [PASSED] drm_test_cmdline_res
[05:11:18] [PASSED] drm_test_cmdline_res_vesa
[05:11:18] [PASSED] drm_test_cmdline_res_vesa_rblank
[05:11:18] [PASSED] drm_test_cmdline_res_rblank
[05:11:18] [PASSED] drm_test_cmdline_res_bpp
[05:11:18] [PASSED] drm_test_cmdline_res_refresh
[05:11:18] [PASSED] drm_test_cmdline_res_bpp_refresh
[05:11:18] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[05:11:18] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[05:11:18] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[05:11:18] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[05:11:18] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[05:11:18] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[05:11:18] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[05:11:18] [PASSED] drm_test_cmdline_res_margins_force_on
[05:11:18] [PASSED] drm_test_cmdline_res_vesa_margins
[05:11:18] [PASSED] drm_test_cmdline_name
[05:11:18] [PASSED] drm_test_cmdline_name_bpp
[05:11:18] [PASSED] drm_test_cmdline_name_option
[05:11:18] [PASSED] drm_test_cmdline_name_bpp_option
[05:11:18] [PASSED] drm_test_cmdline_rotate_0
[05:11:18] [PASSED] drm_test_cmdline_rotate_90
[05:11:18] [PASSED] drm_test_cmdline_rotate_180
[05:11:18] [PASSED] drm_test_cmdline_rotate_270
[05:11:18] [PASSED] drm_test_cmdline_hmirror
[05:11:18] [PASSED] drm_test_cmdline_vmirror
[05:11:18] [PASSED] drm_test_cmdline_margin_options
[05:11:18] [PASSED] drm_test_cmdline_multiple_options
[05:11:18] [PASSED] drm_test_cmdline_bpp_extra_and_option
[05:11:18] [PASSED] drm_test_cmdline_extra_and_option
[05:11:18] [PASSED] drm_test_cmdline_freestanding_options
[05:11:18] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[05:11:18] [PASSED] drm_test_cmdline_panel_orientation
[05:11:18] ================ drm_test_cmdline_invalid  =================
[05:11:18] [PASSED] margin_only
[05:11:18] [PASSED] interlace_only
[05:11:18] [PASSED] res_missing_x
[05:11:18] [PASSED] res_missing_y
[05:11:18] [PASSED] res_bad_y
[05:11:18] [PASSED] res_missing_y_bpp
[05:11:18] [PASSED] res_bad_bpp
[05:11:18] [PASSED] res_bad_refresh
[05:11:18] [PASSED] res_bpp_refresh_force_on_off
[05:11:18] [PASSED] res_invalid_mode
[05:11:18] [PASSED] res_bpp_wrong_place_mode
[05:11:18] [PASSED] name_bpp_refresh
[05:11:18] [PASSED] name_refresh
[05:11:18] [PASSED] name_refresh_wrong_mode
[05:11:18] [PASSED] name_refresh_invalid_mode
[05:11:18] [PASSED] rotate_multiple
[05:11:18] [PASSED] rotate_invalid_val
[05:11:18] [PASSED] rotate_truncated
[05:11:18] [PASSED] invalid_option
[05:11:18] [PASSED] invalid_tv_option
[05:11:18] [PASSED] truncated_tv_option
[05:11:18] ============ [PASSED] drm_test_cmdline_invalid =============
[05:11:18] =============== drm_test_cmdline_tv_options  ===============
[05:11:18] [PASSED] NTSC
[05:11:18] [PASSED] NTSC_443
[05:11:18] [PASSED] NTSC_J
[05:11:18] [PASSED] PAL
[05:11:18] [PASSED] PAL_M
[05:11:18] [PASSED] PAL_N
[05:11:18] [PASSED] SECAM
[05:11:18] [PASSED] MONO_525
[05:11:18] [PASSED] MONO_625
[05:11:18] =========== [PASSED] drm_test_cmdline_tv_options ===========
[05:11:18] =============== [PASSED] drm_cmdline_parser ================
[05:11:18] ========== drmm_connector_hdmi_init (20 subtests) ==========
[05:11:18] [PASSED] drm_test_connector_hdmi_init_valid
[05:11:18] [PASSED] drm_test_connector_hdmi_init_bpc_8
[05:11:18] [PASSED] drm_test_connector_hdmi_init_bpc_10
[05:11:18] [PASSED] drm_test_connector_hdmi_init_bpc_12
[05:11:18] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[05:11:18] [PASSED] drm_test_connector_hdmi_init_bpc_null
[05:11:18] [PASSED] drm_test_connector_hdmi_init_formats_empty
[05:11:18] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[05:11:18] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[05:11:18] [PASSED] supported_formats=0x9 yuv420_allowed=1
[05:11:18] [PASSED] supported_formats=0x9 yuv420_allowed=0
[05:11:18] [PASSED] supported_formats=0x5 yuv420_allowed=1
[05:11:18] [PASSED] supported_formats=0x5 yuv420_allowed=0
[05:11:18] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[05:11:18] [PASSED] drm_test_connector_hdmi_init_null_ddc
[05:11:18] [PASSED] drm_test_connector_hdmi_init_null_product
[05:11:18] [PASSED] drm_test_connector_hdmi_init_null_vendor
[05:11:18] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[05:11:18] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[05:11:18] [PASSED] drm_test_connector_hdmi_init_product_valid
[05:11:18] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[05:11:18] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[05:11:18] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[05:11:18] ========= drm_test_connector_hdmi_init_type_valid  =========
[05:11:18] [PASSED] HDMI-A
[05:11:18] [PASSED] HDMI-B
[05:11:18] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[05:11:18] ======== drm_test_connector_hdmi_init_type_invalid  ========
[05:11:18] [PASSED] Unknown
[05:11:18] [PASSED] VGA
[05:11:18] [PASSED] DVI-I
[05:11:18] [PASSED] DVI-D
[05:11:18] [PASSED] DVI-A
[05:11:18] [PASSED] Composite
[05:11:18] [PASSED] SVIDEO
[05:11:18] [PASSED] LVDS
[05:11:18] [PASSED] Component
[05:11:18] [PASSED] DIN
[05:11:18] [PASSED] DP
[05:11:18] [PASSED] TV
[05:11:18] [PASSED] eDP
[05:11:18] [PASSED] Virtual
[05:11:18] [PASSED] DSI
[05:11:18] [PASSED] DPI
[05:11:18] [PASSED] Writeback
[05:11:18] [PASSED] SPI
[05:11:18] [PASSED] USB
[05:11:18] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[05:11:18] ============ [PASSED] drmm_connector_hdmi_init =============
[05:11:18] ============= drmm_connector_init (3 subtests) =============
[05:11:18] [PASSED] drm_test_drmm_connector_init
[05:11:18] [PASSED] drm_test_drmm_connector_init_null_ddc
[05:11:18] ========= drm_test_drmm_connector_init_type_valid  =========
[05:11:18] [PASSED] Unknown
[05:11:18] [PASSED] VGA
[05:11:18] [PASSED] DVI-I
[05:11:18] [PASSED] DVI-D
[05:11:18] [PASSED] DVI-A
[05:11:18] [PASSED] Composite
[05:11:18] [PASSED] SVIDEO
[05:11:18] [PASSED] LVDS
[05:11:18] [PASSED] Component
[05:11:18] [PASSED] DIN
[05:11:18] [PASSED] DP
[05:11:18] [PASSED] HDMI-A
[05:11:18] [PASSED] HDMI-B
[05:11:18] [PASSED] TV
[05:11:18] [PASSED] eDP
[05:11:18] [PASSED] Virtual
[05:11:18] [PASSED] DSI
[05:11:18] [PASSED] DPI
[05:11:18] [PASSED] Writeback
[05:11:18] [PASSED] SPI
[05:11:18] [PASSED] USB
[05:11:18] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[05:11:18] =============== [PASSED] drmm_connector_init ===============
[05:11:18] ========= drm_connector_dynamic_init (6 subtests) ==========
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_init
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_init_properties
[05:11:18] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[05:11:18] [PASSED] Unknown
[05:11:18] [PASSED] VGA
[05:11:18] [PASSED] DVI-I
[05:11:18] [PASSED] DVI-D
[05:11:18] [PASSED] DVI-A
[05:11:18] [PASSED] Composite
[05:11:18] [PASSED] SVIDEO
[05:11:18] [PASSED] LVDS
[05:11:18] [PASSED] Component
[05:11:18] [PASSED] DIN
[05:11:18] [PASSED] DP
[05:11:18] [PASSED] HDMI-A
[05:11:18] [PASSED] HDMI-B
[05:11:18] [PASSED] TV
[05:11:18] [PASSED] eDP
[05:11:18] [PASSED] Virtual
[05:11:18] [PASSED] DSI
[05:11:18] [PASSED] DPI
[05:11:18] [PASSED] Writeback
[05:11:18] [PASSED] SPI
[05:11:18] [PASSED] USB
[05:11:18] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[05:11:18] ======== drm_test_drm_connector_dynamic_init_name  =========
[05:11:18] [PASSED] Unknown
[05:11:18] [PASSED] VGA
[05:11:18] [PASSED] DVI-I
[05:11:18] [PASSED] DVI-D
[05:11:18] [PASSED] DVI-A
[05:11:18] [PASSED] Composite
[05:11:18] [PASSED] SVIDEO
[05:11:18] [PASSED] LVDS
[05:11:18] [PASSED] Component
[05:11:18] [PASSED] DIN
[05:11:18] [PASSED] DP
[05:11:18] [PASSED] HDMI-A
[05:11:18] [PASSED] HDMI-B
[05:11:18] [PASSED] TV
[05:11:18] [PASSED] eDP
[05:11:18] [PASSED] Virtual
[05:11:18] [PASSED] DSI
[05:11:18] [PASSED] DPI
[05:11:18] [PASSED] Writeback
[05:11:18] [PASSED] SPI
[05:11:18] [PASSED] USB
[05:11:18] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[05:11:18] =========== [PASSED] drm_connector_dynamic_init ============
[05:11:18] ==== drm_connector_dynamic_register_early (4 subtests) =====
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[05:11:18] ====== [PASSED] drm_connector_dynamic_register_early =======
[05:11:18] ======= drm_connector_dynamic_register (7 subtests) ========
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[05:11:18] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[05:11:18] ========= [PASSED] drm_connector_dynamic_register ==========
[05:11:18] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[05:11:18] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[05:11:18] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[05:11:18] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[05:11:18] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[05:11:18] ========== drm_test_get_tv_mode_from_name_valid  ===========
[05:11:18] [PASSED] NTSC
[05:11:18] [PASSED] NTSC-443
[05:11:18] [PASSED] NTSC-J
[05:11:18] [PASSED] PAL
[05:11:18] [PASSED] PAL-M
[05:11:18] [PASSED] PAL-N
[05:11:18] [PASSED] SECAM
[05:11:18] [PASSED] Mono
[05:11:18] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[05:11:18] [PASSED] drm_test_get_tv_mode_from_name_truncated
[05:11:18] ============ [PASSED] drm_get_tv_mode_from_name ============
[05:11:18] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[05:11:18] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[05:11:18] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[05:11:18] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[05:11:18] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[05:11:18] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[05:11:18] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[05:11:18] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[05:11:18] [PASSED] VIC 96
[05:11:18] [PASSED] VIC 97
[05:11:18] [PASSED] VIC 101
[05:11:18] [PASSED] VIC 102
[05:11:18] [PASSED] VIC 106
[05:11:18] [PASSED] VIC 107
[05:11:18] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[05:11:18] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[05:11:18] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[05:11:18] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[05:11:18] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[05:11:18] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[05:11:18] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[05:11:18] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[05:11:18] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[05:11:18] [PASSED] Automatic
[05:11:18] [PASSED] Full
[05:11:18] [PASSED] Limited 16:235
[05:11:18] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[05:11:18] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[05:11:18] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[05:11:18] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[05:11:18] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[05:11:18] [PASSED] RGB
[05:11:18] [PASSED] YUV 4:2:0
[05:11:18] [PASSED] YUV 4:2:2
[05:11:18] [PASSED] YUV 4:4:4
[05:11:18] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[05:11:18] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[05:11:18] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[05:11:18] ============= drm_damage_helper (21 subtests) ==============
[05:11:18] [PASSED] drm_test_damage_iter_no_damage
[05:11:18] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[05:11:18] [PASSED] drm_test_damage_iter_no_damage_src_moved
[05:11:18] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[05:11:18] [PASSED] drm_test_damage_iter_no_damage_not_visible
[05:11:18] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[05:11:18] [PASSED] drm_test_damage_iter_no_damage_no_fb
[05:11:18] [PASSED] drm_test_damage_iter_simple_damage
[05:11:18] [PASSED] drm_test_damage_iter_single_damage
[05:11:18] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[05:11:18] [PASSED] drm_test_damage_iter_single_damage_outside_src
[05:11:18] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[05:11:18] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[05:11:18] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[05:11:18] [PASSED] drm_test_damage_iter_single_damage_src_moved
[05:11:18] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[05:11:18] [PASSED] drm_test_damage_iter_damage
[05:11:18] [PASSED] drm_test_damage_iter_damage_one_intersect
[05:11:18] [PASSED] drm_test_damage_iter_damage_one_outside
[05:11:18] [PASSED] drm_test_damage_iter_damage_src_moved
[05:11:18] [PASSED] drm_test_damage_iter_damage_not_visible
[05:11:18] ================ [PASSED] drm_damage_helper ================
[05:11:18] ============== drm_dp_mst_helper (3 subtests) ==============
[05:11:18] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[05:11:18] [PASSED] Clock 154000 BPP 30 DSC disabled
[05:11:18] [PASSED] Clock 234000 BPP 30 DSC disabled
[05:11:18] [PASSED] Clock 297000 BPP 24 DSC disabled
[05:11:18] [PASSED] Clock 332880 BPP 24 DSC enabled
[05:11:18] [PASSED] Clock 324540 BPP 24 DSC enabled
[05:11:18] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[05:11:18] ============== drm_test_dp_mst_calc_pbn_div  ===============
[05:11:18] [PASSED] Link rate 2000000 lane count 4
[05:11:18] [PASSED] Link rate 2000000 lane count 2
[05:11:18] [PASSED] Link rate 2000000 lane count 1
[05:11:18] [PASSED] Link rate 1350000 lane count 4
[05:11:18] [PASSED] Link rate 1350000 lane count 2
[05:11:18] [PASSED] Link rate 1350000 lane count 1
[05:11:18] [PASSED] Link rate 1000000 lane count 4
[05:11:18] [PASSED] Link rate 1000000 lane count 2
[05:11:18] [PASSED] Link rate 1000000 lane count 1
[05:11:18] [PASSED] Link rate 810000 lane count 4
[05:11:18] [PASSED] Link rate 810000 lane count 2
[05:11:18] [PASSED] Link rate 810000 lane count 1
[05:11:18] [PASSED] Link rate 540000 lane count 4
[05:11:18] [PASSED] Link rate 540000 lane count 2
[05:11:18] [PASSED] Link rate 540000 lane count 1
[05:11:18] [PASSED] Link rate 270000 lane count 4
[05:11:18] [PASSED] Link rate 270000 lane count 2
[05:11:18] [PASSED] Link rate 270000 lane count 1
[05:11:18] [PASSED] Link rate 162000 lane count 4
[05:11:18] [PASSED] Link rate 162000 lane count 2
[05:11:18] [PASSED] Link rate 162000 lane count 1
[05:11:18] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[05:11:18] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[05:11:18] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[05:11:18] [PASSED] DP_POWER_UP_PHY with port number
[05:11:18] [PASSED] DP_POWER_DOWN_PHY with port number
[05:11:18] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[05:11:18] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[05:11:18] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[05:11:18] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[05:11:18] [PASSED] DP_QUERY_PAYLOAD with port number
[05:11:18] [PASSED] DP_QUERY_PAYLOAD with VCPI
[05:11:18] [PASSED] DP_REMOTE_DPCD_READ with port number
[05:11:18] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[05:11:18] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[05:11:18] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[05:11:18] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[05:11:18] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[05:11:18] [PASSED] DP_REMOTE_I2C_READ with port number
[05:11:18] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[05:11:18] [PASSED] DP_REMOTE_I2C_READ with transactions array
[05:11:18] [PASSED] DP_REMOTE_I2C_WRITE with port number
[05:11:18] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[05:11:18] [PASSED] DP_REMOTE_I2C_WRITE with data array
[05:11:18] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[05:11:18] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[05:11:18] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[05:11:18] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[05:11:18] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[05:11:18] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[05:11:18] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[05:11:18] ================ [PASSED] drm_dp_mst_helper ================
[05:11:18] ================== drm_exec (7 subtests) ===================
[05:11:18] [PASSED] sanitycheck
[05:11:18] [PASSED] test_lock
[05:11:18] [PASSED] test_lock_unlock
[05:11:18] [PASSED] test_duplicates
[05:11:18] [PASSED] test_prepare
[05:11:18] [PASSED] test_prepare_array
[05:11:18] [PASSED] test_multiple_loops
[05:11:18] ==================== [PASSED] drm_exec =====================
[05:11:18] =========== drm_format_helper_test (17 subtests) ===========
[05:11:18] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[05:11:18] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[05:11:18] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[05:11:18] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[05:11:18] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[05:11:18] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[05:11:18] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[05:11:18] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[05:11:18] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[05:11:18] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[05:11:18] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[05:11:18] ============== drm_test_fb_xrgb8888_to_mono  ===============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[05:11:18] ==================== drm_test_fb_swab  =====================
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ================ [PASSED] drm_test_fb_swab =================
[05:11:18] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[05:11:18] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[05:11:18] [PASSED] single_pixel_source_buffer
[05:11:18] [PASSED] single_pixel_clip_rectangle
[05:11:18] [PASSED] well_known_colors
[05:11:18] [PASSED] destination_pitch
[05:11:18] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[05:11:18] ================= drm_test_fb_clip_offset  =================
[05:11:18] [PASSED] pass through
[05:11:18] [PASSED] horizontal offset
[05:11:18] [PASSED] vertical offset
[05:11:18] [PASSED] horizontal and vertical offset
[05:11:18] [PASSED] horizontal offset (custom pitch)
[05:11:18] [PASSED] vertical offset (custom pitch)
[05:11:18] [PASSED] horizontal and vertical offset (custom pitch)
[05:11:18] ============= [PASSED] drm_test_fb_clip_offset =============
[05:11:18] =================== drm_test_fb_memcpy  ====================
[05:11:18] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[05:11:18] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[05:11:18] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[05:11:18] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[05:11:18] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[05:11:18] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[05:11:18] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[05:11:18] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[05:11:18] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[05:11:18] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[05:11:18] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[05:11:18] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[05:11:18] =============== [PASSED] drm_test_fb_memcpy ================
[05:11:18] ============= [PASSED] drm_format_helper_test ==============
[05:11:18] ================= drm_format (18 subtests) =================
[05:11:18] [PASSED] drm_test_format_block_width_invalid
[05:11:18] [PASSED] drm_test_format_block_width_one_plane
[05:11:18] [PASSED] drm_test_format_block_width_two_plane
[05:11:18] [PASSED] drm_test_format_block_width_three_plane
[05:11:18] [PASSED] drm_test_format_block_width_tiled
[05:11:18] [PASSED] drm_test_format_block_height_invalid
[05:11:18] [PASSED] drm_test_format_block_height_one_plane
[05:11:18] [PASSED] drm_test_format_block_height_two_plane
[05:11:18] [PASSED] drm_test_format_block_height_three_plane
[05:11:18] [PASSED] drm_test_format_block_height_tiled
[05:11:18] [PASSED] drm_test_format_min_pitch_invalid
[05:11:18] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[05:11:18] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[05:11:18] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[05:11:18] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[05:11:18] [PASSED] drm_test_format_min_pitch_two_plane
[05:11:18] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[05:11:18] [PASSED] drm_test_format_min_pitch_tiled
[05:11:18] =================== [PASSED] drm_format ====================
[05:11:18] ============== drm_framebuffer (10 subtests) ===============
[05:11:18] ========== drm_test_framebuffer_check_src_coords  ==========
[05:11:18] [PASSED] Success: source fits into fb
[05:11:18] [PASSED] Fail: overflowing fb with x-axis coordinate
[05:11:18] [PASSED] Fail: overflowing fb with y-axis coordinate
[05:11:18] [PASSED] Fail: overflowing fb with source width
[05:11:18] [PASSED] Fail: overflowing fb with source height
[05:11:18] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[05:11:18] [PASSED] drm_test_framebuffer_cleanup
[05:11:18] =============== drm_test_framebuffer_create  ===============
[05:11:18] [PASSED] ABGR8888 normal sizes
[05:11:18] [PASSED] ABGR8888 max sizes
[05:11:18] [PASSED] ABGR8888 pitch greater than min required
[05:11:18] [PASSED] ABGR8888 pitch less than min required
[05:11:18] [PASSED] ABGR8888 Invalid width
[05:11:18] [PASSED] ABGR8888 Invalid buffer handle
[05:11:18] [PASSED] No pixel format
[05:11:18] [PASSED] ABGR8888 Width 0
[05:11:18] [PASSED] ABGR8888 Height 0
[05:11:18] [PASSED] ABGR8888 Out of bound height * pitch combination
[05:11:18] [PASSED] ABGR8888 Large buffer offset
[05:11:18] [PASSED] ABGR8888 Buffer offset for inexistent plane
[05:11:18] [PASSED] ABGR8888 Invalid flag
[05:11:18] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[05:11:18] [PASSED] ABGR8888 Valid buffer modifier
[05:11:18] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[05:11:18] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[05:11:18] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[05:11:18] [PASSED] NV12 Normal sizes
[05:11:18] [PASSED] NV12 Max sizes
[05:11:18] [PASSED] NV12 Invalid pitch
[05:11:18] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[05:11:18] [PASSED] NV12 different  modifier per-plane
[05:11:18] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[05:11:18] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[05:11:18] [PASSED] NV12 Modifier for inexistent plane
[05:11:18] [PASSED] NV12 Handle for inexistent plane
[05:11:18] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[05:11:18] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[05:11:18] [PASSED] YVU420 Normal sizes
[05:11:18] [PASSED] YVU420 Max sizes
[05:11:18] [PASSED] YVU420 Invalid pitch
[05:11:18] [PASSED] YVU420 Different pitches
[05:11:18] [PASSED] YVU420 Different buffer offsets/pitches
[05:11:18] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[05:11:18] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[05:11:18] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[05:11:18] [PASSED] YVU420 Valid modifier
[05:11:18] [PASSED] YVU420 Different modifiers per plane
[05:11:18] [PASSED] YVU420 Modifier for inexistent plane
[05:11:18] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[05:11:18] [PASSED] X0L2 Normal sizes
[05:11:18] [PASSED] X0L2 Max sizes
[05:11:18] [PASSED] X0L2 Invalid pitch
[05:11:18] [PASSED] X0L2 Pitch greater than minimum required
[05:11:18] [PASSED] X0L2 Handle for inexistent plane
[05:11:18] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[05:11:18] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[05:11:18] [PASSED] X0L2 Valid modifier
[05:11:18] [PASSED] X0L2 Modifier for inexistent plane
[05:11:18] =========== [PASSED] drm_test_framebuffer_create ===========
[05:11:18] [PASSED] drm_test_framebuffer_free
[05:11:18] [PASSED] drm_test_framebuffer_init
[05:11:18] [PASSED] drm_test_framebuffer_init_bad_format
[05:11:18] [PASSED] drm_test_framebuffer_init_dev_mismatch
[05:11:18] [PASSED] drm_test_framebuffer_lookup
[05:11:18] [PASSED] drm_test_framebuffer_lookup_inexistent
[05:11:18] [PASSED] drm_test_framebuffer_modifiers_not_supported
[05:11:18] ================= [PASSED] drm_framebuffer =================
[05:11:18] ================ drm_gem_shmem (8 subtests) ================
[05:11:18] [PASSED] drm_gem_shmem_test_obj_create
[05:11:18] [PASSED] drm_gem_shmem_test_obj_create_private
[05:11:18] [PASSED] drm_gem_shmem_test_pin_pages
[05:11:18] [PASSED] drm_gem_shmem_test_vmap
[05:11:18] [PASSED] drm_gem_shmem_test_get_sg_table
[05:11:18] [PASSED] drm_gem_shmem_test_get_pages_sgt
[05:11:18] [PASSED] drm_gem_shmem_test_madvise
[05:11:18] [PASSED] drm_gem_shmem_test_purge
[05:11:18] ================== [PASSED] drm_gem_shmem ==================
[05:11:18] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[05:11:18] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[05:11:18] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[05:11:18] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[05:11:18] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[05:11:18] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[05:11:18] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[05:11:18] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[05:11:18] [PASSED] Automatic
[05:11:18] [PASSED] Full
[05:11:18] [PASSED] Limited 16:235
[05:11:18] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[05:11:18] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[05:11:18] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[05:11:18] [PASSED] drm_test_check_disable_connector
[05:11:18] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[05:11:18] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[05:11:18] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[05:11:18] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[05:11:18] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[05:11:18] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[05:11:18] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[05:11:18] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[05:11:18] [PASSED] drm_test_check_output_bpc_dvi
[05:11:18] [PASSED] drm_test_check_output_bpc_format_vic_1
[05:11:18] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[05:11:18] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[05:11:18] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[05:11:18] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[05:11:18] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[05:11:18] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[05:11:18] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[05:11:18] ============ drm_test_check_hdmi_color_format  =============
[05:11:18] [PASSED] AUTO -> RGB
[05:11:18] [PASSED] YCBCR422 -> YUV422
[05:11:18] [PASSED] YCBCR420 -> YUV420
[05:11:18] [PASSED] YCBCR444 -> YUV444
[05:11:18] [PASSED] RGB -> RGB
[05:11:18] ======== [PASSED] drm_test_check_hdmi_color_format =========
[05:11:18] ======== drm_test_check_hdmi_color_format_420_only  ========
[05:11:18] [PASSED] RGB should fail
[05:11:18] [PASSED] YUV444 should fail
[05:11:18] [PASSED] YUV422 should fail
[05:11:18] [PASSED] YUV420 should work
[05:11:18] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[05:11:18] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[05:11:18] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[05:11:18] [PASSED] drm_test_check_broadcast_rgb_value
[05:11:18] [PASSED] drm_test_check_bpc_8_value
[05:11:18] [PASSED] drm_test_check_bpc_10_value
[05:11:18] [PASSED] drm_test_check_bpc_12_value
[05:11:18] [PASSED] drm_test_check_format_value
[05:11:18] [PASSED] drm_test_check_tmds_char_value
[05:11:18] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[05:11:18] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[05:11:18] [PASSED] drm_test_check_mode_valid
[05:11:18] [PASSED] drm_test_check_mode_valid_reject
[05:11:18] [PASSED] drm_test_check_mode_valid_reject_rate
[05:11:18] [PASSED] drm_test_check_mode_valid_reject_max_clock
[05:11:18] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[05:11:18] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[05:11:18] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[05:11:18] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[05:11:18] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[05:11:18] [PASSED] drm_test_check_infoframes
[05:11:18] [PASSED] drm_test_check_reject_avi_infoframe
[05:11:18] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[05:11:18] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[05:11:18] [PASSED] drm_test_check_reject_audio_infoframe
[05:11:18] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[05:11:18] ================= drm_managed (2 subtests) =================
[05:11:18] [PASSED] drm_test_managed_release_action
[05:11:18] [PASSED] drm_test_managed_run_action
[05:11:18] =================== [PASSED] drm_managed ===================
[05:11:18] =================== drm_mm (6 subtests) ====================
[05:11:18] [PASSED] drm_test_mm_init
[05:11:18] [PASSED] drm_test_mm_debug
[05:11:18] [PASSED] drm_test_mm_align32
[05:11:18] [PASSED] drm_test_mm_align64
[05:11:18] [PASSED] drm_test_mm_lowest
[05:11:18] [PASSED] drm_test_mm_highest
[05:11:18] ===================== [PASSED] drm_mm ======================
[05:11:18] ============= drm_modes_analog_tv (5 subtests) =============
[05:11:18] [PASSED] drm_test_modes_analog_tv_mono_576i
[05:11:18] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[05:11:18] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[05:11:18] [PASSED] drm_test_modes_analog_tv_pal_576i
[05:11:18] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[05:11:18] =============== [PASSED] drm_modes_analog_tv ===============
[05:11:18] ============== drm_panic_helper (3 subtests) ===============
[05:11:18] ============= drm_test_panic_screen_user_map  ==============
[05:11:18] [PASSED] Panic screen user, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen user, mode: 494 x 494 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen user, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen user, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[05:11:18] [PASSED] Panic screen user, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen kmsg, mode: 494 x 494 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[05:11:18] ========= [PASSED] drm_test_panic_screen_user_map ==========
[05:11:18] ============= drm_test_panic_screen_user_page  =============
[05:11:18] [PASSED] Panic screen user, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen user, mode: 494 x 494 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen user, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen user, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[05:11:18] [PASSED] Panic screen user, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen kmsg, mode: 494 x 494 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[05:11:18] ========= [PASSED] drm_test_panic_screen_user_page =========
[05:11:18] ========== drm_test_panic_screen_user_set_pixel  ===========
[05:11:18] [PASSED] Panic screen user, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen user, mode: 494 x 494 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen user, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen user, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[05:11:18] [PASSED] Panic screen user, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen kmsg, mode: 494 x 494 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[05:11:18] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[05:11:18] ====== [PASSED] drm_test_panic_screen_user_set_pixel =======
[05:11:18] ================ [PASSED] drm_panic_helper =================
[05:11:18] ============== drm_plane_helper (2 subtests) ===============
[05:11:18] =============== drm_test_check_plane_state  ================
[05:11:18] [PASSED] clipping_simple
[05:11:18] [PASSED] clipping_rotate_reflect
[05:11:18] [PASSED] positioning_simple
[05:11:18] [PASSED] upscaling
[05:11:18] [PASSED] downscaling
[05:11:18] [PASSED] rounding1
[05:11:18] [PASSED] rounding2
[05:11:18] [PASSED] rounding3
[05:11:18] [PASSED] rounding4
[05:11:18] =========== [PASSED] drm_test_check_plane_state ============
[05:11:18] =========== drm_test_check_invalid_plane_state  ============
[05:11:18] [PASSED] positioning_invalid
[05:11:18] [PASSED] upscaling_invalid
[05:11:18] [PASSED] downscaling_invalid
[05:11:18] ======= [PASSED] drm_test_check_invalid_plane_state ========
[05:11:18] ================ [PASSED] drm_plane_helper =================
[05:11:18] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[05:11:18] ====== drm_test_connector_helper_tv_get_modes_check  =======
[05:11:18] [PASSED] None
[05:11:18] [PASSED] PAL
[05:11:18] [PASSED] NTSC
[05:11:18] [PASSED] Both, NTSC Default
[05:11:18] [PASSED] Both, PAL Default
[05:11:18] [PASSED] Both, NTSC Default, with PAL on command-line
[05:11:18] [PASSED] Both, PAL Default, with NTSC on command-line
[05:11:18] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[05:11:18] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[05:11:18] ================== drm_rect (9 subtests) ===================
[05:11:18] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[05:11:18] [PASSED] drm_test_rect_clip_scaled_not_clipped
[05:11:18] [PASSED] drm_test_rect_clip_scaled_clipped
[05:11:18] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[05:11:18] ================= drm_test_rect_intersect  =================
[05:11:18] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[05:11:18] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[05:11:18] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[05:11:18] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[05:11:18] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[05:11:18] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[05:11:18] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[05:11:18] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[05:11:18] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[05:11:18] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[05:11:18] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[05:11:18] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[05:11:18] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[05:11:18] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[05:11:18] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[05:11:18] ============= [PASSED] drm_test_rect_intersect =============
[05:11:18] ================ drm_test_rect_calc_hscale  ================
[05:11:18] [PASSED] normal use
[05:11:18] [PASSED] out of max range
[05:11:18] [PASSED] out of min range
[05:11:18] [PASSED] zero dst
[05:11:18] [PASSED] negative src
[05:11:18] [PASSED] negative dst
[05:11:18] ============ [PASSED] drm_test_rect_calc_hscale ============
[05:11:18] ================ drm_test_rect_calc_vscale  ================
[05:11:18] [PASSED] normal use
[05:11:18] [PASSED] out of max range
[05:11:18] [PASSED] out of min range
[05:11:18] [PASSED] zero dst
[05:11:18] [PASSED] negative src
[05:11:18] [PASSED] negative dst
[05:11:18] ============ [PASSED] drm_test_rect_calc_vscale ============
[05:11:18] ================== drm_test_rect_rotate  ===================
[05:11:18] [PASSED] reflect-x
[05:11:18] [PASSED] reflect-y
[05:11:18] [PASSED] rotate-0
[05:11:18] [PASSED] rotate-90
[05:11:18] [PASSED] rotate-180
[05:11:18] [PASSED] rotate-270
[05:11:18] ============== [PASSED] drm_test_rect_rotate ===============
[05:11:18] ================ drm_test_rect_rotate_inv  =================
[05:11:18] [PASSED] reflect-x
[05:11:18] [PASSED] reflect-y
[05:11:18] [PASSED] rotate-0
[05:11:18] [PASSED] rotate-90
[05:11:18] [PASSED] rotate-180
[05:11:18] [PASSED] rotate-270
[05:11:18] ============ [PASSED] drm_test_rect_rotate_inv =============
[05:11:18] ==================== [PASSED] drm_rect =====================
[05:11:18] ============ drm_sysfb_modeset_test (1 subtest) ============
[05:11:18] ============ drm_test_sysfb_build_fourcc_list  =============
[05:11:18] [PASSED] no native formats
[05:11:18] [PASSED] XRGB8888 as native format
[05:11:18] [PASSED] remove duplicates
[05:11:18] [PASSED] convert alpha formats
[05:11:18] [PASSED] random formats
[05:11:18] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[05:11:18] ============= [PASSED] drm_sysfb_modeset_test ==============
[05:11:18] ================== drm_fixp (2 subtests) ===================
[05:11:18] [PASSED] drm_test_int2fixp
[05:11:18] [PASSED] drm_test_sm2fixp
[05:11:18] ==================== [PASSED] drm_fixp =====================
[05:11:18] ============================================================
[05:11:18] Testing complete. Ran 667 tests: passed: 667
[05:11:18] Elapsed time: 27.335s total, 1.877s configuring, 25.038s building, 0.412s running

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[05:11:18] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[05:11:20] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[05:11:30] Starting KUnit Kernel (1/1)...
[05:11:30] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[05:11:30] ================= ttm_device (5 subtests) ==================
[05:11:30] [PASSED] ttm_device_init_basic
[05:11:30] [PASSED] ttm_device_init_multiple
[05:11:30] [PASSED] ttm_device_fini_basic
[05:11:30] [PASSED] ttm_device_init_no_vma_man
[05:11:30] ================== ttm_device_init_pools  ==================
[05:11:30] [PASSED] No DMA allocations, no DMA32 required
[05:11:30] [PASSED] DMA allocations, DMA32 required
[05:11:30] [PASSED] No DMA allocations, DMA32 required
[05:11:30] [PASSED] DMA allocations, no DMA32 required
[05:11:30] ============== [PASSED] ttm_device_init_pools ==============
[05:11:30] =================== [PASSED] ttm_device ====================
[05:11:30] ================== ttm_pool (8 subtests) ===================
[05:11:30] ================== ttm_pool_alloc_basic  ===================
[05:11:30] [PASSED] One page
[05:11:30] [PASSED] More than one page
[05:11:30] [PASSED] Above the allocation limit
[05:11:30] [PASSED] One page, with coherent DMA mappings enabled
[05:11:30] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[05:11:30] ============== [PASSED] ttm_pool_alloc_basic ===============
[05:11:30] ============== ttm_pool_alloc_basic_dma_addr  ==============
[05:11:30] [PASSED] One page
[05:11:30] [PASSED] More than one page
[05:11:30] [PASSED] Above the allocation limit
[05:11:30] [PASSED] One page, with coherent DMA mappings enabled
[05:11:30] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[05:11:30] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[05:11:30] [PASSED] ttm_pool_alloc_order_caching_match
[05:11:30] [PASSED] ttm_pool_alloc_caching_mismatch
[05:11:30] [PASSED] ttm_pool_alloc_order_mismatch
[05:11:30] [PASSED] ttm_pool_free_dma_alloc
[05:11:30] [PASSED] ttm_pool_free_no_dma_alloc
[05:11:30] [PASSED] ttm_pool_fini_basic
[05:11:30] ==================== [PASSED] ttm_pool =====================
[05:11:30] ================ ttm_resource (8 subtests) =================
[05:11:30] ================= ttm_resource_init_basic  =================
[05:11:30] [PASSED] Init resource in TTM_PL_SYSTEM
[05:11:30] [PASSED] Init resource in TTM_PL_VRAM
[05:11:30] [PASSED] Init resource in a private placement
[05:11:30] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[05:11:30] ============= [PASSED] ttm_resource_init_basic =============
[05:11:30] [PASSED] ttm_resource_init_pinned
[05:11:30] [PASSED] ttm_resource_fini_basic
[05:11:30] [PASSED] ttm_resource_manager_init_basic
[05:11:30] [PASSED] ttm_resource_manager_usage_basic
[05:11:30] [PASSED] ttm_resource_manager_set_used_basic
[05:11:30] [PASSED] ttm_sys_man_alloc_basic
[05:11:30] [PASSED] ttm_sys_man_free_basic
[05:11:30] ================== [PASSED] ttm_resource ===================
[05:11:30] =================== ttm_tt (15 subtests) ===================
[05:11:30] ==================== ttm_tt_init_basic  ====================
[05:11:30] [PASSED] Page-aligned size
[05:11:30] [PASSED] Extra pages requested
[05:11:30] ================ [PASSED] ttm_tt_init_basic ================
[05:11:30] [PASSED] ttm_tt_init_misaligned
[05:11:30] [PASSED] ttm_tt_fini_basic
[05:11:30] [PASSED] ttm_tt_fini_sg
[05:11:30] [PASSED] ttm_tt_fini_shmem
[05:11:30] [PASSED] ttm_tt_create_basic
[05:11:30] [PASSED] ttm_tt_create_invalid_bo_type
[05:11:30] [PASSED] ttm_tt_create_ttm_exists
[05:11:30] [PASSED] ttm_tt_create_failed
[05:11:30] [PASSED] ttm_tt_destroy_basic
[05:11:30] [PASSED] ttm_tt_populate_null_ttm
[05:11:30] [PASSED] ttm_tt_populate_populated_ttm
[05:11:30] [PASSED] ttm_tt_unpopulate_basic
[05:11:30] [PASSED] ttm_tt_unpopulate_empty_ttm
[05:11:30] [PASSED] ttm_tt_swapin_basic
[05:11:30] ===================== [PASSED] ttm_tt ======================
[05:11:30] =================== ttm_bo (14 subtests) ===================
[05:11:30] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[05:11:30] [PASSED] Cannot be interrupted and sleeps
[05:11:30] [PASSED] Cannot be interrupted, locks straight away
[05:11:30] [PASSED] Can be interrupted, sleeps
[05:11:30] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[05:11:30] [PASSED] ttm_bo_reserve_locked_no_sleep
[05:11:30] [PASSED] ttm_bo_reserve_no_wait_ticket
[05:11:30] [PASSED] ttm_bo_reserve_double_resv
[05:11:30] [PASSED] ttm_bo_reserve_interrupted
[05:11:30] [PASSED] ttm_bo_reserve_deadlock
[05:11:30] [PASSED] ttm_bo_unreserve_basic
[05:11:30] [PASSED] ttm_bo_unreserve_pinned
[05:11:30] [PASSED] ttm_bo_unreserve_bulk
[05:11:30] [PASSED] ttm_bo_fini_basic
[05:11:30] [PASSED] ttm_bo_fini_shared_resv
[05:11:30] [PASSED] ttm_bo_pin_basic
[05:11:30] [PASSED] ttm_bo_pin_unpin_resource
[05:11:30] [PASSED] ttm_bo_multiple_pin_one_unpin
[05:11:30] ===================== [PASSED] ttm_bo ======================
[05:11:30] ============== ttm_bo_validate (22 subtests) ===============
[05:11:30] ============== ttm_bo_init_reserved_sys_man  ===============
[05:11:30] [PASSED] Buffer object for userspace
[05:11:30] [PASSED] Kernel buffer object
[05:11:30] [PASSED] Shared buffer object
[05:11:30] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[05:11:30] ============== ttm_bo_init_reserved_mock_man  ==============
[05:11:30] [PASSED] Buffer object for userspace
[05:11:30] [PASSED] Kernel buffer object
[05:11:30] [PASSED] Shared buffer object
[05:11:30] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[05:11:30] [PASSED] ttm_bo_init_reserved_resv
[05:11:30] ================== ttm_bo_validate_basic  ==================
[05:11:30] [PASSED] Buffer object for userspace
[05:11:30] [PASSED] Kernel buffer object
[05:11:30] [PASSED] Shared buffer object
[05:11:30] ============== [PASSED] ttm_bo_validate_basic ==============
[05:11:30] [PASSED] ttm_bo_validate_invalid_placement
[05:11:30] ============= ttm_bo_validate_same_placement  ==============
[05:11:30] [PASSED] System manager
[05:11:30] [PASSED] VRAM manager
[05:11:30] ========= [PASSED] ttm_bo_validate_same_placement ==========
[05:11:30] [PASSED] ttm_bo_validate_failed_alloc
[05:11:30] [PASSED] ttm_bo_validate_pinned
[05:11:30] [PASSED] ttm_bo_validate_busy_placement
[05:11:30] ================ ttm_bo_validate_multihop  =================
[05:11:30] [PASSED] Buffer object for userspace
[05:11:30] [PASSED] Kernel buffer object
[05:11:30] [PASSED] Shared buffer object
[05:11:30] ============ [PASSED] ttm_bo_validate_multihop =============
[05:11:30] ========== ttm_bo_validate_no_placement_signaled  ==========
[05:11:30] [PASSED] Buffer object in system domain, no page vector
[05:11:30] [PASSED] Buffer object in system domain with an existing page vector
[05:11:30] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[05:11:30] ======== ttm_bo_validate_no_placement_not_signaled  ========
[05:11:30] [PASSED] Buffer object for userspace
[05:11:30] [PASSED] Kernel buffer object
[05:11:30] [PASSED] Shared buffer object
[05:11:30] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[05:11:30] [PASSED] ttm_bo_validate_move_fence_signaled
[05:11:30] ========= ttm_bo_validate_move_fence_not_signaled  =========
[05:11:30] [PASSED] Waits for GPU
[05:11:30] [PASSED] Tries to lock straight away
[05:11:30] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[05:11:30] [PASSED] ttm_bo_validate_swapout
[05:11:30] [PASSED] ttm_bo_validate_happy_evict
[05:11:30] [PASSED] ttm_bo_validate_all_pinned_evict
[05:11:30] [PASSED] ttm_bo_validate_allowed_only_evict
[05:11:30] [PASSED] ttm_bo_validate_deleted_evict
[05:11:30] [PASSED] ttm_bo_validate_busy_domain_evict
[05:11:30] [PASSED] ttm_bo_validate_evict_gutting
[05:11:30] [PASSED] ttm_bo_validate_recrusive_evict
[05:11:30] ================= [PASSED] ttm_bo_validate =================
[05:11:30] ============================================================
[05:11:30] Testing complete. Ran 102 tests: passed: 102
[05:11:30] Elapsed time: 12.333s total, 1.897s configuring, 10.221s building, 0.182s running

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[05:11:31] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[05:11:32] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[05:11:41] Starting KUnit Kernel (1/1)...
[05:11:41] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[05:11:41] =============== dma-buf-fence (12 subtests) ================
[05:11:41] [PASSED] test_sanitycheck
[05:11:41] [PASSED] test_signaling
[05:11:41] [PASSED] test_add_callback
[05:11:41] [PASSED] test_late_add_callback
[05:11:41] [PASSED] test_rm_callback
[05:11:41] [PASSED] test_late_rm_callback
[05:11:41] [PASSED] test_status
[05:11:41] [PASSED] test_error
[05:11:41] [PASSED] test_wait
[05:11:41] [PASSED] test_wait_timeout
[05:11:41] [PASSED] test_stub
[05:11:41] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[05:11:41] ================== [PASSED] dma-buf-fence ==================
[05:11:41] ============ dma-buf-fence-chain (11 subtests) =============
[05:11:41] [PASSED] test_sanitycheck
[05:11:41] [PASSED] test_find_seqno
[05:11:41] [PASSED] test_find_signaled
[05:11:41] [PASSED] test_find_out_of_order
[05:11:46] [PASSED] test_find_gap
[05:11:46] [PASSED] test_find_race
[05:11:46] [PASSED] test_signal_forward
[05:11:47] [PASSED] test_signal_backward
[05:11:47] [PASSED] test_wait_forward
[05:11:47] [PASSED] test_wait_backward
[05:11:47] [PASSED] test_wait_random
[05:11:47] =============== [PASSED] dma-buf-fence-chain ===============
[05:11:47] ============ dma-buf-fence-unwrap (11 subtests) ============
[05:11:47] [PASSED] test_sanitycheck
[05:11:47] [PASSED] test_unwrap_array
[05:11:47] [PASSED] test_unwrap_chain
[05:11:47] [PASSED] test_unwrap_chain_array
[05:11:47] [PASSED] test_unwrap_merge
[05:11:47] [PASSED] test_unwrap_merge_duplicate
[05:11:47] [PASSED] test_unwrap_merge_seqno
[05:11:47] [PASSED] test_unwrap_merge_order
[05:11:47] [PASSED] test_unwrap_merge_complex
[05:11:47] [PASSED] test_unwrap_merge_complex_seqno
[05:11:47] [PASSED] test_dedup_empty
[05:11:47] ============== [PASSED] dma-buf-fence-unwrap ===============
[05:11:47] ================ dma-buf-resv (5 subtests) =================
[05:11:47] [PASSED] test_sanitycheck
[05:11:47] ===================== test_signaling  ======================
[05:11:47] [PASSED] kernel
[05:11:47] [PASSED] write
[05:11:47] [PASSED] read
[05:11:47] [PASSED] bookkeep
[05:11:47] ================= [PASSED] test_signaling ==================
[05:11:47] ====================== test_for_each  ======================
[05:11:47] [PASSED] kernel
[05:11:47] [PASSED] write
[05:11:47] [PASSED] read
[05:11:47] [PASSED] bookkeep
[05:11:47] ================== [PASSED] test_for_each ==================
[05:11:47] ================= test_for_each_unlocked  ==================
[05:11:47] [PASSED] kernel
[05:11:47] [PASSED] write
[05:11:47] [PASSED] read
[05:11:47] [PASSED] bookkeep
[05:11:47] ============= [PASSED] test_for_each_unlocked ==============
[05:11:47] ===================== test_get_fences  =====================
[05:11:47] [PASSED] kernel
[05:11:47] [PASSED] write
[05:11:47] [PASSED] read
[05:11:47] [PASSED] bookkeep
[05:11:47] ================= [PASSED] test_get_fences =================
[05:11:47] ================== [PASSED] dma-buf-resv ===================
[05:11:47] ============================================================
[05:11:47] Testing complete. Ran 51 tests: passed: 50, skipped: 1
[05:11:47] Elapsed time: 16.000s total, 1.826s configuring, 8.903s building, 5.261s running

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



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

* RE: [PATCH v8 10/14] drm/i915/display: Read back and compare Wa_14021768792 state
  2026-10-23  5:02 ` [PATCH v8 10/14] drm/i915/display: Read back and compare Wa_14021768792 state Suraj Kandpal
@ 2026-10-23  5:12   ` Golani, Mitulkumar Ajitkumar
  0 siblings, 0 replies; 24+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2026-10-23  5:12 UTC (permalink / raw)
  To: Kandpal, Suraj, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org
  Cc: Nautiyal, Ankit K



> -----Original Message-----
> From: Kandpal, Suraj <suraj.kandpal@intel.com>
> Sent: 23 October 2026 10:32
> To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Golani, Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>;
> Kandpal, Suraj <suraj.kandpal@intel.com>; Nautiyal, Ankit K
> <ankit.k.nautiyal@intel.com>
> Subject: [PATCH v8 10/14] drm/i915/display: Read back and compare
> Wa_14021768792 state
> 
> Add intel_display_can_bypass_m_n_limit() to tell whether Wa_14021768792
> can be used for a given Link M/N ratio, and use it to read
> bypass_m_n_ratio_limit back from the hardware. Compare the flag in
> intel_pipe_config_compare(), so that a mismatch between the computed and
> the read back state of the workaround is caught.
> Unlike the rest of the M/N registers, CHICKEN_TRANS and HDMI_EMP_DATA
> are not double buffered, so the flag has to be compared outside the fastset
> exemption that PIPE_CONF_CHECK_M_N() has for update_m_n.
> Otherwise a seamless M/N update could switch the DDA out of the
> workaround on a live transcoder, with the Link M/N values only following at
> the next MSA.
> 
> Bspec: 49266
> Co-developed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 47 ++++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_display.h |  2 +
>  2 files changed, 49 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index b48f12cc615f..ecc0e5ec181a 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -3537,6 +3537,49 @@ void intel_get_m_n(struct intel_display *display,
>  	m_n->tu = REG_FIELD_GET(TU_SIZE_MASK, intel_de_read(display,
> data_m_reg)) + 1;  }
> 
> +bool intel_display_can_bypass_m_n_limit(struct intel_display *display,
> +					int m_n_ratio,
> +					enum transcoder transcoder)
> +{
> +	if (!intel_display_wa(display, INTEL_DISPLAY_WA_14021768792))
> +		return false;
> +
> +	if (m_n_ratio > 15)
> +		return false;
> +
> +	if (transcoder != TRANSCODER_A)
> +		return false;
> +
> +	return true;
> +}
> +
> +static void bmg_enhanced_tgdda_read(struct intel_crtc *crtc,
> +				    enum transcoder transcoder,
> +				    struct intel_link_m_n *m_n)
> +{
> +	struct intel_display *display = to_intel_display(crtc);
> +	u32 link_m_frac;
> +	int m_n_ratio;
> +
> +	if (!m_n->link_n)
> +		return;
> +
> +	m_n_ratio = DIV_ROUND_UP(m_n->link_m, m_n->link_n);
> +
> +	if (!intel_display_can_bypass_m_n_limit(display, m_n_ratio,
> transcoder))
> +		return;
> +
> +	if (!(intel_de_read(display, CHICKEN_TRANS(display, transcoder)) &
> +	      DP_ENHANCED_TGDDA_ENABLE))
> +		return;
> +
> +	link_m_frac =
> REG_FIELD_GET(HDMI_EMP_DATA_LINK_M_FRAC_MASK,
> +				    intel_de_read(display,
> HDMI_EMP_DATA(display, transcoder)));
> +
> +	if (link_m_frac == m_n->link_m % m_n->link_n)
> +		m_n->bypass_m_n_ratio_limit = true;
> +}
> +
>  void intel_cpu_transcoder_get_m1_n1(struct intel_crtc *crtc,
>  				    enum transcoder transcoder,
>  				    struct intel_link_m_n *m_n)
> @@ -3554,6 +3597,8 @@ void intel_cpu_transcoder_get_m1_n1(struct
> intel_crtc *crtc,
>  		intel_get_m_n(display, m_n,
>  			      PIPE_DATA_M_G4X(pipe),
> PIPE_DATA_N_G4X(pipe),
>  			      PIPE_LINK_M_G4X(pipe),
> PIPE_LINK_N_G4X(pipe));
> +
> +	bmg_enhanced_tgdda_read(crtc, transcoder, m_n);
>  }
> 
>  void intel_cpu_transcoder_get_m2_n2(struct intel_crtc *crtc, @@ -5478,6
> +5523,8 @@ intel_pipe_config_compare(const struct intel_crtc_state
> *current_config,
>  		PIPE_CONF_CHECK_M_N(dp_m2_n2);
>  	}
> 
> +	PIPE_CONF_CHECK_BOOL(dp_m_n.bypass_m_n_ratio_limit);
> +
>  	PIPE_CONF_CHECK_X(output_types);
> 
>  	PIPE_CONF_CHECK_I(framestart_delay);
> diff --git a/drivers/gpu/drm/i915/display/intel_display.h
> b/drivers/gpu/drm/i915/display/intel_display.h
> index 404168f4213b..d53b7b4a80e7 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.h
> +++ b/drivers/gpu/drm/i915/display/intel_display.h
> @@ -525,5 +525,7 @@ bool intel_scanout_needs_vtd_wa(struct intel_display
> *display);  int intel_crtc_num_joined_pipes(const struct intel_crtc_state
> *crtc_state);  void intel_display_compute_link_m_n(u32 *link_m, u32 *link_n,
>  				    int pixel_clock, int link_symbol_clock);
> +bool intel_display_can_bypass_m_n_limit(struct intel_display *display,
> +					int m_n_ratio, enum transcoder

LGTM
Reviewed-by: Mitul Golani<mitulkumar.ajitkumar.golani@intel.com>

> transcoder);
> 
>  #endif
> --
> 2.34.1


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

* RE: [PATCH v8 13/14] drm/i915/dp: Extend intel_dp_can_support_m_n() for BMG M/N bypass
  2026-10-23  5:02 ` [PATCH v8 13/14] drm/i915/dp: Extend intel_dp_can_support_m_n() for BMG M/N bypass Suraj Kandpal
@ 2026-10-23  5:16   ` Golani, Mitulkumar Ajitkumar
  0 siblings, 0 replies; 24+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2026-10-23  5:16 UTC (permalink / raw)
  To: Kandpal, Suraj, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org
  Cc: Nautiyal, Ankit K



> -----Original Message-----
> From: Kandpal, Suraj <suraj.kandpal@intel.com>
> Sent: 23 October 2026 10:32
> To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Golani, Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>;
> Nautiyal, Ankit K <ankit.k.nautiyal@intel.com>; Kandpal, Suraj
> <suraj.kandpal@intel.com>
> Subject: [PATCH v8 13/14] drm/i915/dp: Extend intel_dp_can_support_m_n()
> for BMG M/N bypass
> 
> From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> 
> On BMG platforms, the standard M/N ratio limit of 10 can be bypassed under
> specific conditions, as permitted by hardware capabilities.
> 
> Modify the helper intel_dp_can_support_m_n() to account for this by
> checking whether the platform supports bypassing the limit. The workaround
> is only intended for 128b/132b links, so restrict it to those.
> 
> Put the bypass condition, a UHBR link rate plus
> intel_display_can_bypass_m_n_limit(), into a helper and use it from
> intel_dp_check_m_n_ratio() as well, so that the prediction and the decision
> on the final state cannot drift apart.
> 
> During the mode_valid phase, the check assumes that TRANSCODER_A will
> be used, to allow the mode where the M/N ratio is within the limits for the
> workaround.
> 
> v2:
> -Keep the helper static: the MST mode_valid now goes through the shared
> intel_dp_mode_valid_m_n() rather than calling it directly, so it no longer
> needs to be exported.
> v3:
> -Use the cpu transcoder instead of the pipe, following the change to
> intel_display_can_bypass_m_n_limit(). (Mitul)
> v4:
> -Share the bypass condition with intel_dp_check_m_n_ratio() through
> intel_dp_can_bypass_m_n_limit(). (Mitul) -The helper is exported again, the
> MST mode_valid calls it directly to check the ratio against the maximum BW
> configuration. (Mitul)
> 
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Co-developed-by: Suraj Kandpal <suraj.kandpal@intel.com>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c     | 28 ++++++++++++++++-----
>  drivers/gpu/drm/i915/display/intel_dp.h     |  1 +
>  drivers/gpu/drm/i915/display/intel_dp_mst.c |  2 +-
>  3 files changed, 24 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index 73c67565a329..772006691882 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -1286,10 +1286,20 @@ static int intel_dp_link_m_n_ratio(u32 link_m,
> u32 link_n)
>  	return DIV_ROUND_UP(link_m, link_n);
>  }
> 
> +static bool
> +intel_dp_can_bypass_m_n_limit(struct intel_display *display, int link_rate,
> +			      int m_n_ratio, enum transcoder cpu_transcoder) {
> +	return drm_dp_is_uhbr_rate(link_rate) &&
> +		intel_display_can_bypass_m_n_limit(display, m_n_ratio,
> +cpu_transcoder); }
> +
>  bool intel_dp_can_support_m_n(struct intel_display *display,
> +			      const struct intel_crtc_state *crtc_state,
>  			      int pixel_clock, int link_rate)  {
>  	int max_m_n_ratio = intel_dp_get_max_m_n_ratio(display);
> +	enum transcoder cpu_transcoder = TRANSCODER_A;
>  	u32 link_m, link_n;
>  	int m_n_ratio;
> 
> @@ -1298,7 +1308,13 @@ bool intel_dp_can_support_m_n(struct
> intel_display *display,
> 
>  	m_n_ratio = intel_dp_link_m_n_ratio(link_m, link_n);
> 
> -	return m_n_ratio <= max_m_n_ratio;
> +	if (m_n_ratio <= max_m_n_ratio)
> +		return true;
> +
> +	if (crtc_state)
> +		cpu_transcoder = crtc_state->cpu_transcoder;
> +
> +	return intel_dp_can_bypass_m_n_limit(display, link_rate, m_n_ratio,
> +cpu_transcoder);
>  }
> 
>  void intel_dp_check_m_n_ratio(const struct intel_crtc_state *crtc_state, @@
> -1315,9 +1331,8 @@ void intel_dp_check_m_n_ratio(const struct
> intel_crtc_state *crtc_state,
>  	if (m_n_ratio <= max_m_n_ratio)
>  		return;
> 
> -	if (intel_dp_is_uhbr(crtc_state) &&
> -	    intel_display_can_bypass_m_n_limit(display, m_n_ratio,
> -					       crtc_state->cpu_transcoder)) {
> +	if (intel_dp_can_bypass_m_n_limit(display, crtc_state->port_clock,
> m_n_ratio,
> +					  crtc_state->cpu_transcoder)) {
>  		m_n->bypass_m_n_ratio_limit = true;
>  		drm_dbg_kms(display->drm,
>  			    "Bypassing Link_m/Link_n ratio limit (ratio %d)\n",
> @@ -1388,7 +1403,7 @@ static bool intel_dp_mode_valid_m_n(struct
> intel_dp *intel_dp, int pixel_clock)
>  	intel_dp_link_caps_iter_start(&iter, intel_dp->link.caps, order,
>  				      INTEL_DP_LINK_CAPS_FILTER_ALL);
>  	for_each_dp_link_config(&iter, &link_config) {
> -		if (intel_dp_can_support_m_n(display, m_n_pixel_clock,
> +		if (intel_dp_can_support_m_n(display, NULL,
> m_n_pixel_clock,
>  					     link_config.rate)) {
>  			found = true;
> 
> @@ -2777,7 +2792,8 @@ intel_dp_compute_m_n_ratio_limits(struct intel_dp
> *intel_dp,
> 
>  	intel_dp_link_caps_iter_start(&iter, link_caps, order, limits-
> >link_config_filter);
>  	for_each_dp_link_config(&iter, &link_config) {
> -		if (!intel_dp_can_support_m_n(display, pixel_clock,
> link_config.rate))
> +		if (!intel_dp_can_support_m_n(display, crtc_state, pixel_clock,
> +					      link_config.rate))
>  			continue;
> 
>  		intel_dp_link_caps_filter_add(link_caps, &new_filter,
> &link_config); diff --git a/drivers/gpu/drm/i915/display/intel_dp.h
> b/drivers/gpu/drm/i915/display/intel_dp.h
> index ef5aa28617f0..1f4a3aff9abe 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.h
> +++ b/drivers/gpu/drm/i915/display/intel_dp.h
> @@ -241,6 +241,7 @@ bool intel_dp_joiner_candidate_valid(struct
> intel_connector *connector,
>  u8 intel_dp_as_sdp_transmission_time(void);
> 
>  bool intel_dp_can_support_m_n(struct intel_display *display,
> +			      const struct intel_crtc_state *crtc_state,
>  			      int pixel_clock, int link_rate);
> 
>  int intel_dp_link_init(struct intel_dp *intel_dp); diff --git
> a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 687a12e995c5..ed130df0b615 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -1567,7 +1567,7 @@ mst_connector_mode_valid_ctx(struct
> drm_connector *_connector,
>  					   min_link_bpp_x16,
>  					   bw_overhead_flags);
> 
> -	if (!intel_dp_can_support_m_n(display, mode->clock,
> max_link_clock)) {
> +	if (!intel_dp_can_support_m_n(display, NULL, mode->clock,
> +max_link_clock)) {

LGTM
Reviewed-by: Mitul Golani<mitulkumar.ajitkumar.golani@intel.com>

>  		*status = MODE_CLOCK_HIGH;
>  		return 0;
>  	}
> --
> 2.34.1


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

* Re: [PATCH v8 02/14] drm/i915/dp: Limit M/N ratio for DP
  2026-10-23  5:02 ` [PATCH v8 02/14] drm/i915/dp: Limit M/N ratio for DP Suraj Kandpal
@ 2026-10-23  5:18   ` sashiko-bot
  0 siblings, 0 replies; 24+ messages in thread
From: sashiko-bot @ 2026-10-23  5:18 UTC (permalink / raw)
  To: Suraj Kandpal, intel-gfx, intel-xe

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/i915/dp: intel_dp_test_compute_config() clobbers M/N ratio filter
--

commit 555420da2bc55656b200265b485cbd9bd62d516b
Author: Suraj Kandpal <suraj.kandpal@intel.com>

drm/i915/dp: Limit M/N ratio for DP

This commit restricts DisplayPort link configurations to those where the
ceiling of the Link M/N ratio does not exceed the hardware limit (4 on DG2,
10 on other platforms), enforcing the constraint both in mode_valid and
when computing link configuration limits.

> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index d8c0d9381471d..661a863362ad4 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c

[ ... ]

> @@ -2772,6 +2886,9 @@ intel_dp_compute_config_limits(struct intel_dp *intel_dp,
>  		limits->link_config_filter = new_filter;
>  	}
>  
> +	if (!intel_dp_compute_m_n_ratio_limits(intel_dp, conn_state, crtc_state, limits))
> +		return false;
> +
>  	if (!intel_dp_test_compute_config(connector, crtc_state, limits))
>  		return false;

[Severity: Medium]
Can intel_dp_test_compute_config() clobber the M/N ratio filter that was just
computed by intel_dp_compute_m_n_ratio_limits()?

When intel_dp->compliance.test_type == DP_TEST_LINK_TRAINING,
intel_dp_test_compute_config() calls set_filter_for_link_params() ->
set_filter_for_link_config() in drivers/gpu/drm/i915/display/intel_dp_test.c:

static bool set_filter_for_link_config(struct intel_connector *connector,
				       struct intel_dp_link_caps *link_caps,
				       const struct intel_dp_link_config *link_params,
				       struct link_config_limits *limits)
{
	struct intel_dp_link_caps_filter new_filter = INTEL_DP_LINK_CAPS_FILTER_NONE;

	if (!intel_dp_link_caps_filter_add(link_caps, &new_filter, link_params))
		return false;

	limits->link_config_filter = new_filter;

	return true;
}

Because intel_dp_link_caps_filter_add() only checks
get_allowed_config_filter(link_caps) and ignores limits->link_config_filter,
set_filter_for_link_config() overwrites limits->link_config_filter with a
fresh filter containing the compliance test link configuration even if that
link rate was filtered out by intel_dp_compute_m_n_ratio_limits().

Should intel_dp_compute_m_n_ratio_limits() be called after
intel_dp_test_compute_config(), or should set_filter_for_link_config()
intersect against the existing limits->link_config_filter?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261023050227.2068466-1-suraj.kandpal@intel.com?part=2

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

* RE: [PATCH v8 04/14] drm/i915/dp_mst: Limit M/N ratio for MST
  2026-10-23  5:02 ` [PATCH v8 04/14] drm/i915/dp_mst: Limit M/N ratio for MST Suraj Kandpal
@ 2026-10-23  5:29   ` Golani, Mitulkumar Ajitkumar
  0 siblings, 0 replies; 24+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2026-10-23  5:29 UTC (permalink / raw)
  To: Kandpal, Suraj, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org
  Cc: Nautiyal, Ankit K



> -----Original Message-----
> From: Kandpal, Suraj <suraj.kandpal@intel.com>
> Sent: 23 October 2026 10:32
> To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Golani, Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>;
> Nautiyal, Ankit K <ankit.k.nautiyal@intel.com>; Kandpal, Suraj
> <suraj.kandpal@intel.com>
> Subject: [PATCH v8 04/14] drm/i915/dp_mst: Limit M/N ratio for MST
> 
> From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> 
> The hardware does not support DisplayPort configurations where the ceiling
> of the Link M/Link N ratio exceeds the limit. Enforce this constraint for MST as
> well.
> 
> The compute config path needs no change: MST goes through
> intel_dp_compute_config_limits() too, which pins the link configuration to
> the maximum BW one before the ratio filtering, so a stream whose ratio does
> not fit that configuration is rejected there.
> 
> What is still missing is pruning such modes, so add the check to
> mst_connector_mode_valid_ctx(). MST always runs the link at the maximum
> BW configuration, which mode_valid already uses for the BW check, so check
> the ratio against that configuration as well. Accepting the mode if any
> configuration could satisfy the ratio would let through modes MST then fails
> to compute: on UHBR links the maximum BW configuration has a lower link
> symbol clock than HBR3 or HBR2.
> 
> v2:
> -Drop the checks in the MST link config helpers, redundant now that the
> constraint is applied while computing the link config limits. (Imre) -Share the
> mode_valid helper with SST instead of evaluating the ratio at one link rate,
> since the link symbol clock is not monotonic in the link rate and there is no
> single best case configuration.
> v3:
> -Now that intel_dp_mode_valid_m_n checks for all configs just call that
> (Sashiko)
> v4:
> -Go back to checking the ratio against the maximum BW configuration, which
> is the only one MST uses. Walking all the link configurations accepted modes
> that MST then fails to compute. (Mitul)
> 
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Co-developed-by: Suraj Kandpal <suraj.kandpal@intel.com>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c     | 5 ++---
>  drivers/gpu/drm/i915/display/intel_dp.h     | 3 +++
>  drivers/gpu/drm/i915/display/intel_dp_mst.c | 5 +++++
>  3 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index 3703135f41e2..1e06107627bc 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -1286,9 +1286,8 @@ static int intel_dp_link_m_n_ratio(u32 link_m, u32
> link_n)
>  	return DIV_ROUND_UP(link_m, link_n);
>  }
> 
> -static bool
> -intel_dp_can_support_m_n(struct intel_display *display,
> -			 int pixel_clock, int link_rate)
> +bool intel_dp_can_support_m_n(struct intel_display *display,
> +			      int pixel_clock, int link_rate)
>  {
>  	int max_m_n_ratio = intel_dp_get_max_m_n_ratio(display);
>  	u32 link_m, link_n;
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.h
> b/drivers/gpu/drm/i915/display/intel_dp.h
> index 04fae203bb69..de90296acce9 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.h
> +++ b/drivers/gpu/drm/i915/display/intel_dp.h
> @@ -239,6 +239,9 @@ bool intel_dp_joiner_candidate_valid(struct
> intel_connector *connector,
> 
>  u8 intel_dp_as_sdp_transmission_time(void);
> 
> +bool intel_dp_can_support_m_n(struct intel_display *display,
> +			      int pixel_clock, int link_rate);
> +
>  int intel_dp_link_init(struct intel_dp *intel_dp);  void
> intel_dp_link_cleanup(struct intel_dp *intel_dp);
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 7023619aaaba..ae18817b4f35 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -1565,6 +1565,11 @@ mst_connector_mode_valid_ctx(struct
> drm_connector *_connector,
>  					   min_link_bpp_x16,
>  					   bw_overhead_flags);
> 
> +	if (!intel_dp_can_support_m_n(display, mode->clock,
> max_link_clock)) {
> +		*status = MODE_CLOCK_HIGH;
> +		return 0;
> +	}
> +

LGTM
Reviewed-by: Mitul Golani<mitulkumar.ajitkumar.golani@intel.com>

>  	/*
>  	 * TODO:
>  	 * - Also check if compression would allow for the mode
> --
> 2.34.1


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

* ✓ Xe.CI.BAT: success for Implement Wa_14021768792 to bypass m_n ratio limit (rev12)
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (14 preceding siblings ...)
  2026-10-23  5:11 ` ✓ CI.KUnit: success for Implement Wa_14021768792 to bypass m_n ratio limit (rev12) Patchwork
@ 2026-10-23  5:55 ` Patchwork
  2026-10-23  7:48 ` ✓ Xe.CI.FULL: " Patchwork
  16 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2026-10-23  5:55 UTC (permalink / raw)
  To: Suraj Kandpal; +Cc: intel-xe

[-- Attachment #1: Type: text/plain, Size: 933 bytes --]

== Series Details ==

Series: Implement Wa_14021768792 to bypass m_n ratio limit (rev12)
URL   : https://patchwork.freedesktop.org/series/138256/
State : success

== Summary ==

CI Bug Log - changes from xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f_BAT -> xe-pw-138256v12_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (15 -> 15)
------------------------------

  No changes in participating hosts


Changes
-------

  No changes found


Build changes
-------------

  * IGT: IGT_9159 -> IGT_9160
  * Linux: xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f -> xe-pw-138256v12

  IGT_9159: 9159
  IGT_9160: 9160
  xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f: 55c6bb0b4d006ee415abe9f048014f7bcc90ae6f
  xe-pw-138256v12: 138256v12

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/index.html

[-- Attachment #2: Type: text/html, Size: 1496 bytes --]

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

* ✓ Xe.CI.FULL: success for Implement Wa_14021768792 to bypass m_n ratio limit (rev12)
  2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
                   ` (15 preceding siblings ...)
  2026-10-23  5:55 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-10-23  7:48 ` Patchwork
  16 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2026-10-23  7:48 UTC (permalink / raw)
  To: Suraj Kandpal; +Cc: intel-xe

[-- Attachment #1: Type: text/plain, Size: 43703 bytes --]

== Series Details ==

Series: Implement Wa_14021768792 to bypass m_n ratio limit (rev12)
URL   : https://patchwork.freedesktop.org/series/138256/
State : success

== Summary ==

CI Bug Log - changes from xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f_FULL -> xe-pw-138256v12_FULL
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (3 -> 3)
------------------------------

  No changes in participating hosts

New tests
---------

  New tests have been introduced between xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f_FULL and xe-pw-138256v12_FULL:

### New IGT tests (2) ###

  * igt@xe_oa@tail-address-wrap@oam-2-128k:
    - Statuses : 1 pass(s)
    - Exec time: [0.05] s

  * igt@xe_oa@tail-address-wrap@sag-1-128k:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] s

  

Known issues
------------

  Here are the changes found in xe-pw-138256v12_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@intel_hwmon@hwmon-read:
    - shard-ptl:          NOTRUN -> [SKIP][1] ([Intel XE#7225])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-6/igt@intel_hwmon@hwmon-read.html

  * igt@intel_hwmon@hwmon-write:
    - shard-bmg:          [PASS][2] -> [FAIL][3] ([Intel XE#8583])
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-bmg-5/igt@intel_hwmon@hwmon-write.html
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-4/igt@intel_hwmon@hwmon-write.html

  * igt@kms_atomic_transition@plane-toggle-modeset-transition:
    - shard-bmg:          [PASS][4] -> [FAIL][5] ([Intel XE#8098] / [Intel XE#9561]) +1 other test fail
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-bmg-9/igt@kms_atomic_transition@plane-toggle-modeset-transition.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-8/igt@kms_atomic_transition@plane-toggle-modeset-transition.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-270:
    - shard-bmg:          NOTRUN -> [SKIP][6] ([Intel XE#2327])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-6/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-ptl:          NOTRUN -> [SKIP][7] ([Intel XE#6925])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@linear-16bpp-rotate-90:
    - shard-ptl:          NOTRUN -> [SKIP][8] ([Intel XE#5901]) +2 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-4/igt@kms_big_fb@linear-16bpp-rotate-90.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#7059] / [Intel XE#7085])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-10/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html
    - shard-ptl:          NOTRUN -> [SKIP][10] ([Intel XE#7085])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-3/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-lnl:          [PASS][11] -> [FAIL][12] ([Intel XE#1231])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-lnl-5/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-lnl-2/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#607] / [Intel XE#7361])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-10/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
    - shard-ptl:          NOTRUN -> [SKIP][14] ([Intel XE#5851])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-3/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@y-tiled-addfb-size-overflow:
    - shard-ptl:          NOTRUN -> [SKIP][15] ([Intel XE#5855])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-6/igt@kms_big_fb@y-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#1124]) +1 other test skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-9/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-ptl:          NOTRUN -> [SKIP][17] ([Intel XE#5808]) +9 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-8/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_bw@connected-linear-tiling-2-displays-target-2560x1440p:
    - shard-ptl:          NOTRUN -> [SKIP][18] ([Intel XE#7679])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-7/igt@kms_bw@connected-linear-tiling-2-displays-target-2560x1440p.html

  * igt@kms_bw@linear-tiling-1-displays-target-1920x1080p:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#367])
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-3/igt@kms_bw@linear-tiling-1-displays-target-1920x1080p.html

  * igt@kms_bw@linear-tiling-4-displays-target-3840x2160p:
    - shard-ptl:          NOTRUN -> [SKIP][20] ([Intel XE#367])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-4/igt@kms_bw@linear-tiling-4-displays-target-3840x2160p.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#2887]) +4 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-8/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-b-dp-2:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#2652]) +3 other tests skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-b-dp-2.html

  * igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-mc-ccs:
    - shard-ptl:          NOTRUN -> [SKIP][23] ([Intel XE#5822]) +12 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-8/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-mc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-a-edp-1:
    - shard-ptl:          NOTRUN -> [SKIP][24] ([Intel XE#5823] / [Intel XE#6918]) +4 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-a-edp-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#3432]) +1 other test skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-10/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs.html

  * igt@kms_chamelium_color@ctm-negative:
    - shard-ptl:          NOTRUN -> [SKIP][26] ([Intel XE#5824]) +1 other test skip
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-8/igt@kms_chamelium_color@ctm-negative.html
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#2325] / [Intel XE#7358])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-1/igt@kms_chamelium_color@ctm-negative.html

  * igt@kms_chamelium_edid@dp-edid-change-during-hibernate:
    - shard-ptl:          NOTRUN -> [SKIP][28] ([Intel XE#2252]) +5 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@kms_chamelium_edid@dp-edid-change-during-hibernate.html

  * igt@kms_chamelium_edid@dp-edid-resolution-list:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#2252]) +1 other test skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-1/igt@kms_chamelium_edid@dp-edid-resolution-list.html

  * igt@kms_chamelium_sharpness_filter@filter-basic:
    - shard-ptl:          NOTRUN -> [SKIP][30] ([Intel XE#6507])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-7/igt@kms_chamelium_sharpness_filter@filter-basic.html

  * igt@kms_content_protection@atomic@pipe-a-dp-1:
    - shard-bmg:          NOTRUN -> [FAIL][31] ([Intel XE#3304])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-7/igt@kms_content_protection@atomic@pipe-a-dp-1.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#2390] / [Intel XE#6974])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-10/igt@kms_content_protection@dp-mst-type-1.html
    - shard-ptl:          NOTRUN -> [SKIP][33] ([Intel XE#5832] / [Intel XE#6974])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-4/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@legacy:
    - shard-ptl:          NOTRUN -> [SKIP][34] ([Intel XE#7642]) +2 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-1/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@legacy-hdcp14@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][35] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-1/igt@kms_content_protection@legacy-hdcp14@pipe-a-dp-2.html

  * igt@kms_content_protection@lic-type-0@pipe-a-dp-1:
    - shard-bmg:          NOTRUN -> [FAIL][36] ([Intel XE#3304] / [Intel XE#7374])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-7/igt@kms_content_protection@lic-type-0@pipe-a-dp-1.html

  * igt@kms_content_protection@uevent@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][37] ([Intel XE#6707] / [Intel XE#7439])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-1/igt@kms_content_protection@uevent@pipe-a-dp-2.html

  * igt@kms_cursor_crc@cursor-offscreen-256x85:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#2320])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-3/igt@kms_cursor_crc@cursor-offscreen-256x85.html

  * igt@kms_cursor_crc@cursor-random-128x42:
    - shard-ptl:          NOTRUN -> [SKIP][39] ([Intel XE#5900]) +1 other test skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-3/igt@kms_cursor_crc@cursor-random-128x42.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size:
    - shard-ptl:          NOTRUN -> [SKIP][40] ([Intel XE#5962]) +1 other test skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-ptl:          NOTRUN -> [SKIP][41] ([Intel XE#4302])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-6/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dsc@dsc-with-bpc-bigjoiner:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#8265]) +2 other tests skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-5/igt@kms_dsc@dsc-with-bpc-bigjoiner.html

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-ptl:          NOTRUN -> [SKIP][43] ([Intel XE#5907]) +4 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-5/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_flip@2x-dpms-vs-vblank-race-interruptible:
    - shard-ptl:          NOTRUN -> [SKIP][44] ([Intel XE#2316]) +2 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-4/igt@kms_flip@2x-dpms-vs-vblank-race-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling:
    - shard-ptl:          NOTRUN -> [SKIP][45] ([Intel XE#7178]) +3 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-8/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html
    - shard-bmg:          NOTRUN -> [SKIP][46] ([Intel XE#7178] / [Intel XE#7351])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling:
    - shard-ptl:          NOTRUN -> [SKIP][47] ([Intel XE#5828]) +3 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-3/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling.html

  * igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#7179])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-9/igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x.html
    - shard-ptl:          NOTRUN -> [SKIP][49] ([Intel XE#7179])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-4/igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x.html

  * igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-wc:
    - shard-ptl:          NOTRUN -> [SKIP][50] ([Intel XE#5800] / [Intel XE#6312]) +8 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-6/igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][51] ([Intel XE#4141]) +3 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][52] ([Intel XE#5812]) +56 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-argb161616f-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][53] ([Intel XE#7061] / [Intel XE#7356]) +2 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-7/igt@kms_frontbuffer_tracking@fbc-argb161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#7061] / [Intel XE#7356])
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-offscreen-pri-indfb-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][55] ([Intel XE#6312]) +9 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-8/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-offscreen-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-pri-shrfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][56] ([Intel XE#2311]) +16 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][57] ([Intel XE#2313]) +19 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][58] ([Intel XE#7061]) +1 other test skip
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb565-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][59] ([Intel XE#7865]) +12 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb565-draw-blt.html

  * igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-render:
    - shard-ptl:          NOTRUN -> [SKIP][60] ([Intel XE#7061]) +3 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-4/igt@kms_frontbuffer_tracking@psrhdr-argb161616f-draw-render.html

  * igt@kms_hdmi_audio_bw@audio-bw-hblank80:
    - shard-bmg:          [PASS][61] -> [FAIL][62] ([Intel XE#9313])
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-bmg-6/igt@kms_hdmi_audio_bw@audio-bw-hblank80.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-8/igt@kms_hdmi_audio_bw@audio-bw-hblank80.html

  * igt@kms_hdmi_audio_bw@dpms-audio-recovery:
    - shard-ptl:          NOTRUN -> [SKIP][63] ([Intel XE#9312])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-1/igt@kms_hdmi_audio_bw@dpms-audio-recovery.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-ptl:          NOTRUN -> [SKIP][64] ([Intel XE#6901]) +1 other test skip
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-3/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier:
    - shard-bmg:          NOTRUN -> [SKIP][65] ([Intel XE#7283])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-2/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier.html
    - shard-ptl:          NOTRUN -> [SKIP][66] ([Intel XE#7283]) +2 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier.html

  * igt@kms_plane_lowres@tiling-none@pipe-b-edp-1:
    - shard-ptl:          NOTRUN -> [SKIP][67] ([Intel XE#5844]) +4 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-1/igt@kms_plane_lowres@tiling-none@pipe-b-edp-1.html

  * igt@kms_plane_lowres@tiling-yf:
    - shard-bmg:          NOTRUN -> [SKIP][68] ([Intel XE#2393])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-7/igt@kms_plane_lowres@tiling-yf.html
    - shard-ptl:          NOTRUN -> [SKIP][69] ([Intel XE#5946])
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-5/igt@kms_plane_lowres@tiling-yf.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-b:
    - shard-ptl:          NOTRUN -> [SKIP][70] ([Intel XE#6886]) +9 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-3/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-b.html

  * igt@kms_pm_dc@dc5-psr-suspend-resume:
    - shard-lnl:          [PASS][71] -> [FAIL][72] ([Intel XE#8399])
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-lnl-5/igt@kms_pm_dc@dc5-psr-suspend-resume.html
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-lnl-8/igt@kms_pm_dc@dc5-psr-suspend-resume.html

  * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
    - shard-bmg:          NOTRUN -> [SKIP][73] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836])
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-5/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area:
    - shard-ptl:          NOTRUN -> [SKIP][74] ([Intel XE#7304]) +1 other test skip
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-4/igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
    - shard-bmg:          NOTRUN -> [SKIP][75] ([Intel XE#1489]) +1 other test skip
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf:
    - shard-ptl:          NOTRUN -> [SKIP][76] ([Intel XE#5858] / [Intel XE#7304]) +3 other tests skip
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf@pipe-a-edp-1:
    - shard-ptl:          NOTRUN -> [SKIP][77] ([Intel XE#5858]) +1 other test skip
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf@pipe-a-edp-1.html

  * igt@kms_psr@fbc-pr-sprite-plane-move:
    - shard-ptl:          NOTRUN -> [SKIP][78] ([Intel XE#1406]) +1 other test skip
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-6/igt@kms_psr@fbc-pr-sprite-plane-move.html

  * igt@kms_psr@fbc-psr-basic:
    - shard-bmg:          NOTRUN -> [SKIP][79] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-5/igt@kms_psr@fbc-psr-basic.html

  * igt@kms_psr@fbc-psr2-dpms:
    - shard-ptl:          NOTRUN -> [SKIP][80] ([Intel XE#1406] / [Intel XE#5835]) +1 other test skip
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@kms_psr@fbc-psr2-dpms.html

  * igt@kms_rotation_crc@bad-pixel-format:
    - shard-bmg:          NOTRUN -> [SKIP][81] ([Intel XE#3904] / [Intel XE#7342]) +2 other tests skip
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-1/igt@kms_rotation_crc@bad-pixel-format.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-90:
    - shard-ptl:          NOTRUN -> [SKIP][82] ([Intel XE#5821]) +2 other tests skip
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-5/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html

  * igt@kms_vrr@flipline@pipe-a-edp-1:
    - shard-ptl:          [PASS][83] -> [FAIL][84] ([Intel XE#4227] / [Intel XE#7397]) +1 other test fail
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-ptl-2/igt@kms_vrr@flipline@pipe-a-edp-1.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@kms_vrr@flipline@pipe-a-edp-1.html

  * igt@xe_ccs@vm-bind-fault-mode-decompress:
    - shard-ptl:          NOTRUN -> [SKIP][85] ([Intel XE#7644])
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-6/igt@xe_ccs@vm-bind-fault-mode-decompress.html

  * igt@xe_evict@evict-beng-threads-large-multi-vm:
    - shard-ptl:          NOTRUN -> [SKIP][86] ([Intel XE#5764]) +5 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-7/igt@xe_evict@evict-beng-threads-large-multi-vm.html

  * igt@xe_evict@evict-mixed-many-threads-small:
    - shard-bmg:          NOTRUN -> [INCOMPLETE][87] ([Intel XE#6321] / [Intel XE#8355])
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-9/igt@xe_evict@evict-mixed-many-threads-small.html

  * igt@xe_evict_ccs@evict-overcommit-standalone-instantfree-samefd:
    - shard-ptl:          NOTRUN -> [SKIP][88] ([Intel XE#6144]) +1 other test skip
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-4/igt@xe_evict_ccs@evict-overcommit-standalone-instantfree-samefd.html

  * igt@xe_exec_balancer@once-virtual-rebind:
    - shard-ptl:          NOTRUN -> [SKIP][89] ([Intel XE#7482]) +14 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-1/igt@xe_exec_balancer@once-virtual-rebind.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-bind:
    - shard-bmg:          NOTRUN -> [SKIP][90] ([Intel XE#2322] / [Intel XE#7372])
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-10/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-bind.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind:
    - shard-ptl:          NOTRUN -> [SKIP][91] ([Intel XE#5575] / [Intel XE#7484]) +5 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind.html

  * igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr:
    - shard-bmg:          NOTRUN -> [SKIP][92] ([Intel XE#8374]) +3 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-6/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr.html

  * igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind:
    - shard-ptl:          NOTRUN -> [SKIP][93] ([Intel XE#8374]) +11 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-5/igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind.html

  * igt@xe_exec_multi_queue@max-queues-basic:
    - shard-bmg:          NOTRUN -> [SKIP][94] ([Intel XE#8364]) +12 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-1/igt@xe_exec_multi_queue@max-queues-basic.html

  * igt@xe_exec_multi_queue@one-queue-basic:
    - shard-ptl:          NOTRUN -> [SKIP][95] ([Intel XE#8364]) +20 other tests skip
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-1/igt@xe_exec_multi_queue@one-queue-basic.html

  * igt@xe_exec_reset@multi-queue-cancel:
    - shard-ptl:          NOTRUN -> [SKIP][96] ([Intel XE#8369])
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-6/igt@xe_exec_reset@multi-queue-cancel.html
    - shard-bmg:          NOTRUN -> [SKIP][97] ([Intel XE#8369])
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-6/igt@xe_exec_reset@multi-queue-cancel.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-basic:
    - shard-bmg:          NOTRUN -> [SKIP][98] ([Intel XE#8378]) +2 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-7/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-basic.html

  * igt@xe_exec_threads@threads-multi-queue-shared-vm-basic:
    - shard-ptl:          NOTRUN -> [SKIP][99] ([Intel XE#8378]) +4 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-6/igt@xe_exec_threads@threads-multi-queue-shared-vm-basic.html

  * igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit:
    - shard-ptl:          NOTRUN -> [SKIP][100] ([Intel XE#5775])
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-7/igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit.html

  * igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
    - shard-bmg:          NOTRUN -> [SKIP][101] ([Intel XE#2229])
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-9/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html

  * igt@xe_media_fill@media-fill:
    - shard-bmg:          NOTRUN -> [SKIP][102] ([Intel XE#2459] / [Intel XE#2596] / [Intel XE#7321] / [Intel XE#7453])
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-6/igt@xe_media_fill@media-fill.html
    - shard-ptl:          NOTRUN -> [SKIP][103] ([Intel XE#5830] / [Intel XE#7453])
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-6/igt@xe_media_fill@media-fill.html

  * igt@xe_multigpu_svm@mgpu-coherency-conflict:
    - shard-bmg:          NOTRUN -> [SKIP][104] ([Intel XE#6964]) +1 other test skip
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-10/igt@xe_multigpu_svm@mgpu-coherency-conflict.html
    - shard-ptl:          NOTRUN -> [SKIP][105] ([Intel XE#6964]) +1 other test skip
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-4/igt@xe_multigpu_svm@mgpu-coherency-conflict.html

  * igt@xe_page_reclaim@binds-full-pd:
    - shard-bmg:          NOTRUN -> [SKIP][106] ([Intel XE#7793])
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-1/igt@xe_page_reclaim@binds-full-pd.html
    - shard-ptl:          NOTRUN -> [SKIP][107] ([Intel XE#7793])
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-3/igt@xe_page_reclaim@binds-full-pd.html

  * igt@xe_peer2peer@read:
    - shard-ptl:          NOTRUN -> [SKIP][108] ([Intel XE#6588])
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-7/igt@xe_peer2peer@read.html

  * igt@xe_pm@d3cold-multiple-execs:
    - shard-bmg:          NOTRUN -> [SKIP][109] ([Intel XE#2284] / [Intel XE#7370])
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-4/igt@xe_pm@d3cold-multiple-execs.html
    - shard-ptl:          NOTRUN -> [SKIP][110] ([Intel XE#5741])
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@xe_pm@d3cold-multiple-execs.html

  * igt@xe_pm@s4-basic:
    - shard-ptl:          NOTRUN -> [ABORT][111] ([Intel XE#9362])
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-3/igt@xe_pm@s4-basic.html

  * igt@xe_pm@s4-basic-exec:
    - shard-ptl:          [PASS][112] -> [ABORT][113] ([Intel XE#9362])
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-ptl-8/igt@xe_pm@s4-basic-exec.html
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@xe_pm@s4-basic-exec.html

  * igt@xe_pm_residency@aspm_link_residency:
    - shard-ptl:          NOTRUN -> [SKIP][114] ([Intel XE#7271])
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-2/igt@xe_pm_residency@aspm_link_residency.html

  * igt@xe_query@multigpu-query-invalid-query:
    - shard-bmg:          NOTRUN -> [SKIP][115] ([Intel XE#944]) +1 other test skip
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-4/igt@xe_query@multigpu-query-invalid-query.html

  * igt@xe_query@multigpu-query-oa-units:
    - shard-ptl:          NOTRUN -> [SKIP][116] ([Intel XE#6019]) +2 other tests skip
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-5/igt@xe_query@multigpu-query-oa-units.html

  * igt@xe_sriov_flr@flr-vfs-parallel:
    - shard-bmg:          [PASS][117] -> [FAIL][118] ([Intel XE#6569])
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-bmg-3/igt@xe_sriov_flr@flr-vfs-parallel.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-6/igt@xe_sriov_flr@flr-vfs-parallel.html

  
#### Possible fixes ####

  * igt@kms_hdmi_audio_bw@audio-bw-hblank160:
    - shard-bmg:          [FAIL][119] ([Intel XE#9313]) -> [PASS][120]
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-bmg-5/igt@kms_hdmi_audio_bw@audio-bw-hblank160.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-7/igt@kms_hdmi_audio_bw@audio-bw-hblank160.html

  * igt@kms_hdr@invalid-hdr:
    - shard-bmg:          [SKIP][121] ([Intel XE#1503]) -> [PASS][122]
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-bmg-5/igt@kms_hdr@invalid-hdr.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-2/igt@kms_hdr@invalid-hdr.html

  * igt@kms_vrr@flip-dpms@pipe-a-edp-1:
    - shard-ptl:          [FAIL][123] ([Intel XE#4227] / [Intel XE#7397]) -> [PASS][124] +1 other test pass
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-ptl-8/igt@kms_vrr@flip-dpms@pipe-a-edp-1.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-8/igt@kms_vrr@flip-dpms@pipe-a-edp-1.html

  * igt@xe_exec_threads@threads-hang-userptr-invalidate-race:
    - shard-lnl:          [FAIL][125] ([Intel XE#9096]) -> [PASS][126]
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-lnl-6/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-lnl-4/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html

  * igt@xe_pm@s4-mocs:
    - shard-ptl:          [ABORT][127] ([Intel XE#9362]) -> [PASS][128] +1 other test pass
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-ptl-8/igt@xe_pm@s4-mocs.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-ptl-5/igt@xe_pm@s4-mocs.html

  * igt@xe_pm_residency@gt-c6-freeze@gt0:
    - shard-bmg:          [FAIL][129] ([Intel XE#9254]) -> [PASS][130] +1 other test pass
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-bmg-5/igt@xe_pm_residency@gt-c6-freeze@gt0.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-10/igt@xe_pm_residency@gt-c6-freeze@gt0.html

  
#### Warnings ####

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][131] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][132] ([Intel XE#2426] / [Intel XE#5848])
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1231]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1231
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2459
  [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
  [Intel XE#2596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2596
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4227
  [Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
  [Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
  [Intel XE#5741]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5741
  [Intel XE#5764]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5764
  [Intel XE#5775]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5775
  [Intel XE#5800]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5800
  [Intel XE#5808]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5808
  [Intel XE#5812]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5812
  [Intel XE#5821]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5821
  [Intel XE#5822]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5822
  [Intel XE#5823]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5823
  [Intel XE#5824]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5824
  [Intel XE#5828]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5828
  [Intel XE#5830]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5830
  [Intel XE#5832]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5832
  [Intel XE#5835]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5835
  [Intel XE#5844]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5844
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#5851]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5851
  [Intel XE#5855]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5855
  [Intel XE#5858]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5858
  [Intel XE#5900]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5900
  [Intel XE#5901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5901
  [Intel XE#5907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5907
  [Intel XE#5946]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5946
  [Intel XE#5962]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5962
  [Intel XE#6019]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6019
  [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
  [Intel XE#6144]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6144
  [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
  [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
  [Intel XE#6507]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6507
  [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
  [Intel XE#6588]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6588
  [Intel XE#6707]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6707
  [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
  [Intel XE#6901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6901
  [Intel XE#6918]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6918
  [Intel XE#6925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6925
  [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
  [Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
  [Intel XE#7225]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7225
  [Intel XE#7271]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7271
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
  [Intel XE#7321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7321
  [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
  [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
  [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
  [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
  [Intel XE#7361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7361
  [Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
  [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
  [Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
  [Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383
  [Intel XE#7397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7397
  [Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
  [Intel XE#7439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7439
  [Intel XE#7453]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7453
  [Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
  [Intel XE#7484]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7484
  [Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
  [Intel XE#7644]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7644
  [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
  [Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
  [Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
  [Intel XE#8098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8098
  [Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
  [Intel XE#8355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8355
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
  [Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
  [Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
  [Intel XE#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399
  [Intel XE#8583]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8583
  [Intel XE#9096]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9096
  [Intel XE#9254]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9254
  [Intel XE#9312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9312
  [Intel XE#9313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9313
  [Intel XE#9362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9362
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [Intel XE#9561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9561


Build changes
-------------

  * IGT: IGT_9159 -> IGT_9160
  * Linux: xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f -> xe-pw-138256v12

  IGT_9159: 9159
  IGT_9160: 9160
  xe-6001-55c6bb0b4d006ee415abe9f048014f7bcc90ae6f: 55c6bb0b4d006ee415abe9f048014f7bcc90ae6f
  xe-pw-138256v12: 138256v12

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-138256v12/index.html

[-- Attachment #2: Type: text/html, Size: 48576 bytes --]

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

end of thread, other threads:[~2026-10-23  7:48 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-23  5:02 [PATCH v8 00/14] Implement Wa_14021768792 to bypass m_n ratio limit Suraj Kandpal
2026-10-23  5:02 ` [PATCH v8 01/14] drm/i915/display: Add helper to compute link M/N ratio for reuse Suraj Kandpal
2026-10-23  5:02 ` [PATCH v8 02/14] drm/i915/dp: Limit M/N ratio for DP Suraj Kandpal
2026-10-23  5:18   ` sashiko-bot
2026-10-23  5:02 ` [PATCH v8 03/14] drm/i915/display_wa: Add support for Wa_14014191401 Suraj Kandpal
2026-10-23  5:02 ` [PATCH v8 04/14] drm/i915/dp_mst: Limit M/N ratio for MST Suraj Kandpal
2026-10-23  5:29   ` Golani, Mitulkumar Ajitkumar
2026-10-23  5:02 ` [PATCH v8 05/14] drm/i915/dp: Add M/N ratio check for DP link config Suraj Kandpal
2026-10-23  5:02 ` [PATCH v8 06/14] drm/i915/display: Add bits for link_n_extended for DISPLAY >= 14 Suraj Kandpal
2026-10-23  5:02 ` [PATCH v8 07/14] drm/i915/display_wa: Add support for Wa_14021768792 Suraj Kandpal
2026-10-23  5:02 ` [PATCH v8 08/14] drm/i915/display: Add bits for Wa_14021768792 for linkm/n ratio > 10 Suraj Kandpal
2026-10-23  5:09   ` Golani, Mitulkumar Ajitkumar
2026-10-23  5:02 ` [PATCH v8 09/14] drm/i915/display: Program " Suraj Kandpal
2026-10-23  5:11   ` Golani, Mitulkumar Ajitkumar
2026-10-23  5:02 ` [PATCH v8 10/14] drm/i915/display: Read back and compare Wa_14021768792 state Suraj Kandpal
2026-10-23  5:12   ` Golani, Mitulkumar Ajitkumar
2026-10-23  5:02 ` [PATCH v8 11/14] drm/i915/display: Dump bypass_m_n_ratio_limit in the crtc state dump Suraj Kandpal
2026-10-23  5:02 ` [PATCH v8 12/14] drm/i915/display: Implement Wa_14021768792 for BMG DP for link_m/n ratio > 10 Suraj Kandpal
2026-10-23  5:02 ` [PATCH v8 13/14] drm/i915/dp: Extend intel_dp_can_support_m_n() for BMG M/N bypass Suraj Kandpal
2026-10-23  5:16   ` Golani, Mitulkumar Ajitkumar
2026-10-23  5:02 ` [PATCH v8 14/14] drm/i915/dp: Bump the max Link M/N ratio to 22 for DISPLAY_VER >= 35 Suraj Kandpal
2026-10-23  5:11 ` ✓ CI.KUnit: success for Implement Wa_14021768792 to bypass m_n ratio limit (rev12) Patchwork
2026-10-23  5:55 ` ✓ Xe.CI.BAT: " Patchwork
2026-10-23  7:48 ` ✓ Xe.CI.FULL: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox