intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/i915/hdcp: call HDCP GSC hook via parent interface
@ 2025-11-25 17:17 Jani Nikula
  2025-11-25 17:17 ` [PATCH 1/2] drm/i915/hdcp: move i915 specific HDCP GSC implementation to i915 Jani Nikula
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Jani Nikula @ 2025-11-25 17:17 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, Suraj Kandpal

Move more stuff to the parent interface. HDCP GSC is different for both
i915 and xe, add it to the interface.

Jani Nikula (2):
  drm/i915/hdcp: move i915 specific HDCP GSC implementation to i915
  drm/{i915,xe}/hdcp: use parent interface for HDCP GSC calls

 drivers/gpu/drm/i915/Makefile                 |  5 +-
 drivers/gpu/drm/i915/display/intel_hdcp.c     |  4 +-
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.h | 22 ------
 .../drm/i915/display/intel_hdcp_gsc_message.c | 78 +++++++++----------
 drivers/gpu/drm/i915/display/intel_parent.c   | 24 ++++++
 drivers/gpu/drm/i915/display/intel_parent.h   | 10 +++
 drivers/gpu/drm/i915/i915_driver.c            |  2 +
 .../intel_hdcp_gsc.c => i915_hdcp_gsc.c}      | 22 ++++--
 drivers/gpu/drm/i915/i915_hdcp_gsc.h          |  9 +++
 drivers/gpu/drm/xe/display/xe_display.c       |  2 +
 drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      | 25 ++++--
 drivers/gpu/drm/xe/display/xe_hdcp_gsc.h      |  9 +++
 include/drm/intel/display_parent_interface.h  | 13 ++++
 13 files changed, 143 insertions(+), 82 deletions(-)
 delete mode 100644 drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
 rename drivers/gpu/drm/i915/{display/intel_hdcp_gsc.c => i915_hdcp_gsc.c} (89%)
 create mode 100644 drivers/gpu/drm/i915/i915_hdcp_gsc.h
 create mode 100644 drivers/gpu/drm/xe/display/xe_hdcp_gsc.h

-- 
2.47.3


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

* [PATCH 1/2] drm/i915/hdcp: move i915 specific HDCP GSC implementation to i915
  2025-11-25 17:17 [PATCH 0/2] drm/i915/hdcp: call HDCP GSC hook via parent interface Jani Nikula
@ 2025-11-25 17:17 ` Jani Nikula
  2025-11-28  5:57   ` Kandpal, Suraj
  2025-11-25 17:17 ` [PATCH 2/2] drm/{i915, xe}/hdcp: use parent interface for HDCP GSC calls Jani Nikula
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Jani Nikula @ 2025-11-25 17:17 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, Suraj Kandpal

The HDCP GSC implementation is different for both i915 and xe. Move the
i915 specific implementation from display to i915 core.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/Makefile                                | 5 ++++-
 .../drm/i915/{display/intel_hdcp_gsc.c => i915_hdcp_gsc.c}   | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)
 rename drivers/gpu/drm/i915/{display/intel_hdcp_gsc.c => i915_hdcp_gsc.c} (99%)

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 2ff8938b3a7c..b2250432ae98 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -74,6 +74,10 @@ i915-$(CONFIG_DEBUG_FS) += \
 i915-$(CONFIG_PERF_EVENTS) += \
 	i915_pmu.o
 
+# core display adaptation
+i915-y += \
+	i915_hdcp_gsc.o
+
 # "Graphics Technology" (aka we talk to the gpu)
 gt-y += \
 	gt/gen2_engine_cs.o \
@@ -277,7 +281,6 @@ i915-y += \
 	display/intel_frontbuffer.o \
 	display/intel_global_state.o \
 	display/intel_hdcp.o \
-	display/intel_hdcp_gsc.o \
 	display/intel_hdcp_gsc_message.o \
 	display/intel_hotplug.o \
 	display/intel_hotplug_irq.o \
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c b/drivers/gpu/drm/i915/i915_hdcp_gsc.c
similarity index 99%
rename from drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
rename to drivers/gpu/drm/i915/i915_hdcp_gsc.c
index 3e7b480ee9f1..38df5318e13a 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
+++ b/drivers/gpu/drm/i915/i915_hdcp_gsc.c
@@ -6,11 +6,11 @@
 #include <drm/drm_print.h>
 #include <drm/intel/i915_hdcp_interface.h>
 
+#include "display/intel_hdcp_gsc.h"
 #include "gem/i915_gem_region.h"
 #include "gt/intel_gt.h"
 #include "gt/uc/intel_gsc_uc_heci_cmd_submit.h"
 #include "i915_drv.h"
-#include "intel_hdcp_gsc.h"
 
 struct intel_hdcp_gsc_context {
 	struct drm_i915_private *i915;
-- 
2.47.3


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

* [PATCH 2/2] drm/{i915, xe}/hdcp: use parent interface for HDCP GSC calls
  2025-11-25 17:17 [PATCH 0/2] drm/i915/hdcp: call HDCP GSC hook via parent interface Jani Nikula
  2025-11-25 17:17 ` [PATCH 1/2] drm/i915/hdcp: move i915 specific HDCP GSC implementation to i915 Jani Nikula
@ 2025-11-25 17:17 ` Jani Nikula
  2025-11-28  6:02   ` Kandpal, Suraj
  2025-11-25 18:33 ` ✓ i915.CI.BAT: success for drm/i915/hdcp: call HDCP GSC hook via parent interface Patchwork
  2025-11-26  8:33 ` ✓ i915.CI.Full: " Patchwork
  3 siblings, 1 reply; 8+ messages in thread
From: Jani Nikula @ 2025-11-25 17:17 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, Suraj Kandpal

The HDCP GSC implementation is different for both i915 and xe. Add it to
the display parent interface, and call the hooks via the parent
interface.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_hdcp.c     |  4 +-
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.h | 22 ------
 .../drm/i915/display/intel_hdcp_gsc_message.c | 78 +++++++++----------
 drivers/gpu/drm/i915/display/intel_parent.c   | 24 ++++++
 drivers/gpu/drm/i915/display/intel_parent.h   | 10 +++
 drivers/gpu/drm/i915/i915_driver.c            |  2 +
 drivers/gpu/drm/i915/i915_hdcp_gsc.c          | 22 ++++--
 drivers/gpu/drm/i915/i915_hdcp_gsc.h          |  9 +++
 drivers/gpu/drm/xe/display/xe_display.c       |  2 +
 drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      | 25 ++++--
 drivers/gpu/drm/xe/display/xe_hdcp_gsc.h      |  9 +++
 include/drm/intel/display_parent_interface.h  | 13 ++++
 12 files changed, 139 insertions(+), 81 deletions(-)
 delete mode 100644 drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
 create mode 100644 drivers/gpu/drm/i915/i915_hdcp_gsc.h
 create mode 100644 drivers/gpu/drm/xe/display/xe_hdcp_gsc.h

diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 5e1a96223a9c..7114fc405c29 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -29,10 +29,10 @@
 #include "intel_display_types.h"
 #include "intel_dp_mst.h"
 #include "intel_hdcp.h"
-#include "intel_hdcp_gsc.h"
 #include "intel_hdcp_gsc_message.h"
 #include "intel_hdcp_regs.h"
 #include "intel_hdcp_shim.h"
+#include "intel_parent.h"
 #include "intel_pcode.h"
 #include "intel_step.h"
 
@@ -258,7 +258,7 @@ static bool intel_hdcp2_prerequisite(struct intel_connector *connector)
 
 	/* If MTL+ make sure gsc is loaded and proxy is setup */
 	if (USE_HDCP_GSC(display)) {
-		if (!intel_hdcp_gsc_check_status(display->drm))
+		if (!intel_parent_hdcp_gsc_check_status(display))
 			return false;
 	}
 
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
deleted file mode 100644
index 9305c14aaffe..000000000000
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/*
- * Copyright © 2023 Intel Corporation
- */
-
-#ifndef __INTEL_HDCP_GSC_H__
-#define __INTEL_HDCP_GSC_H__
-
-#include <linux/types.h>
-
-struct drm_device;
-struct intel_hdcp_gsc_context;
-
-ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
-				void *msg_in, size_t msg_in_len,
-				void *msg_out, size_t msg_out_len);
-bool intel_hdcp_gsc_check_status(struct drm_device *drm);
-
-struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct drm_device *drm);
-void intel_hdcp_gsc_context_free(struct intel_hdcp_gsc_context *gsc_context);
-
-#endif /* __INTEL_HDCP_GCS_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
index 98967bb148e3..781667b710b4 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
@@ -10,8 +10,8 @@
 
 #include "intel_display_core.h"
 #include "intel_display_types.h"
-#include "intel_hdcp_gsc.h"
 #include "intel_hdcp_gsc_message.h"
+#include "intel_parent.h"
 
 static int
 intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,
@@ -44,10 +44,9 @@ intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,
 	session_init_in.port.attached_transcoder = (u8)data->hdcp_transcoder;
 	session_init_in.protocol = data->protocol;
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, &session_init_in,
-				       sizeof(session_init_in),
-				       &session_init_out,
-				       sizeof(session_init_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      &session_init_in, sizeof(session_init_in),
+					      &session_init_out, sizeof(session_init_out));
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
@@ -106,10 +105,9 @@ intel_hdcp_gsc_verify_receiver_cert_prepare_km(struct device *dev,
 	memcpy(verify_rxcert_in.r_rx, &rx_cert->r_rx, HDCP_2_2_RRX_LEN);
 	memcpy(verify_rxcert_in.rx_caps, rx_cert->rx_caps, HDCP_2_2_RXCAPS_LEN);
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, &verify_rxcert_in,
-				       sizeof(verify_rxcert_in),
-				       &verify_rxcert_out,
-				       sizeof(verify_rxcert_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      &verify_rxcert_in, sizeof(verify_rxcert_in),
+					      &verify_rxcert_out, sizeof(verify_rxcert_out));
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed: %zd\n", byte);
 		return byte;
@@ -169,10 +167,9 @@ intel_hdcp_gsc_verify_hprime(struct device *dev, struct hdcp_port_data *data,
 	memcpy(send_hprime_in.h_prime, rx_hprime->h_prime,
 	       HDCP_2_2_H_PRIME_LEN);
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, &send_hprime_in,
-				       sizeof(send_hprime_in),
-				       &send_hprime_out,
-				       sizeof(send_hprime_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      &send_hprime_in, sizeof(send_hprime_in),
+					      &send_hprime_out, sizeof(send_hprime_out));
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
@@ -220,10 +217,9 @@ intel_hdcp_gsc_store_pairing_info(struct device *dev, struct hdcp_port_data *dat
 	memcpy(pairing_info_in.e_kh_km, pairing_info->e_kh_km,
 	       HDCP_2_2_E_KH_KM_LEN);
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, &pairing_info_in,
-				       sizeof(pairing_info_in),
-				       &pairing_info_out,
-				       sizeof(pairing_info_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      &pairing_info_in, sizeof(pairing_info_in),
+					      &pairing_info_out, sizeof(pairing_info_out));
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
@@ -269,8 +265,9 @@ intel_hdcp_gsc_initiate_locality_check(struct device *dev,
 	lc_init_in.port.physical_port = (u8)data->hdcp_ddi;
 	lc_init_in.port.attached_transcoder = (u8)data->hdcp_transcoder;
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, &lc_init_in, sizeof(lc_init_in),
-				       &lc_init_out, sizeof(lc_init_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      &lc_init_in, sizeof(lc_init_in),
+					      &lc_init_out, sizeof(lc_init_out));
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
@@ -321,10 +318,9 @@ intel_hdcp_gsc_verify_lprime(struct device *dev, struct hdcp_port_data *data,
 	memcpy(verify_lprime_in.l_prime, rx_lprime->l_prime,
 	       HDCP_2_2_L_PRIME_LEN);
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, &verify_lprime_in,
-				       sizeof(verify_lprime_in),
-				       &verify_lprime_out,
-				       sizeof(verify_lprime_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      &verify_lprime_in, sizeof(verify_lprime_in),
+					      &verify_lprime_out, sizeof(verify_lprime_out));
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
@@ -370,8 +366,9 @@ intel_hdcp_gsc_get_session_key(struct device *dev,
 	get_skey_in.port.physical_port = (u8)data->hdcp_ddi;
 	get_skey_in.port.attached_transcoder = (u8)data->hdcp_transcoder;
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, &get_skey_in, sizeof(get_skey_in),
-				       &get_skey_out, sizeof(get_skey_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      &get_skey_in, sizeof(get_skey_in),
+					      &get_skey_out, sizeof(get_skey_out));
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
@@ -434,10 +431,9 @@ intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev,
 	memcpy(verify_repeater_in.receiver_ids, rep_topology->receiver_ids,
 	       HDCP_2_2_RECEIVER_IDS_MAX_LEN);
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, &verify_repeater_in,
-				       sizeof(verify_repeater_in),
-				       &verify_repeater_out,
-				       sizeof(verify_repeater_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      &verify_repeater_in, sizeof(verify_repeater_in),
+					      &verify_repeater_out, sizeof(verify_repeater_out));
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
@@ -504,9 +500,9 @@ intel_hdcp_gsc_verify_mprime(struct device *dev,
 
 	verify_mprime_in->k = cpu_to_be16(data->k);
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, verify_mprime_in, cmd_size,
-				       &verify_mprime_out,
-				       sizeof(verify_mprime_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      verify_mprime_in, cmd_size,
+					      &verify_mprime_out, sizeof(verify_mprime_out));
 	kfree(verify_mprime_in);
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
@@ -552,10 +548,9 @@ static int intel_hdcp_gsc_enable_authentication(struct device *dev,
 	enable_auth_in.port.attached_transcoder = (u8)data->hdcp_transcoder;
 	enable_auth_in.stream_type = data->streams[0].stream_type;
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, &enable_auth_in,
-				       sizeof(enable_auth_in),
-				       &enable_auth_out,
-				       sizeof(enable_auth_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      &enable_auth_in, sizeof(enable_auth_in),
+					      &enable_auth_out, sizeof(enable_auth_out));
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
@@ -599,10 +594,9 @@ intel_hdcp_gsc_close_session(struct device *dev, struct hdcp_port_data *data)
 	session_close_in.port.physical_port = (u8)data->hdcp_ddi;
 	session_close_in.port.attached_transcoder = (u8)data->hdcp_transcoder;
 
-	byte = intel_hdcp_gsc_msg_send(gsc_context, &session_close_in,
-				       sizeof(session_close_in),
-				       &session_close_out,
-				       sizeof(session_close_out));
+	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
+					      &session_close_in, sizeof(session_close_in),
+					      &session_close_out, sizeof(session_close_out));
 	if (byte < 0) {
 		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed. %zd\n", byte);
 		return byte;
@@ -645,7 +639,7 @@ int intel_hdcp_gsc_init(struct intel_display *display)
 
 	mutex_lock(&display->hdcp.hdcp_mutex);
 
-	gsc_context = intel_hdcp_gsc_context_alloc(display->drm);
+	gsc_context = intel_parent_hdcp_gsc_context_alloc(display);
 	if (IS_ERR(gsc_context)) {
 		ret = PTR_ERR(gsc_context);
 		kfree(arbiter);
@@ -665,7 +659,7 @@ int intel_hdcp_gsc_init(struct intel_display *display)
 
 void intel_hdcp_gsc_fini(struct intel_display *display)
 {
-	intel_hdcp_gsc_context_free(display->hdcp.gsc_context);
+	intel_parent_hdcp_gsc_context_free(display, display->hdcp.gsc_context);
 	display->hdcp.gsc_context = NULL;
 	kfree(display->hdcp.arbiter);
 	display->hdcp.arbiter = NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_parent.c b/drivers/gpu/drm/i915/display/intel_parent.c
index 27c7ef34ce48..2ea310cc3509 100644
--- a/drivers/gpu/drm/i915/display/intel_parent.c
+++ b/drivers/gpu/drm/i915/display/intel_parent.c
@@ -22,6 +22,30 @@
 #include "intel_display_core.h"
 #include "intel_parent.h"
 
+ssize_t intel_parent_hdcp_gsc_msg_send(struct intel_display *display,
+				       struct intel_hdcp_gsc_context *gsc_context,
+				       void *msg_in, size_t msg_in_len,
+				       void *msg_out, size_t msg_out_len)
+{
+	return display->parent->hdcp->gsc_msg_send(gsc_context, msg_in, msg_in_len, msg_out, msg_out_len);
+}
+
+bool intel_parent_hdcp_gsc_check_status(struct intel_display *display)
+{
+	return display->parent->hdcp->gsc_check_status(display->drm);
+}
+
+struct intel_hdcp_gsc_context *intel_parent_hdcp_gsc_context_alloc(struct intel_display *display)
+{
+	return display->parent->hdcp->gsc_context_alloc(display->drm);
+}
+
+void intel_parent_hdcp_gsc_context_free(struct intel_display *display,
+					struct intel_hdcp_gsc_context *gsc_context)
+{
+	display->parent->hdcp->gsc_context_free(gsc_context);
+}
+
 bool intel_parent_irq_enabled(struct intel_display *display)
 {
 	return display->parent->irq->enabled(display->drm);
diff --git a/drivers/gpu/drm/i915/display/intel_parent.h b/drivers/gpu/drm/i915/display/intel_parent.h
index a8ca40b57ea9..8f91a6f75c53 100644
--- a/drivers/gpu/drm/i915/display/intel_parent.h
+++ b/drivers/gpu/drm/i915/display/intel_parent.h
@@ -8,6 +8,16 @@
 
 struct dma_fence;
 struct intel_display;
+struct intel_hdcp_gsc_context;
+
+ssize_t intel_parent_hdcp_gsc_msg_send(struct intel_display *display,
+				       struct intel_hdcp_gsc_context *gsc_context,
+				       void *msg_in, size_t msg_in_len,
+				       void *msg_out, size_t msg_out_len);
+bool intel_parent_hdcp_gsc_check_status(struct intel_display *display);
+struct intel_hdcp_gsc_context *intel_parent_hdcp_gsc_context_alloc(struct intel_display *display);
+void intel_parent_hdcp_gsc_context_free(struct intel_display *display,
+					struct intel_hdcp_gsc_context *gsc_context);
 
 bool intel_parent_irq_enabled(struct intel_display *display);
 void intel_parent_irq_synchronize(struct intel_display *display);
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index db0dd25f734d..d98839427ef9 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -96,6 +96,7 @@
 #include "i915_file_private.h"
 #include "i915_getparam.h"
 #include "i915_gmch.h"
+#include "i915_hdcp_gsc.h"
 #include "i915_hwmon.h"
 #include "i915_ioc32.h"
 #include "i915_ioctl.h"
@@ -757,6 +758,7 @@ static void fence_priority_display(struct dma_fence *fence)
 }
 
 static const struct intel_display_parent_interface parent = {
+	.hdcp = &i915_display_hdcp_interface,
 	.rpm = &i915_display_rpm_interface,
 	.irq = &i915_display_irq_interface,
 	.rps = &i915_display_rps_interface,
diff --git a/drivers/gpu/drm/i915/i915_hdcp_gsc.c b/drivers/gpu/drm/i915/i915_hdcp_gsc.c
index 38df5318e13a..9906da2aef1c 100644
--- a/drivers/gpu/drm/i915/i915_hdcp_gsc.c
+++ b/drivers/gpu/drm/i915/i915_hdcp_gsc.c
@@ -4,13 +4,14 @@
  */
 
 #include <drm/drm_print.h>
+#include <drm/intel/display_parent_interface.h>
 #include <drm/intel/i915_hdcp_interface.h>
 
-#include "display/intel_hdcp_gsc.h"
 #include "gem/i915_gem_region.h"
 #include "gt/intel_gt.h"
 #include "gt/uc/intel_gsc_uc_heci_cmd_submit.h"
 #include "i915_drv.h"
+#include "i915_hdcp_gsc.h"
 
 struct intel_hdcp_gsc_context {
 	struct drm_i915_private *i915;
@@ -19,7 +20,7 @@ struct intel_hdcp_gsc_context {
 	void *hdcp_cmd_out;
 };
 
-bool intel_hdcp_gsc_check_status(struct drm_device *drm)
+static bool intel_hdcp_gsc_check_status(struct drm_device *drm)
 {
 	struct drm_i915_private *i915 = to_i915(drm);
 	struct intel_gt *gt = i915->media_gt;
@@ -87,7 +88,7 @@ static int intel_hdcp_gsc_initialize_message(struct drm_i915_private *i915,
 	return err;
 }
 
-struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct drm_device *drm)
+static struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct drm_device *drm)
 {
 	struct drm_i915_private *i915 = to_i915(drm);
 	struct intel_hdcp_gsc_context *gsc_context;
@@ -111,7 +112,7 @@ struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct drm_device *d
 	return gsc_context;
 }
 
-void intel_hdcp_gsc_context_free(struct intel_hdcp_gsc_context *gsc_context)
+static void intel_hdcp_gsc_context_free(struct intel_hdcp_gsc_context *gsc_context)
 {
 	if (!gsc_context)
 		return;
@@ -168,9 +169,9 @@ static int intel_gsc_send_sync(struct drm_i915_private *i915,
  * gsc cs memory header as stated in specs after which the normal HDCP payload
  * will follow
  */
-ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
-				void *msg_in, size_t msg_in_len,
-				void *msg_out, size_t msg_out_len)
+static ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
+				       void *msg_in, size_t msg_in_len,
+				       void *msg_out, size_t msg_out_len)
 {
 	struct drm_i915_private *i915 = gsc_context->i915;
 	struct intel_gt *gt = i915->media_gt;
@@ -237,3 +238,10 @@ ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
 err:
 	return ret;
 }
+
+const struct intel_display_hdcp_interface i915_display_hdcp_interface = {
+	.gsc_msg_send = intel_hdcp_gsc_msg_send,
+	.gsc_check_status = intel_hdcp_gsc_check_status,
+	.gsc_context_alloc = intel_hdcp_gsc_context_alloc,
+	.gsc_context_free = intel_hdcp_gsc_context_free,
+};
diff --git a/drivers/gpu/drm/i915/i915_hdcp_gsc.h b/drivers/gpu/drm/i915/i915_hdcp_gsc.h
new file mode 100644
index 000000000000..e0b562cfcde3
--- /dev/null
+++ b/drivers/gpu/drm/i915/i915_hdcp_gsc.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: MIT */
+/* Copyright © 2025 Intel Corporation */
+
+#ifndef __I915_HDCP_GSC_H__
+#define __I915_HDCP_GSC_H__
+
+extern const struct intel_display_hdcp_interface i915_display_hdcp_interface;
+
+#endif /* __I915_HDCP_GSC_H__ */
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 793115077615..9d2aa69ea428 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -37,6 +37,7 @@
 #include "skl_watermark.h"
 #include "xe_display_rpm.h"
 #include "xe_module.h"
+#include "xe_hdcp_gsc.h"
 
 /* Ensure drm and display members are placed properly. */
 INTEL_DISPLAY_MEMBER_STATIC_ASSERT(struct xe_device, drm, display);
@@ -534,6 +535,7 @@ static const struct intel_display_irq_interface xe_display_irq_interface = {
 };
 
 static const struct intel_display_parent_interface parent = {
+	.hdcp = &xe_display_hdcp_interface,
 	.rpm = &xe_display_rpm_interface,
 	.irq = &xe_display_irq_interface,
 };
diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
index 71d21fde1736..07acae121aa7 100644
--- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
+++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
@@ -3,18 +3,20 @@
  * Copyright 2023, Intel Corporation.
  */
 
+#include <linux/delay.h>
+
 #include <drm/drm_print.h>
+#include <drm/intel/display_parent_interface.h>
 #include <drm/intel/i915_hdcp_interface.h>
-#include <linux/delay.h>
 
 #include "abi/gsc_command_header_abi.h"
-#include "intel_hdcp_gsc.h"
 #include "xe_bo.h"
 #include "xe_device.h"
 #include "xe_device_types.h"
 #include "xe_force_wake.h"
 #include "xe_gsc_proxy.h"
 #include "xe_gsc_submit.h"
+#include "xe_hdcp_gsc.h"
 #include "xe_map.h"
 #include "xe_pm.h"
 #include "xe_uc_fw.h"
@@ -30,7 +32,7 @@ struct intel_hdcp_gsc_context {
 
 #define HDCP_GSC_HEADER_SIZE sizeof(struct intel_gsc_mtl_header)
 
-bool intel_hdcp_gsc_check_status(struct drm_device *drm)
+static bool intel_hdcp_gsc_check_status(struct drm_device *drm)
 {
 	struct xe_device *xe = to_xe_device(drm);
 	struct xe_tile *tile = xe_device_get_root_tile(xe);
@@ -87,7 +89,7 @@ static int intel_hdcp_gsc_initialize_message(struct xe_device *xe,
 	return ret;
 }
 
-struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct drm_device *drm)
+static struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct drm_device *drm)
 {
 	struct xe_device *xe = to_xe_device(drm);
 	struct intel_hdcp_gsc_context *gsc_context;
@@ -111,7 +113,7 @@ struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct drm_device *d
 	return gsc_context;
 }
 
-void intel_hdcp_gsc_context_free(struct intel_hdcp_gsc_context *gsc_context)
+static void intel_hdcp_gsc_context_free(struct intel_hdcp_gsc_context *gsc_context)
 {
 	if (!gsc_context)
 		return;
@@ -146,9 +148,9 @@ static int xe_gsc_send_sync(struct xe_device *xe,
 	return ret;
 }
 
-ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
-				void *msg_in, size_t msg_in_len,
-				void *msg_out, size_t msg_out_len)
+static ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
+				       void *msg_in, size_t msg_in_len,
+				       void *msg_out, size_t msg_out_len)
 {
 	struct xe_device *xe = gsc_context->xe;
 	const size_t max_msg_size = PAGE_SIZE - HDCP_GSC_HEADER_SIZE;
@@ -198,3 +200,10 @@ ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
 
 	return ret;
 }
+
+const struct intel_display_hdcp_interface xe_display_hdcp_interface = {
+	.gsc_msg_send = intel_hdcp_gsc_msg_send,
+	.gsc_check_status = intel_hdcp_gsc_check_status,
+	.gsc_context_alloc = intel_hdcp_gsc_context_alloc,
+	.gsc_context_free = intel_hdcp_gsc_context_free,
+};
diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.h b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.h
new file mode 100644
index 000000000000..c1062e4b62f7
--- /dev/null
+++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: MIT */
+/* Copyright © 2025 Intel Corporation */
+
+#ifndef __XE_HDCP_GSC_H__
+#define __XE_HDCP_GSC_H__
+
+extern const struct intel_display_hdcp_interface xe_display_hdcp_interface;
+
+#endif
diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h
index 4135d1e1a67e..61d1b22adc83 100644
--- a/include/drm/intel/display_parent_interface.h
+++ b/include/drm/intel/display_parent_interface.h
@@ -8,6 +8,7 @@
 
 struct dma_fence;
 struct drm_device;
+struct intel_hdcp_gsc_context;
 struct ref_tracker;
 
 struct intel_display_rpm_interface {
@@ -26,6 +27,15 @@ struct intel_display_rpm_interface {
 	void (*assert_unblock)(const struct drm_device *drm);
 };
 
+struct intel_display_hdcp_interface {
+	ssize_t (*gsc_msg_send)(struct intel_hdcp_gsc_context *gsc_context,
+				void *msg_in, size_t msg_in_len,
+				void *msg_out, size_t msg_out_len);
+	bool (*gsc_check_status)(struct drm_device *drm);
+	struct intel_hdcp_gsc_context *(*gsc_context_alloc)(struct drm_device *drm);
+	void (*gsc_context_free)(struct intel_hdcp_gsc_context *gsc_context);
+};
+
 struct intel_display_irq_interface {
 	bool (*enabled)(struct drm_device *drm);
 	void (*synchronize)(struct drm_device *drm);
@@ -50,6 +60,9 @@ struct intel_display_rps_interface {
  * check the optional pointers.
  */
 struct intel_display_parent_interface {
+	/** @hdcp: HDCP GSC interface */
+	const struct intel_display_hdcp_interface *hdcp;
+
 	/** @rpm: Runtime PM functions */
 	const struct intel_display_rpm_interface *rpm;
 
-- 
2.47.3


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

* ✓ i915.CI.BAT: success for drm/i915/hdcp: call HDCP GSC hook via parent interface
  2025-11-25 17:17 [PATCH 0/2] drm/i915/hdcp: call HDCP GSC hook via parent interface Jani Nikula
  2025-11-25 17:17 ` [PATCH 1/2] drm/i915/hdcp: move i915 specific HDCP GSC implementation to i915 Jani Nikula
  2025-11-25 17:17 ` [PATCH 2/2] drm/{i915, xe}/hdcp: use parent interface for HDCP GSC calls Jani Nikula
@ 2025-11-25 18:33 ` Patchwork
  2025-11-26  8:33 ` ✓ i915.CI.Full: " Patchwork
  3 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2025-11-25 18:33 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915/hdcp: call HDCP GSC hook via parent interface
URL   : https://patchwork.freedesktop.org/series/158055/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_17586 -> Patchwork_158055v1
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/index.html

Participating hosts (44 -> 43)
------------------------------

  Missing    (1): fi-snb-2520m 

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

  Here are the changes found in Patchwork_158055v1 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live@workarounds:
    - bat-arls-5:         [PASS][1] -> [DMESG-FAIL][2] ([i915#12061]) +1 other test dmesg-fail
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/bat-arls-5/igt@i915_selftest@live@workarounds.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/bat-arls-5/igt@i915_selftest@live@workarounds.html
    - bat-dg2-11:         [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/bat-dg2-11/igt@i915_selftest@live@workarounds.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/bat-dg2-11/igt@i915_selftest@live@workarounds.html

  
#### Possible fixes ####

  * igt@i915_selftest@live:
    - bat-mtlp-8:         [DMESG-FAIL][5] ([i915#12061]) -> [PASS][6] +1 other test pass
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/bat-mtlp-8/igt@i915_selftest@live.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/bat-mtlp-8/igt@i915_selftest@live.html

  * igt@i915_selftest@live@workarounds:
    - bat-arlh-2:         [DMESG-FAIL][7] ([i915#12061]) -> [PASS][8] +1 other test pass
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/bat-arlh-2/igt@i915_selftest@live@workarounds.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/bat-arlh-2/igt@i915_selftest@live@workarounds.html
    - bat-mtlp-6:         [DMESG-FAIL][9] ([i915#12061]) -> [PASS][10] +1 other test pass
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
    - bat-arls-6:         [DMESG-FAIL][11] ([i915#12061]) -> [PASS][12] +1 other test pass
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/bat-arls-6/igt@i915_selftest@live@workarounds.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/bat-arls-6/igt@i915_selftest@live@workarounds.html

  
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061


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

  * Linux: CI_DRM_17586 -> Patchwork_158055v1

  CI-20190529: 20190529
  CI_DRM_17586: cc835cfc16997c2a02ed089013ed6b51cd538371 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8637: 730ee3dfb26f8d7891fc240b0132a08c5bc7b949 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_158055v1: cc835cfc16997c2a02ed089013ed6b51cd538371 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/index.html

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

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

* ✓ i915.CI.Full: success for drm/i915/hdcp: call HDCP GSC hook via parent interface
  2025-11-25 17:17 [PATCH 0/2] drm/i915/hdcp: call HDCP GSC hook via parent interface Jani Nikula
                   ` (2 preceding siblings ...)
  2025-11-25 18:33 ` ✓ i915.CI.BAT: success for drm/i915/hdcp: call HDCP GSC hook via parent interface Patchwork
@ 2025-11-26  8:33 ` Patchwork
  3 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2025-11-26  8:33 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915/hdcp: call HDCP GSC hook via parent interface
URL   : https://patchwork.freedesktop.org/series/158055/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_17586_full -> Patchwork_158055v1_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts

New tests
---------

  New tests have been introduced between CI_DRM_17586_full and Patchwork_158055v1_full:

### New IGT tests (1) ###

  * igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-dp-3:
    - Statuses : 1 pass(s)
    - Exec time: [1.50] s

  

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

  Here are the changes found in Patchwork_158055v1_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_basic@multigpu-create-close:
    - shard-dg1:          NOTRUN -> [SKIP][1] ([i915#7697])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@gem_basic@multigpu-create-close.html
    - shard-tglu:         NOTRUN -> [SKIP][2] ([i915#7697])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@gem_basic@multigpu-create-close.html

  * igt@gem_ccs@block-multicopy-compressed:
    - shard-tglu-1:       NOTRUN -> [SKIP][3] ([i915#9323])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@gem_ccs@block-multicopy-compressed.html

  * igt@gem_ccs@ctrl-surf-copy:
    - shard-rkl:          NOTRUN -> [SKIP][4] ([i915#3555] / [i915#9323])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@gem_ccs@ctrl-surf-copy.html

  * igt@gem_create@create-ext-set-pat:
    - shard-tglu-1:       NOTRUN -> [SKIP][5] ([i915#8562])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@gem_create@create-ext-set-pat.html

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - shard-glk:          NOTRUN -> [INCOMPLETE][6] ([i915#13356]) +1 other test incomplete
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk9/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@gem_ctx_persistence@heartbeat-hostile:
    - shard-dg1:          NOTRUN -> [SKIP][7] ([i915#8555])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@gem_ctx_persistence@heartbeat-hostile.html

  * igt@gem_ctx_sseu@mmap-args:
    - shard-tglu-1:       NOTRUN -> [SKIP][8] ([i915#280])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@gem_ctx_sseu@mmap-args.html

  * igt@gem_eio@in-flight-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][9] ([i915#13390])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk5/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_balancer@noheartbeat:
    - shard-mtlp:         NOTRUN -> [SKIP][10] ([i915#8555])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@gem_exec_balancer@noheartbeat.html

  * igt@gem_exec_balancer@parallel-keep-submit-fence:
    - shard-rkl:          NOTRUN -> [SKIP][11] ([i915#4525])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@gem_exec_balancer@parallel-keep-submit-fence.html

  * igt@gem_exec_capture@capture-invisible:
    - shard-glk10:        NOTRUN -> [SKIP][12] ([i915#6334]) +1 other test skip
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk10/igt@gem_exec_capture@capture-invisible.html

  * igt@gem_exec_capture@capture-invisible@smem0:
    - shard-mtlp:         NOTRUN -> [SKIP][13] ([i915#6334]) +1 other test skip
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@gem_exec_capture@capture-invisible@smem0.html

  * igt@gem_exec_capture@capture@vecs0-lmem0:
    - shard-dg1:          NOTRUN -> [FAIL][14] ([i915#11965]) +2 other tests fail
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@gem_exec_capture@capture@vecs0-lmem0.html

  * igt@gem_exec_flush@basic-batch-kernel-default-uc:
    - shard-dg1:          NOTRUN -> [SKIP][15] ([i915#3539] / [i915#4852])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@gem_exec_flush@basic-batch-kernel-default-uc.html

  * igt@gem_exec_reloc@basic-cpu-read:
    - shard-rkl:          NOTRUN -> [SKIP][16] ([i915#3281]) +1 other test skip
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@gem_exec_reloc@basic-cpu-read.html

  * igt@gem_exec_reloc@basic-wc-gtt-active:
    - shard-mtlp:         NOTRUN -> [SKIP][17] ([i915#3281]) +1 other test skip
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@gem_exec_reloc@basic-wc-gtt-active.html

  * igt@gem_exec_suspend@basic-s4-devices@lmem0:
    - shard-dg2:          [PASS][18] -> [ABORT][19] ([i915#15317] / [i915#7975])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-1/igt@gem_exec_suspend@basic-s4-devices@lmem0.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-5/igt@gem_exec_suspend@basic-s4-devices@lmem0.html

  * igt@gem_fence_thrash@bo-write-verify-none:
    - shard-mtlp:         NOTRUN -> [SKIP][20] ([i915#4860])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@gem_fence_thrash@bo-write-verify-none.html

  * igt@gem_lmem_swapping@parallel-multi:
    - shard-tglu:         NOTRUN -> [SKIP][21] ([i915#4613]) +1 other test skip
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@gem_lmem_swapping@parallel-multi.html

  * igt@gem_lmem_swapping@parallel-random-verify:
    - shard-mtlp:         NOTRUN -> [SKIP][22] ([i915#4613])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@gem_lmem_swapping@parallel-random-verify.html

  * igt@gem_lmem_swapping@verify-ccs:
    - shard-glk:          NOTRUN -> [SKIP][23] ([i915#4613]) +1 other test skip
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk9/igt@gem_lmem_swapping@verify-ccs.html

  * igt@gem_media_vme:
    - shard-tglu:         NOTRUN -> [SKIP][24] ([i915#284])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@gem_media_vme.html

  * igt@gem_mmap@short-mmap:
    - shard-mtlp:         NOTRUN -> [SKIP][25] ([i915#4083]) +1 other test skip
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@gem_mmap@short-mmap.html

  * igt@gem_mmap_gtt@cpuset-medium-copy-odd:
    - shard-mtlp:         NOTRUN -> [SKIP][26] ([i915#4077])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@gem_mmap_gtt@cpuset-medium-copy-odd.html

  * igt@gem_mmap_wc@write:
    - shard-dg1:          NOTRUN -> [SKIP][27] ([i915#4083])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@gem_mmap_wc@write.html

  * igt@gem_partial_pwrite_pread@reads:
    - shard-dg1:          NOTRUN -> [SKIP][28] ([i915#3282]) +2 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@gem_partial_pwrite_pread@reads.html

  * igt@gem_partial_pwrite_pread@reads-snoop:
    - shard-rkl:          NOTRUN -> [SKIP][29] ([i915#3282])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@gem_partial_pwrite_pread@reads-snoop.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-tglu:         NOTRUN -> [WARN][30] ([i915#2658])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_render_copy@y-tiled-to-vebox-y-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][31] ([i915#8428]) +1 other test skip
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@gem_render_copy@y-tiled-to-vebox-y-tiled.html

  * igt@gem_softpin@evict-snoop:
    - shard-dg1:          NOTRUN -> [SKIP][32] ([i915#4885])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@gem_softpin@evict-snoop.html

  * igt@gem_softpin@noreloc-s3:
    - shard-snb:          NOTRUN -> [ABORT][33] ([i915#15317])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-snb6/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@coherency-sync:
    - shard-tglu-1:       NOTRUN -> [SKIP][34] ([i915#3297])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@gem_userptr_blits@coherency-sync.html

  * igt@gem_userptr_blits@readonly-unsync:
    - shard-dg1:          NOTRUN -> [SKIP][35] ([i915#3297])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@gem_userptr_blits@readonly-unsync.html

  * igt@gem_userptr_blits@unsync-unmap-cycles:
    - shard-tglu:         NOTRUN -> [SKIP][36] ([i915#3297]) +1 other test skip
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@gem_userptr_blits@unsync-unmap-cycles.html

  * igt@gem_workarounds@suspend-resume:
    - shard-glk:          [PASS][37] -> [ABORT][38] ([i915#15317])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-glk9/igt@gem_workarounds@suspend-resume.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk3/igt@gem_workarounds@suspend-resume.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-dg2:          [PASS][39] -> [ABORT][40] ([i915#15317])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-4/igt@gem_workarounds@suspend-resume-fd.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-8/igt@gem_workarounds@suspend-resume-fd.html

  * igt@gen9_exec_parse@basic-rejected:
    - shard-dg1:          NOTRUN -> [SKIP][41] ([i915#2527])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@gen9_exec_parse@basic-rejected.html

  * igt@gen9_exec_parse@bb-start-cmd:
    - shard-rkl:          NOTRUN -> [SKIP][42] ([i915#2527])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@gen9_exec_parse@bb-start-cmd.html

  * igt@gen9_exec_parse@bb-start-param:
    - shard-mtlp:         NOTRUN -> [SKIP][43] ([i915#2856]) +1 other test skip
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-3/igt@gen9_exec_parse@bb-start-param.html

  * igt@gen9_exec_parse@cmd-crossing-page:
    - shard-tglu-1:       NOTRUN -> [SKIP][44] ([i915#2527] / [i915#2856])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@gen9_exec_parse@cmd-crossing-page.html

  * igt@i915_drm_fdinfo@busy-idle@bcs0:
    - shard-dg1:          NOTRUN -> [SKIP][45] ([i915#14073]) +5 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@i915_drm_fdinfo@busy-idle@bcs0.html

  * igt@i915_module_load@resize-bar:
    - shard-dg2:          [PASS][46] -> [DMESG-WARN][47] ([i915#14545])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-8/igt@i915_module_load@resize-bar.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-4/igt@i915_module_load@resize-bar.html

  * igt@i915_pm_freq_api@freq-reset:
    - shard-tglu-1:       NOTRUN -> [SKIP][48] ([i915#8399])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@i915_pm_freq_api@freq-reset.html

  * igt@i915_pm_freq_mult@media-freq@gt0:
    - shard-tglu:         NOTRUN -> [SKIP][49] ([i915#6590]) +1 other test skip
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@i915_pm_freq_mult@media-freq@gt0.html

  * igt@i915_query@query-topology-coherent-slice-mask:
    - shard-mtlp:         NOTRUN -> [SKIP][50] ([i915#6188])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-3/igt@i915_query@query-topology-coherent-slice-mask.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - shard-tglu-1:       NOTRUN -> [ABORT][51] ([i915#15317])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-dg1:          NOTRUN -> [SKIP][52] ([i915#4077])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@kms_async_flips@async-flip-dpms:
    - shard-mtlp:         NOTRUN -> [FAIL][53] ([i915#15313]) +2 other tests fail
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_async_flips@async-flip-dpms.html

  * igt@kms_async_flips@async-flip-suspend-resume:
    - shard-glk:          NOTRUN -> [INCOMPLETE][54] ([i915#12761]) +1 other test incomplete
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk8/igt@kms_async_flips@async-flip-suspend-resume.html

  * igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [ABORT][55] ([i915#15317]) +1 other test abort
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-14/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-4.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-mtlp:         NOTRUN -> [SKIP][56] ([i915#1769] / [i915#3555])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-3/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-180:
    - shard-rkl:          NOTRUN -> [SKIP][57] ([i915#5286])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_big_fb@4-tiled-32bpp-rotate-180.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-270:
    - shard-tglu:         NOTRUN -> [SKIP][58] ([i915#5286]) +2 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-tglu-1:       NOTRUN -> [SKIP][59] ([i915#5286]) +2 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-addfb-size-overflow:
    - shard-dg1:          NOTRUN -> [SKIP][60] ([i915#5286])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_big_fb@4-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@x-tiled-64bpp-rotate-270:
    - shard-rkl:          NOTRUN -> [SKIP][61] ([i915#3638]) +1 other test skip
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-270:
    - shard-dg1:          NOTRUN -> [SKIP][62] ([i915#4538]) +1 other test skip
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_big_fb@yf-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-mtlp:         NOTRUN -> [SKIP][63] +10 other tests skip
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-3/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][64] ([i915#10307] / [i915#10434] / [i915#6095])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-4/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc:
    - shard-rkl:          NOTRUN -> [SKIP][65] ([i915#14098] / [i915#6095]) +18 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][66] ([i915#14098] / [i915#14544] / [i915#6095]) +3 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][67] ([i915#10307] / [i915#6095]) +58 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-7/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][68] ([i915#6095]) +67 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-a-hdmi-a-4.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][69] ([i915#12805])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][70] ([i915#6095]) +33 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][71] ([i915#6095]) +34 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][72] ([i915#12805])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-c-edp-1:
    - shard-mtlp:         [PASS][73] -> [INCOMPLETE][74] ([i915#12796])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-mtlp-2/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-c-edp-1.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-7/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-c-edp-1.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1:
    - shard-tglu:         [PASS][75] -> [ABORT][76] ([i915#15317]) +2 other tests abort
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-tglu-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-4/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][77] ([i915#6095]) +7 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-1/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-3.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][78] ([i915#12313])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][79] ([i915#14544] / [i915#6095]) +7 other tests skip
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][80] ([i915#6095]) +19 other tests skip
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs@pipe-a-edp-1.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-tglu-1:       NOTRUN -> [SKIP][81] ([i915#6095]) +24 other tests skip
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_chamelium_audio@hdmi-audio-edid:
    - shard-dg1:          NOTRUN -> [SKIP][82] ([i915#11151] / [i915#7828]) +1 other test skip
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_chamelium_audio@hdmi-audio-edid.html

  * igt@kms_chamelium_edid@dp-edid-change-during-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][83] ([i915#11151] / [i915#7828]) +6 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html

  * igt@kms_chamelium_frames@hdmi-frame-dump:
    - shard-tglu-1:       NOTRUN -> [SKIP][84] ([i915#11151] / [i915#7828]) +2 other tests skip
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_chamelium_frames@hdmi-frame-dump.html

  * igt@kms_chamelium_sharpness_filter@filter-basic:
    - shard-dg1:          NOTRUN -> [SKIP][85] ([i915#15238])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_chamelium_sharpness_filter@filter-basic.html

  * igt@kms_content_protection@dp-mst-lic-type-0:
    - shard-tglu:         NOTRUN -> [SKIP][86] ([i915#3116] / [i915#3299])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_content_protection@dp-mst-lic-type-0.html

  * igt@kms_content_protection@dp-mst-suspend-resume:
    - shard-mtlp:         NOTRUN -> [SKIP][87] ([i915#15330])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_content_protection@dp-mst-suspend-resume.html

  * igt@kms_content_protection@legacy:
    - shard-tglu-1:       NOTRUN -> [SKIP][88] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@legacy@pipe-a-dp-3:
    - shard-dg2:          NOTRUN -> [FAIL][89] ([i915#7173])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-11/igt@kms_content_protection@legacy@pipe-a-dp-3.html

  * igt@kms_cursor_crc@cursor-offscreen-32x32:
    - shard-dg1:          NOTRUN -> [SKIP][90] ([i915#3555]) +2 other tests skip
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_cursor_crc@cursor-offscreen-32x32.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-tglu:         NOTRUN -> [SKIP][91] ([i915#13049])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-4/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-onscreen-32x10:
    - shard-mtlp:         NOTRUN -> [SKIP][92] ([i915#3555] / [i915#8814])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_cursor_crc@cursor-onscreen-32x10.html

  * igt@kms_cursor_crc@cursor-onscreen-32x32:
    - shard-rkl:          NOTRUN -> [SKIP][93] ([i915#3555])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_cursor_crc@cursor-onscreen-32x32.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-mtlp:         NOTRUN -> [SKIP][94] ([i915#13049])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_crc@cursor-random-128x42:
    - shard-tglu:         NOTRUN -> [FAIL][95] ([i915#13566]) +3 other tests fail
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@kms_cursor_crc@cursor-random-128x42.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x32:
    - shard-tglu:         NOTRUN -> [SKIP][96] ([i915#3555]) +1 other test skip
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html

  * igt@kms_cursor_crc@cursor-rapid-movement-64x21:
    - shard-mtlp:         NOTRUN -> [SKIP][97] ([i915#8814])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_cursor_crc@cursor-rapid-movement-64x21.html

  * igt@kms_cursor_crc@cursor-sliding-128x42:
    - shard-tglu-1:       NOTRUN -> [FAIL][98] ([i915#13566]) +1 other test fail
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_cursor_crc@cursor-sliding-128x42.html

  * igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [FAIL][99] ([i915#13566]) +3 other tests fail
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-7/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_crc@cursor-suspend:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][100] ([i915#12358] / [i915#14152] / [i915#7882])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk10/igt@kms_cursor_crc@cursor-suspend.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [ABORT][101] ([i915#15317]) +1 other test abort
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_cursor_crc@cursor-suspend@pipe-a-edp-1.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][102] ([i915#12358] / [i915#14152])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk10/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [ABORT][103] ([i915#15317]) +3 other tests abort
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - shard-tglu-1:       NOTRUN -> [SKIP][104] ([i915#4103])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
    - shard-mtlp:         NOTRUN -> [SKIP][105] ([i915#9809])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          NOTRUN -> [FAIL][106] ([i915#2346])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
    - shard-tglu:         [PASS][107] -> [FAIL][108] ([i915#2346])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-tglu-2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_dirtyfb@psr-dirtyfb-ioctl:
    - shard-tglu:         NOTRUN -> [SKIP][109] ([i915#9723])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-tglu-1:       NOTRUN -> [SKIP][110] ([i915#13691])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][111] ([i915#3804])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-7/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2.html

  * igt@kms_dp_link_training@non-uhbr-sst:
    - shard-tglu:         NOTRUN -> [SKIP][112] ([i915#13749])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-4/igt@kms_dp_link_training@non-uhbr-sst.html

  * igt@kms_dp_link_training@uhbr-sst:
    - shard-tglu-1:       NOTRUN -> [SKIP][113] ([i915#13748])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_dp_link_training@uhbr-sst.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-tglu:         NOTRUN -> [SKIP][114] ([i915#3555] / [i915#3840])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_dsc@dsc-with-formats:
    - shard-dg1:          NOTRUN -> [SKIP][115] ([i915#3555] / [i915#3840])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_dsc@dsc-with-formats.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-mtlp:         [PASS][116] -> [ABORT][117] ([i915#15317]) +2 other tests abort
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-mtlp-4/igt@kms_fbcon_fbt@fbc-suspend.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-tglu-1:       NOTRUN -> [SKIP][118] ([i915#3469])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-tglu:         NOTRUN -> [SKIP][119] ([i915#9337])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr2:
    - shard-rkl:          NOTRUN -> [SKIP][120] ([i915#658])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_feature_discovery@psr2.html

  * igt@kms_flip@2x-blocking-wf_vblank:
    - shard-tglu-1:       NOTRUN -> [SKIP][121] ([i915#3637] / [i915#9934]) +1 other test skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_flip@2x-blocking-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][122] ([i915#9934]) +2 other tests skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html

  * igt@kms_flip@2x-flip-vs-dpms:
    - shard-mtlp:         NOTRUN -> [SKIP][123] ([i915#3637] / [i915#9934])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_flip@2x-flip-vs-dpms.html

  * igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible:
    - shard-tglu:         NOTRUN -> [SKIP][124] ([i915#9934])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html

  * igt@kms_flip@2x-flip-vs-fences-interruptible:
    - shard-mtlp:         NOTRUN -> [SKIP][125] ([i915#8381])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_flip@2x-flip-vs-fences-interruptible.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
    - shard-tglu:         NOTRUN -> [SKIP][126] ([i915#3637] / [i915#9934])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-glk:          NOTRUN -> [INCOMPLETE][127] ([i915#12314] / [i915#12745] / [i915#4839] / [i915#6113])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk5/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1:
    - shard-tglu:         NOTRUN -> [ABORT][128] ([i915#15317]) +3 other tests abort
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html
    - shard-glk:          NOTRUN -> [INCOMPLETE][129] ([i915#12314] / [i915#12745])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk5/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][130] ([i915#2672] / [i915#3555]) +1 other test skip
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling@pipe-a-valid-mode:
    - shard-tglu-1:       NOTRUN -> [SKIP][131] ([i915#2587] / [i915#2672]) +1 other test skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling:
    - shard-tglu:         NOTRUN -> [SKIP][132] ([i915#2672] / [i915#3555]) +1 other test skip
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode:
    - shard-tglu:         NOTRUN -> [SKIP][133] ([i915#2587] / [i915#2672]) +1 other test skip
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling:
    - shard-rkl:          NOTRUN -> [SKIP][134] ([i915#2672] / [i915#3555])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
    - shard-rkl:          NOTRUN -> [SKIP][135] ([i915#2672])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
    - shard-dg1:          NOTRUN -> [SKIP][136] ([i915#2587] / [i915#2672]) +1 other test skip
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][137] ([i915#2672] / [i915#8813])
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][138] ([i915#3555] / [i915#8813])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][139] ([i915#8810] / [i915#8813])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling:
    - shard-glk10:        NOTRUN -> [SKIP][140] +27 other tests skip
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk10/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling:
    - shard-dg1:          NOTRUN -> [SKIP][141] ([i915#2672] / [i915#3555]) +1 other test skip
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][142] ([i915#2672] / [i915#3555] / [i915#8813]) +2 other tests skip
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html

  * igt@kms_frontbuffer_tracking@fbc-1p-shrfb-fliptrack-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][143] ([i915#8708])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_frontbuffer_tracking@fbc-1p-shrfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu:
    - shard-tglu-1:       NOTRUN -> [SKIP][144] +19 other tests skip
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move:
    - shard-rkl:          NOTRUN -> [SKIP][145] ([i915#15102] / [i915#3023]) +1 other test skip
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-tglu:         NOTRUN -> [SKIP][146] ([i915#15102]) +13 other tests skip
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][147] +4 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-dg1:          NOTRUN -> [SKIP][148] ([i915#8708]) +2 other tests skip
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render:
    - shard-tglu:         NOTRUN -> [SKIP][149] +34 other tests skip
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-render:
    - shard-dg1:          NOTRUN -> [SKIP][150] ([i915#15102]) +1 other test skip
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][151] ([i915#15102])
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move:
    - shard-dg1:          NOTRUN -> [SKIP][152] ([i915#15102] / [i915#3458]) +4 other tests skip
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt:
    - shard-mtlp:         NOTRUN -> [SKIP][153] ([i915#1825]) +7 other tests skip
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite:
    - shard-rkl:          NOTRUN -> [SKIP][154] ([i915#1825]) +3 other tests skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render:
    - shard-snb:          NOTRUN -> [SKIP][155] +41 other tests skip
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-snb6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc:
    - shard-tglu-1:       NOTRUN -> [SKIP][156] ([i915#15102]) +5 other tests skip
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-tglu-1:       NOTRUN -> [SKIP][157] ([i915#13030])
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_hdmi_inject@inject-audio.html
    - shard-snb:          [PASS][158] -> [SKIP][159]
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-snb1/igt@kms_hdmi_inject@inject-audio.html
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-snb6/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_hdr@invalid-hdr:
    - shard-dg1:          NOTRUN -> [SKIP][160] ([i915#3555] / [i915#8228])
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_hdr@invalid-hdr.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][161] ([i915#12394])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-tglu:         NOTRUN -> [SKIP][162] ([i915#6301])
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_pipe_b_c_ivb@enable-pipe-c-while-b-has-3-lanes:
    - shard-dg1:          NOTRUN -> [SKIP][163] +7 other tests skip
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_pipe_b_c_ivb@enable-pipe-c-while-b-has-3-lanes.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [ABORT][164] ([i915#15317]) +3 other tests abort
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-1/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-3.html

  * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a:
    - shard-rkl:          [PASS][165] -> [ABORT][166] ([i915#15317]) +3 other tests abort
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-7/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html

  * igt@kms_plane_alpha_blend@alpha-basic:
    - shard-glk:          NOTRUN -> [FAIL][167] ([i915#12178])
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk9/igt@kms_plane_alpha_blend@alpha-basic.html

  * igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][168] ([i915#7862]) +1 other test fail
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk9/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1.html

  * igt@kms_plane_alpha_blend@constant-alpha-max:
    - shard-glk:          NOTRUN -> [FAIL][169] ([i915#10647] / [i915#12169])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk6/igt@kms_plane_alpha_blend@constant-alpha-max.html

  * igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][170] ([i915#10647]) +1 other test fail
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk6/igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1.html

  * igt@kms_plane_multiple@2x-tiling-x:
    - shard-mtlp:         NOTRUN -> [SKIP][171] ([i915#13958])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_plane_multiple@2x-tiling-x.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-rkl:          [PASS][172] -> [SKIP][173] ([i915#6953])
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_plane_scaling@intel-max-src-size.html
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_plane_scaling@plane-upscale-20x20-with-rotation:
    - shard-glk:          NOTRUN -> [SKIP][174] +231 other tests skip
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk3/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-75:
    - shard-mtlp:         NOTRUN -> [SKIP][175] ([i915#12247] / [i915#3555] / [i915#6953])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_plane_scaling@planes-downscale-factor-0-75.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b:
    - shard-mtlp:         NOTRUN -> [SKIP][176] ([i915#12247]) +8 other tests skip
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][177] ([i915#12343])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][178] ([i915#5354])
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-tglu-1:       NOTRUN -> [SKIP][179] ([i915#9685])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_dc@dc5-dpms-negative:
    - shard-mtlp:         NOTRUN -> [SKIP][180] ([i915#13441])
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_pm_dc@dc5-dpms-negative.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-tglu:         NOTRUN -> [SKIP][181] ([i915#9685])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-tglu-1:       NOTRUN -> [FAIL][182] ([i915#9295])
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_lpsp@screens-disabled:
    - shard-tglu:         NOTRUN -> [SKIP][183] ([i915#8430])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_pm_lpsp@screens-disabled.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-rkl:          [PASS][184] -> [SKIP][185] ([i915#14544] / [i915#15073])
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-rkl:          [PASS][186] -> [SKIP][187] ([i915#15073]) +2 other tests skip
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-7/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-tglu:         NOTRUN -> [ABORT][188] ([i915#10553] / [i915#15317])
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-mtlp:         NOTRUN -> [SKIP][189] ([i915#6524])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_prime@basic-crc-hybrid.html

  * igt@kms_prime@basic-crc-vgem:
    - shard-dg1:          NOTRUN -> [SKIP][190] ([i915#6524])
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_prime@basic-crc-vgem.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-rkl:          NOTRUN -> [SKIP][191] ([i915#11520])
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html
    - shard-snb:          NOTRUN -> [SKIP][192] ([i915#11520])
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-snb6/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf:
    - shard-tglu:         NOTRUN -> [SKIP][193] ([i915#11520]) +5 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-4/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area:
    - shard-glk:          NOTRUN -> [SKIP][194] ([i915#11520]) +8 other tests skip
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk3/igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][195] ([i915#9808])
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area@pipe-a-edp-1.html

  * igt@kms_psr2_sf@pr-cursor-plane-update-sf:
    - shard-mtlp:         NOTRUN -> [SKIP][196] ([i915#12316]) +2 other tests skip
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html
    - shard-glk10:        NOTRUN -> [SKIP][197] ([i915#11520])
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk10/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html

  * igt@kms_psr2_sf@pr-plane-move-sf-dmg-area:
    - shard-dg1:          NOTRUN -> [SKIP][198] ([i915#11520]) +1 other test skip
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_psr2_sf@pr-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf:
    - shard-tglu-1:       NOTRUN -> [SKIP][199] ([i915#11520])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-rkl:          NOTRUN -> [SKIP][200] ([i915#9683])
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-mtlp:         NOTRUN -> [SKIP][201] ([i915#4348])
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@fbc-pr-basic:
    - shard-mtlp:         NOTRUN -> [SKIP][202] ([i915#9688]) +10 other tests skip
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-3/igt@kms_psr@fbc-pr-basic.html

  * igt@kms_psr@fbc-pr-sprite-plane-onoff:
    - shard-rkl:          NOTRUN -> [SKIP][203] ([i915#1072] / [i915#9732]) +2 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_psr@fbc-pr-sprite-plane-onoff.html

  * igt@kms_psr@pr-cursor-mmap-gtt:
    - shard-tglu-1:       NOTRUN -> [SKIP][204] ([i915#9732]) +4 other tests skip
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_psr@pr-cursor-mmap-gtt.html

  * igt@kms_psr@psr2-sprite-mmap-cpu:
    - shard-dg1:          NOTRUN -> [SKIP][205] ([i915#1072] / [i915#9732]) +4 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-17/igt@kms_psr@psr2-sprite-mmap-cpu.html

  * igt@kms_psr@psr2-sprite-mmap-gtt:
    - shard-tglu:         NOTRUN -> [SKIP][206] ([i915#9732]) +9 other tests skip
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@kms_psr@psr2-sprite-mmap-gtt.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-90:
    - shard-mtlp:         NOTRUN -> [SKIP][207] ([i915#12755])
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-8/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html

  * igt@kms_sharpness_filter@filter-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][208] ([i915#15232]) +1 other test skip
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_sharpness_filter@filter-dpms.html

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode:
    - shard-tglu-1:       NOTRUN -> [SKIP][209] ([i915#15232])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_sharpness_filter@invalid-filter-with-scaling-mode.html

  * igt@kms_vrr@flip-basic-fastset:
    - shard-tglu:         NOTRUN -> [SKIP][210] ([i915#9906])
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-5/igt@kms_vrr@flip-basic-fastset.html

  * igt@kms_vrr@flip-suspend:
    - shard-tglu-1:       NOTRUN -> [SKIP][211] ([i915#3555])
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-1/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@seamless-rr-switch-vrr:
    - shard-rkl:          NOTRUN -> [SKIP][212] ([i915#9906])
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@kms_vrr@seamless-rr-switch-vrr.html

  * igt@kms_writeback@writeback-fb-id:
    - shard-tglu:         NOTRUN -> [SKIP][213] ([i915#2437])
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@kms_writeback@writeback-fb-id.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-glk:          NOTRUN -> [SKIP][214] ([i915#2437])
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk3/igt@kms_writeback@writeback-pixel-formats.html

  * igt@perf@blocking@0-rcs0:
    - shard-rkl:          [PASS][215] -> [FAIL][216] ([i915#10538]) +1 other test fail
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-8/igt@perf@blocking@0-rcs0.html
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-3/igt@perf@blocking@0-rcs0.html

  
#### Possible fixes ####

  * igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0:
    - shard-dg2:          [INCOMPLETE][217] ([i915#12392] / [i915#13356]) -> [PASS][218]
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-1/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0.html
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-8/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0.html

  * igt@gem_exec_suspend@basic-s0@lmem0:
    - shard-dg2:          [INCOMPLETE][219] ([i915#13356]) -> [PASS][220]
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-5/igt@gem_exec_suspend@basic-s0@lmem0.html
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-8/igt@gem_exec_suspend@basic-s0@lmem0.html

  * igt@gem_exec_suspend@basic-s0@smem:
    - shard-rkl:          [ABORT][221] ([i915#15317]) -> [PASS][222] +2 other tests pass
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-8/igt@gem_exec_suspend@basic-s0@smem.html
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-8/igt@gem_exec_suspend@basic-s0@smem.html
    - shard-snb:          [ABORT][223] ([i915#15317]) -> [PASS][224] +1 other test pass
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-snb4/igt@gem_exec_suspend@basic-s0@smem.html
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-snb6/igt@gem_exec_suspend@basic-s0@smem.html

  * igt@gem_exec_suspend@basic-s4-devices@smem:
    - shard-dg2:          [ABORT][225] ([i915#15317] / [i915#7975]) -> [PASS][226]
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-1/igt@gem_exec_suspend@basic-s4-devices@smem.html
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-5/igt@gem_exec_suspend@basic-s4-devices@smem.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-tglu:         [ABORT][227] ([i915#15317]) -> [PASS][228] +4 other tests pass
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-tglu-3/igt@i915_suspend@fence-restore-tiled2untiled.html
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-10/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
    - shard-tglu:         [FAIL][229] -> [PASS][230] +1 other test pass
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-tglu-5/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-6/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-mtlp:         [FAIL][231] ([i915#5138]) -> [PASS][232] +2 other tests pass
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-mtlp-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-rkl:          [SKIP][233] ([i915#3555] / [i915#8228]) -> [PASS][234]
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_hdr@invalid-metadata-sizes.html
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-dg2:          [SKIP][235] ([i915#10656] / [i915#12388]) -> [PASS][236]
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-7/igt@kms_joiner@invalid-modeset-force-big-joiner.html
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-11/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-b-hdmi-a-1:
    - shard-snb:          [INCOMPLETE][237] -> [PASS][238]
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-snb6/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-b-hdmi-a-1.html
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-snb6/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-b-hdmi-a-1.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-dg2:          [SKIP][239] ([i915#6953] / [i915#9423]) -> [PASS][240]
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-7/igt@kms_plane_scaling@intel-max-src-size.html
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-11/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-mtlp:         [ABORT][241] ([i915#15317]) -> [PASS][242] +5 other tests pass
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-mtlp-5/igt@kms_pm_backlight@fade-with-suspend.html
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-3/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@perf@blocking:
    - shard-mtlp:         [FAIL][243] ([i915#10538]) -> [PASS][244] +1 other test pass
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-mtlp-6/igt@perf@blocking.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-mtlp-2/igt@perf@blocking.html

  * igt@perf_pmu@busy-double-start@vecs1:
    - shard-dg2:          [FAIL][245] ([i915#4349]) -> [PASS][246] +4 other tests pass
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-7/igt@perf_pmu@busy-double-start@vecs1.html
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-11/igt@perf_pmu@busy-double-start@vecs1.html

  
#### Warnings ####

  * igt@device_reset@unbind-cold-reset-rebind:
    - shard-rkl:          [SKIP][247] ([i915#11078] / [i915#14544]) -> [SKIP][248] ([i915#11078])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@device_reset@unbind-cold-reset-rebind.html
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@device_reset@unbind-cold-reset-rebind.html

  * igt@gem_ccs@ctrl-surf-copy-new-ctx:
    - shard-rkl:          [SKIP][249] ([i915#9323]) -> [SKIP][250] ([i915#14544] / [i915#9323])
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@gem_ccs@ctrl-surf-copy-new-ctx.html

  * igt@gem_exec_balancer@parallel-bb-first:
    - shard-rkl:          [SKIP][251] ([i915#4525]) -> [SKIP][252] ([i915#14544] / [i915#4525])
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@gem_exec_balancer@parallel-bb-first.html
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@gem_exec_balancer@parallel-bb-first.html

  * igt@gem_exec_reloc@basic-gtt-read-active:
    - shard-rkl:          [SKIP][253] ([i915#3281]) -> [SKIP][254] ([i915#14544] / [i915#3281]) +1 other test skip
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@gem_exec_reloc@basic-gtt-read-active.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-read-active.html

  * igt@gem_exec_reloc@basic-write-wc-noreloc:
    - shard-rkl:          [SKIP][255] ([i915#14544] / [i915#3281]) -> [SKIP][256] ([i915#3281])
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@gem_exec_reloc@basic-write-wc-noreloc.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@gem_exec_reloc@basic-write-wc-noreloc.html

  * igt@gem_lmem_swapping@basic:
    - shard-rkl:          [SKIP][257] ([i915#14544] / [i915#4613]) -> [SKIP][258] ([i915#4613])
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@gem_lmem_swapping@basic.html
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@gem_lmem_swapping@basic.html

  * igt@gem_lmem_swapping@random:
    - shard-rkl:          [SKIP][259] ([i915#4613]) -> [SKIP][260] ([i915#14544] / [i915#4613])
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@gem_lmem_swapping@random.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@gem_lmem_swapping@random.html

  * igt@gem_readwrite@read-bad-handle:
    - shard-rkl:          [SKIP][261] ([i915#14544] / [i915#3282]) -> [SKIP][262] ([i915#3282])
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@gem_readwrite@read-bad-handle.html
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@gem_readwrite@read-bad-handle.html

  * igt@gem_readwrite@write-bad-handle:
    - shard-rkl:          [SKIP][263] ([i915#3282]) -> [SKIP][264] ([i915#14544] / [i915#3282])
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@gem_readwrite@write-bad-handle.html
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@gem_readwrite@write-bad-handle.html

  * igt@gem_userptr_blits@unsync-unmap:
    - shard-rkl:          [SKIP][265] ([i915#3297]) -> [SKIP][266] ([i915#14544] / [i915#3297])
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@gem_userptr_blits@unsync-unmap.html
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@gem_userptr_blits@unsync-unmap.html

  * igt@gen9_exec_parse@secure-batches:
    - shard-rkl:          [SKIP][267] ([i915#2527]) -> [SKIP][268] ([i915#14544] / [i915#2527])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@gen9_exec_parse@secure-batches.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@gen9_exec_parse@secure-batches.html

  * igt@i915_suspend@forcewake:
    - shard-rkl:          [INCOMPLETE][269] ([i915#4817]) -> [ABORT][270] ([i915#15317])
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-3/igt@i915_suspend@forcewake.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@i915_suspend@forcewake.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-180:
    - shard-rkl:          [SKIP][271] ([i915#5286]) -> [SKIP][272] ([i915#14544] / [i915#5286]) +2 other tests skip
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_big_fb@4-tiled-16bpp-rotate-180.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_big_fb@4-tiled-16bpp-rotate-180.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-0:
    - shard-rkl:          [SKIP][273] ([i915#14544] / [i915#5286]) -> [SKIP][274] ([i915#5286])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-rkl:          [SKIP][275] ([i915#3638]) -> [SKIP][276] ([i915#14544] / [i915#3638])
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_big_fb@linear-32bpp-rotate-90.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_big_fb@linear-32bpp-rotate-90.html

  * igt@kms_ccs@bad-pixel-format-y-tiled-ccs:
    - shard-rkl:          [SKIP][277] ([i915#14098] / [i915#6095]) -> [SKIP][278] ([i915#14098] / [i915#14544] / [i915#6095]) +3 other tests skip
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_ccs@bad-pixel-format-y-tiled-ccs.html
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_ccs@bad-pixel-format-y-tiled-ccs.html

  * igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs:
    - shard-rkl:          [SKIP][279] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][280] ([i915#14098] / [i915#6095]) +1 other test skip
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs.html
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs.html

  * igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][281] ([i915#14544] / [i915#6095]) -> [SKIP][282] ([i915#6095]) +1 other test skip
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-2.html
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs:
    - shard-rkl:          [SKIP][283] ([i915#12313]) -> [SKIP][284] ([i915#12313] / [i915#14544])
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1:
    - shard-glk:          [INCOMPLETE][285] ([i915#12796] / [i915#14694]) -> [INCOMPLETE][286] ([i915#12796]) +1 other test incomplete
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-glk3/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1.html
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-glk6/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
    - shard-rkl:          [SKIP][287] ([i915#12313] / [i915#14544]) -> [SKIP][288] ([i915#12313])
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html

  * igt@kms_chamelium_color@ctm-red-to-blue:
    - shard-rkl:          [SKIP][289] ([i915#14544]) -> [SKIP][290] +2 other tests skip
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_chamelium_color@ctm-red-to-blue.html
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_chamelium_color@ctm-red-to-blue.html

  * igt@kms_chamelium_edid@dp-mode-timings:
    - shard-rkl:          [SKIP][291] ([i915#11151] / [i915#7828]) -> [SKIP][292] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_chamelium_edid@dp-mode-timings.html
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_chamelium_edid@dp-mode-timings.html

  * igt@kms_chamelium_hpd@hdmi-hpd-storm:
    - shard-rkl:          [SKIP][293] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][294] ([i915#11151] / [i915#7828])
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_chamelium_hpd@hdmi-hpd-storm.html
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_chamelium_hpd@hdmi-hpd-storm.html

  * igt@kms_content_protection@legacy:
    - shard-dg2:          [SKIP][295] ([i915#7118] / [i915#9424]) -> [FAIL][296] ([i915#7173])
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-7/igt@kms_content_protection@legacy.html
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-11/igt@kms_content_protection@legacy.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x10:
    - shard-rkl:          [SKIP][297] ([i915#3555]) -> [SKIP][298] ([i915#14544] / [i915#3555]) +1 other test skip
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html

  * igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
    - shard-rkl:          [SKIP][299] -> [SKIP][300] ([i915#14544]) +3 other tests skip
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html

  * igt@kms_dp_aux_dev:
    - shard-rkl:          [SKIP][301] ([i915#1257]) -> [SKIP][302] ([i915#1257] / [i915#14544])
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_dp_aux_dev.html
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_dp_aux_dev.html

  * igt@kms_feature_discovery@chamelium:
    - shard-rkl:          [SKIP][303] ([i915#14544] / [i915#4854]) -> [SKIP][304] ([i915#4854])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_feature_discovery@chamelium.html
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-4x:
    - shard-rkl:          [SKIP][305] ([i915#1839]) -> [SKIP][306] ([i915#14544] / [i915#1839])
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_feature_discovery@display-4x.html
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_feature_discovery@display-4x.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-rkl:          [SKIP][307] ([i915#14544] / [i915#9934]) -> [SKIP][308] ([i915#9934])
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@2x-flip-vs-panning-interruptible:
    - shard-rkl:          [SKIP][309] ([i915#9934]) -> [SKIP][310] ([i915#14544] / [i915#9934]) +1 other test skip
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_flip@2x-flip-vs-panning-interruptible.html
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_flip@2x-flip-vs-panning-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling:
    - shard-dg1:          [SKIP][311] ([i915#2672] / [i915#3555]) -> [SKIP][312] ([i915#2672] / [i915#3555] / [i915#4423])
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg1-18/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-18/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode:
    - shard-dg1:          [SKIP][313] ([i915#2587] / [i915#2672]) -> [SKIP][314] ([i915#2587] / [i915#2672] / [i915#4423])
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg1-18/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-18/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-render:
    - shard-rkl:          [SKIP][315] ([i915#15102]) -> [SKIP][316] ([i915#14544] / [i915#15102])
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-render.html
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][317] ([i915#14544] / [i915#1825]) -> [SKIP][318] ([i915#1825]) +5 other tests skip
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-gtt.html
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt:
    - shard-rkl:          [SKIP][319] ([i915#1825]) -> [SKIP][320] ([i915#14544] / [i915#1825]) +9 other tests skip
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render:
    - shard-dg2:          [SKIP][321] ([i915#15102] / [i915#3458]) -> [SKIP][322] ([i915#10433] / [i915#15102] / [i915#3458]) +3 other tests skip
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt:
    - shard-rkl:          [SKIP][323] ([i915#15102] / [i915#3023]) -> [SKIP][324] ([i915#14544] / [i915#15102] / [i915#3023]) +2 other tests skip
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
    - shard-rkl:          [SKIP][325] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][326] ([i915#15102] / [i915#3023]) +2 other tests skip
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-rkl:          [SKIP][327] ([i915#10656] / [i915#12388] / [i915#14544]) -> [SKIP][328] ([i915#10656] / [i915#12388])
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-rkl:          [SKIP][329] ([i915#14259]) -> [SKIP][330] ([i915#14259] / [i915#14544])
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_plane_multiple@tiling-yf.html
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_pm_backlight@fade:
    - shard-rkl:          [SKIP][331] ([i915#5354]) -> [SKIP][332] ([i915#14544] / [i915#5354])
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_pm_backlight@fade.html
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-rkl:          [SKIP][333] ([i915#14544] / [i915#4281]) -> [SKIP][334] ([i915#4281])
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_pm_dc@dc9-dpms.html
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_pm_dc@dc9-dpms.html
    - shard-tglu:         [SKIP][335] ([i915#4281]) -> [SKIP][336] ([i915#15128])
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-tglu-10/igt@kms_pm_dc@dc9-dpms.html
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-tglu-6/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-dg1:          [ABORT][337] ([i915#10553] / [i915#15317] / [i915#4423]) -> [ABORT][338] ([i915#10553] / [i915#15317])
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-dg1-19/igt@kms_pm_rpm@system-suspend-modeset.html
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-dg1-12/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_prime@basic-modeset-hybrid:
    - shard-rkl:          [SKIP][339] ([i915#14544] / [i915#6524]) -> [SKIP][340] ([i915#6524])
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_prime@basic-modeset-hybrid.html
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_prime@basic-modeset-hybrid.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
    - shard-rkl:          [SKIP][341] ([i915#11520] / [i915#14544]) -> [SKIP][342] ([i915#11520]) +1 other test skip
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
    - shard-rkl:          [SKIP][343] ([i915#11520]) -> [SKIP][344] ([i915#11520] / [i915#14544]) +2 other tests skip
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-3/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr@psr-primary-blt:
    - shard-rkl:          [SKIP][345] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][346] ([i915#1072] / [i915#9732]) +1 other test skip
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_psr@psr-primary-blt.html
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_psr@psr-primary-blt.html

  * igt@kms_psr@psr2-cursor-plane-move:
    - shard-rkl:          [SKIP][347] ([i915#1072] / [i915#9732]) -> [SKIP][348] ([i915#1072] / [i915#14544] / [i915#9732]) +5 other tests skip
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@kms_psr@psr2-cursor-plane-move.html
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@kms_psr@psr2-cursor-plane-move.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-rkl:          [SKIP][349] ([i915#14544] / [i915#3555]) -> [SKIP][350] ([i915#3555])
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_setmode@basic-clone-single-crtc.html
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_vrr@max-min:
    - shard-rkl:          [SKIP][351] ([i915#14544] / [i915#9906]) -> [SKIP][352] ([i915#9906])
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-6/igt@kms_vrr@max-min.html
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-4/igt@kms_vrr@max-min.html

  * igt@perf_pmu@rc6-suspend:
    - shard-rkl:          [INCOMPLETE][353] ([i915#13520]) -> [ABORT][354] ([i915#15317])
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-3/igt@perf_pmu@rc6-suspend.html
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-2/igt@perf_pmu@rc6-suspend.html

  * igt@sriov_basic@bind-unbind-vf:
    - shard-rkl:          [SKIP][355] ([i915#9917]) -> [SKIP][356] ([i915#14544] / [i915#9917])
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17586/shard-rkl-5/igt@sriov_basic@bind-unbind-vf.html
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/shard-rkl-6/igt@sriov_basic@bind-unbind-vf.html

  
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#10538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10538
  [i915#10553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10553
  [i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
  [i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11965]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11965
  [i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169
  [i915#12178]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12178
  [i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12314]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12314
  [i915#12316]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316
  [i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343
  [i915#12358]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12358
  [i915#12388]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12388
  [i915#12392]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12392
  [i915#12394]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12394
  [i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257
  [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
  [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
  [i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761
  [i915#12796]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12796
  [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
  [i915#13030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13030
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#13390]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13390
  [i915#13441]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13441
  [i915#13520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13520
  [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
  [i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
  [i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
  [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
  [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
  [i915#14073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14073
  [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
  [i915#14152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14152
  [i915#14259]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14259
  [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
  [i915#14545]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14545
  [i915#14694]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14694
  [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
  [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
  [i915#15128]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15128
  [i915#15232]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15232
  [i915#15238]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15238
  [i915#15313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15313
  [i915#15317]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15317
  [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
  [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
  [i915#2346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2346
  [i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
  [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
  [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
  [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
  [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469
  [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
  [i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
  [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
  [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
  [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4281
  [i915#4348]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4348
  [i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
  [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
  [i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
  [i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854
  [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
  [i915#4885]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4885
  [i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113
  [i915#6188]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6188
  [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
  [i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
  [i915#6590]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6590
  [i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
  [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
  [i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
  [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#7862]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7862
  [i915#7882]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7882
  [i915#7975]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7975
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
  [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
  [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
  [i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430
  [i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
  [i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
  [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
  [i915#8810]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8810
  [i915#8813]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8813
  [i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814
  [i915#9295]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9295
  [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
  [i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337
  [i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
  [i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
  [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
  [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
  [i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
  [i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9808
  [i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


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

  * Linux: CI_DRM_17586 -> Patchwork_158055v1

  CI-20190529: 20190529
  CI_DRM_17586: cc835cfc16997c2a02ed089013ed6b51cd538371 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8637: 730ee3dfb26f8d7891fc240b0132a08c5bc7b949 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_158055v1: cc835cfc16997c2a02ed089013ed6b51cd538371 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_158055v1/index.html

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

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

* RE: [PATCH 1/2] drm/i915/hdcp: move i915 specific HDCP GSC implementation to i915
  2025-11-25 17:17 ` [PATCH 1/2] drm/i915/hdcp: move i915 specific HDCP GSC implementation to i915 Jani Nikula
@ 2025-11-28  5:57   ` Kandpal, Suraj
  2025-11-28  9:27     ` Jani Nikula
  0 siblings, 1 reply; 8+ messages in thread
From: Kandpal, Suraj @ 2025-11-28  5:57 UTC (permalink / raw)
  To: Nikula, Jani, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org

> Subject: [PATCH 1/2] drm/i915/hdcp: move i915 specific HDCP GSC
> implementation to i915
> 
> The HDCP GSC implementation is different for both i915 and xe. Move the
> i915 specific implementation from display to i915 core.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

LGTM,
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>

> ---
>  drivers/gpu/drm/i915/Makefile                                | 5 ++++-
>  .../drm/i915/{display/intel_hdcp_gsc.c => i915_hdcp_gsc.c}   | 2 +-
>  2 files changed, 5 insertions(+), 2 deletions(-)  rename
> drivers/gpu/drm/i915/{display/intel_hdcp_gsc.c => i915_hdcp_gsc.c} (99%)
> 
> diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> index 2ff8938b3a7c..b2250432ae98 100644
> --- a/drivers/gpu/drm/i915/Makefile
> +++ b/drivers/gpu/drm/i915/Makefile
> @@ -74,6 +74,10 @@ i915-$(CONFIG_DEBUG_FS) += \
>  i915-$(CONFIG_PERF_EVENTS) += \
>  	i915_pmu.o
> 
> +# core display adaptation
> +i915-y += \
> +	i915_hdcp_gsc.o
> +
>  # "Graphics Technology" (aka we talk to the gpu)  gt-y += \
>  	gt/gen2_engine_cs.o \
> @@ -277,7 +281,6 @@ i915-y += \
>  	display/intel_frontbuffer.o \
>  	display/intel_global_state.o \
>  	display/intel_hdcp.o \
> -	display/intel_hdcp_gsc.o \
>  	display/intel_hdcp_gsc_message.o \
>  	display/intel_hotplug.o \
>  	display/intel_hotplug_irq.o \
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> b/drivers/gpu/drm/i915/i915_hdcp_gsc.c
> similarity index 99%
> rename from drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> rename to drivers/gpu/drm/i915/i915_hdcp_gsc.c
> index 3e7b480ee9f1..38df5318e13a 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.c
> +++ b/drivers/gpu/drm/i915/i915_hdcp_gsc.c
> @@ -6,11 +6,11 @@
>  #include <drm/drm_print.h>
>  #include <drm/intel/i915_hdcp_interface.h>
> 
> +#include "display/intel_hdcp_gsc.h"
>  #include "gem/i915_gem_region.h"
>  #include "gt/intel_gt.h"
>  #include "gt/uc/intel_gsc_uc_heci_cmd_submit.h"
>  #include "i915_drv.h"
> -#include "intel_hdcp_gsc.h"
> 
>  struct intel_hdcp_gsc_context {
>  	struct drm_i915_private *i915;
> --
> 2.47.3


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

* RE: [PATCH 2/2] drm/{i915, xe}/hdcp: use parent interface for HDCP GSC calls
  2025-11-25 17:17 ` [PATCH 2/2] drm/{i915, xe}/hdcp: use parent interface for HDCP GSC calls Jani Nikula
@ 2025-11-28  6:02   ` Kandpal, Suraj
  0 siblings, 0 replies; 8+ messages in thread
From: Kandpal, Suraj @ 2025-11-28  6:02 UTC (permalink / raw)
  To: Nikula, Jani, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org

> From: Nikula, Jani <jani.nikula@intel.com>
> Sent: Tuesday, November 25, 2025 10:48 PM
> To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Nikula, Jani <jani.nikula@intel.com>; Kandpal, Suraj
> <suraj.kandpal@intel.com>
> Subject: [PATCH 2/2] drm/{i915,xe}/hdcp: use parent interface for HDCP GSC
> calls
> 
> The HDCP GSC implementation is different for both i915 and xe. Add it to the
> display parent interface, and call the hooks via the parent interface.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

LGTM,
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_hdcp.c     |  4 +-
>  drivers/gpu/drm/i915/display/intel_hdcp_gsc.h | 22 ------
> .../drm/i915/display/intel_hdcp_gsc_message.c | 78 +++++++++----------
>  drivers/gpu/drm/i915/display/intel_parent.c   | 24 ++++++
>  drivers/gpu/drm/i915/display/intel_parent.h   | 10 +++
>  drivers/gpu/drm/i915/i915_driver.c            |  2 +
>  drivers/gpu/drm/i915/i915_hdcp_gsc.c          | 22 ++++--
>  drivers/gpu/drm/i915/i915_hdcp_gsc.h          |  9 +++
>  drivers/gpu/drm/xe/display/xe_display.c       |  2 +
>  drivers/gpu/drm/xe/display/xe_hdcp_gsc.c      | 25 ++++--
>  drivers/gpu/drm/xe/display/xe_hdcp_gsc.h      |  9 +++
>  include/drm/intel/display_parent_interface.h  | 13 ++++
>  12 files changed, 139 insertions(+), 81 deletions(-)  delete mode 100644
> drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
>  create mode 100644 drivers/gpu/drm/i915/i915_hdcp_gsc.h
>  create mode 100644 drivers/gpu/drm/xe/display/xe_hdcp_gsc.h
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c
> b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 5e1a96223a9c..7114fc405c29 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -29,10 +29,10 @@
>  #include "intel_display_types.h"
>  #include "intel_dp_mst.h"
>  #include "intel_hdcp.h"
> -#include "intel_hdcp_gsc.h"
>  #include "intel_hdcp_gsc_message.h"
>  #include "intel_hdcp_regs.h"
>  #include "intel_hdcp_shim.h"
> +#include "intel_parent.h"
>  #include "intel_pcode.h"
>  #include "intel_step.h"
> 
> @@ -258,7 +258,7 @@ static bool intel_hdcp2_prerequisite(struct
> intel_connector *connector)
> 
>  	/* If MTL+ make sure gsc is loaded and proxy is setup */
>  	if (USE_HDCP_GSC(display)) {
> -		if (!intel_hdcp_gsc_check_status(display->drm))
> +		if (!intel_parent_hdcp_gsc_check_status(display))
>  			return false;
>  	}
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> b/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> deleted file mode 100644
> index 9305c14aaffe..000000000000
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -/* SPDX-License-Identifier: MIT */
> -/*
> - * Copyright © 2023 Intel Corporation
> - */
> -
> -#ifndef __INTEL_HDCP_GSC_H__
> -#define __INTEL_HDCP_GSC_H__
> -
> -#include <linux/types.h>
> -
> -struct drm_device;
> -struct intel_hdcp_gsc_context;
> -
> -ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
> -				void *msg_in, size_t msg_in_len,
> -				void *msg_out, size_t msg_out_len);
> -bool intel_hdcp_gsc_check_status(struct drm_device *drm);
> -
> -struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct
> drm_device *drm); -void intel_hdcp_gsc_context_free(struct
> intel_hdcp_gsc_context *gsc_context);
> -
> -#endif /* __INTEL_HDCP_GCS_H__ */
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> index 98967bb148e3..781667b710b4 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
> @@ -10,8 +10,8 @@
> 
>  #include "intel_display_core.h"
>  #include "intel_display_types.h"
> -#include "intel_hdcp_gsc.h"
>  #include "intel_hdcp_gsc_message.h"
> +#include "intel_parent.h"
> 
>  static int
>  intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data
> *data, @@ -44,10 +44,9 @@ intel_hdcp_gsc_initiate_session(struct device
> *dev, struct hdcp_port_data *data,
>  	session_init_in.port.attached_transcoder = (u8)data-
> >hdcp_transcoder;
>  	session_init_in.protocol = data->protocol;
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, &session_init_in,
> -				       sizeof(session_init_in),
> -				       &session_init_out,
> -				       sizeof(session_init_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      &session_init_in,
> sizeof(session_init_in),
> +					      &session_init_out,
> sizeof(session_init_out));
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed.
> %zd\n", byte);
>  		return byte;
> @@ -106,10 +105,9 @@
> intel_hdcp_gsc_verify_receiver_cert_prepare_km(struct device *dev,
>  	memcpy(verify_rxcert_in.r_rx, &rx_cert->r_rx, HDCP_2_2_RRX_LEN);
>  	memcpy(verify_rxcert_in.rx_caps, rx_cert->rx_caps,
> HDCP_2_2_RXCAPS_LEN);
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, &verify_rxcert_in,
> -				       sizeof(verify_rxcert_in),
> -				       &verify_rxcert_out,
> -				       sizeof(verify_rxcert_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      &verify_rxcert_in,
> sizeof(verify_rxcert_in),
> +					      &verify_rxcert_out,
> sizeof(verify_rxcert_out));
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed:
> %zd\n", byte);
>  		return byte;
> @@ -169,10 +167,9 @@ intel_hdcp_gsc_verify_hprime(struct device *dev,
> struct hdcp_port_data *data,
>  	memcpy(send_hprime_in.h_prime, rx_hprime->h_prime,
>  	       HDCP_2_2_H_PRIME_LEN);
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, &send_hprime_in,
> -				       sizeof(send_hprime_in),
> -				       &send_hprime_out,
> -				       sizeof(send_hprime_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      &send_hprime_in,
> sizeof(send_hprime_in),
> +					      &send_hprime_out,
> sizeof(send_hprime_out));
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed.
> %zd\n", byte);
>  		return byte;
> @@ -220,10 +217,9 @@ intel_hdcp_gsc_store_pairing_info(struct device *dev,
> struct hdcp_port_data *dat
>  	memcpy(pairing_info_in.e_kh_km, pairing_info->e_kh_km,
>  	       HDCP_2_2_E_KH_KM_LEN);
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, &pairing_info_in,
> -				       sizeof(pairing_info_in),
> -				       &pairing_info_out,
> -				       sizeof(pairing_info_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      &pairing_info_in,
> sizeof(pairing_info_in),
> +					      &pairing_info_out,
> sizeof(pairing_info_out));
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed.
> %zd\n", byte);
>  		return byte;
> @@ -269,8 +265,9 @@ intel_hdcp_gsc_initiate_locality_check(struct device
> *dev,
>  	lc_init_in.port.physical_port = (u8)data->hdcp_ddi;
>  	lc_init_in.port.attached_transcoder = (u8)data->hdcp_transcoder;
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, &lc_init_in,
> sizeof(lc_init_in),
> -				       &lc_init_out, sizeof(lc_init_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      &lc_init_in, sizeof(lc_init_in),
> +					      &lc_init_out, sizeof(lc_init_out));
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed.
> %zd\n", byte);
>  		return byte;
> @@ -321,10 +318,9 @@ intel_hdcp_gsc_verify_lprime(struct device *dev,
> struct hdcp_port_data *data,
>  	memcpy(verify_lprime_in.l_prime, rx_lprime->l_prime,
>  	       HDCP_2_2_L_PRIME_LEN);
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, &verify_lprime_in,
> -				       sizeof(verify_lprime_in),
> -				       &verify_lprime_out,
> -				       sizeof(verify_lprime_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      &verify_lprime_in,
> sizeof(verify_lprime_in),
> +					      &verify_lprime_out,
> sizeof(verify_lprime_out));
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed.
> %zd\n", byte);
>  		return byte;
> @@ -370,8 +366,9 @@ intel_hdcp_gsc_get_session_key(struct device *dev,
>  	get_skey_in.port.physical_port = (u8)data->hdcp_ddi;
>  	get_skey_in.port.attached_transcoder = (u8)data->hdcp_transcoder;
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, &get_skey_in,
> sizeof(get_skey_in),
> -				       &get_skey_out, sizeof(get_skey_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      &get_skey_in, sizeof(get_skey_in),
> +					      &get_skey_out,
> sizeof(get_skey_out));
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed.
> %zd\n", byte);
>  		return byte;
> @@ -434,10 +431,9 @@
> intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev,
>  	memcpy(verify_repeater_in.receiver_ids, rep_topology->receiver_ids,
>  	       HDCP_2_2_RECEIVER_IDS_MAX_LEN);
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, &verify_repeater_in,
> -				       sizeof(verify_repeater_in),
> -				       &verify_repeater_out,
> -				       sizeof(verify_repeater_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      &verify_repeater_in,
> sizeof(verify_repeater_in),
> +					      &verify_repeater_out,
> sizeof(verify_repeater_out));
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed.
> %zd\n", byte);
>  		return byte;
> @@ -504,9 +500,9 @@ intel_hdcp_gsc_verify_mprime(struct device *dev,
> 
>  	verify_mprime_in->k = cpu_to_be16(data->k);
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, verify_mprime_in,
> cmd_size,
> -				       &verify_mprime_out,
> -				       sizeof(verify_mprime_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      verify_mprime_in, cmd_size,
> +					      &verify_mprime_out,
> sizeof(verify_mprime_out));
>  	kfree(verify_mprime_in);
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed.
> %zd\n", byte); @@ -552,10 +548,9 @@ static int
> intel_hdcp_gsc_enable_authentication(struct device *dev,
>  	enable_auth_in.port.attached_transcoder = (u8)data-
> >hdcp_transcoder;
>  	enable_auth_in.stream_type = data->streams[0].stream_type;
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, &enable_auth_in,
> -				       sizeof(enable_auth_in),
> -				       &enable_auth_out,
> -				       sizeof(enable_auth_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      &enable_auth_in,
> sizeof(enable_auth_in),
> +					      &enable_auth_out,
> sizeof(enable_auth_out));
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed.
> %zd\n", byte);
>  		return byte;
> @@ -599,10 +594,9 @@ intel_hdcp_gsc_close_session(struct device *dev,
> struct hdcp_port_data *data)
>  	session_close_in.port.physical_port = (u8)data->hdcp_ddi;
>  	session_close_in.port.attached_transcoder = (u8)data-
> >hdcp_transcoder;
> 
> -	byte = intel_hdcp_gsc_msg_send(gsc_context, &session_close_in,
> -				       sizeof(session_close_in),
> -				       &session_close_out,
> -				       sizeof(session_close_out));
> +	byte = intel_parent_hdcp_gsc_msg_send(display, gsc_context,
> +					      &session_close_in,
> sizeof(session_close_in),
> +					      &session_close_out,
> sizeof(session_close_out));
>  	if (byte < 0) {
>  		drm_dbg_kms(display->drm, "intel_hdcp_gsc_msg_send failed.
> %zd\n", byte);
>  		return byte;
> @@ -645,7 +639,7 @@ int intel_hdcp_gsc_init(struct intel_display *display)
> 
>  	mutex_lock(&display->hdcp.hdcp_mutex);
> 
> -	gsc_context = intel_hdcp_gsc_context_alloc(display->drm);
> +	gsc_context = intel_parent_hdcp_gsc_context_alloc(display);
>  	if (IS_ERR(gsc_context)) {
>  		ret = PTR_ERR(gsc_context);
>  		kfree(arbiter);
> @@ -665,7 +659,7 @@ int intel_hdcp_gsc_init(struct intel_display *display)
> 
>  void intel_hdcp_gsc_fini(struct intel_display *display)  {
> -	intel_hdcp_gsc_context_free(display->hdcp.gsc_context);
> +	intel_parent_hdcp_gsc_context_free(display,
> +display->hdcp.gsc_context);
>  	display->hdcp.gsc_context = NULL;
>  	kfree(display->hdcp.arbiter);
>  	display->hdcp.arbiter = NULL;
> diff --git a/drivers/gpu/drm/i915/display/intel_parent.c
> b/drivers/gpu/drm/i915/display/intel_parent.c
> index 27c7ef34ce48..2ea310cc3509 100644
> --- a/drivers/gpu/drm/i915/display/intel_parent.c
> +++ b/drivers/gpu/drm/i915/display/intel_parent.c
> @@ -22,6 +22,30 @@
>  #include "intel_display_core.h"
>  #include "intel_parent.h"
> 
> +ssize_t intel_parent_hdcp_gsc_msg_send(struct intel_display *display,
> +				       struct intel_hdcp_gsc_context
> *gsc_context,
> +				       void *msg_in, size_t msg_in_len,
> +				       void *msg_out, size_t msg_out_len) {
> +	return display->parent->hdcp->gsc_msg_send(gsc_context, msg_in,
> +msg_in_len, msg_out, msg_out_len); }
> +
> +bool intel_parent_hdcp_gsc_check_status(struct intel_display *display)
> +{
> +	return display->parent->hdcp->gsc_check_status(display->drm);
> +}
> +
> +struct intel_hdcp_gsc_context
> +*intel_parent_hdcp_gsc_context_alloc(struct intel_display *display) {
> +	return display->parent->hdcp->gsc_context_alloc(display->drm);
> +}
> +
> +void intel_parent_hdcp_gsc_context_free(struct intel_display *display,
> +					struct intel_hdcp_gsc_context
> *gsc_context) {
> +	display->parent->hdcp->gsc_context_free(gsc_context);
> +}
> +
>  bool intel_parent_irq_enabled(struct intel_display *display)  {
>  	return display->parent->irq->enabled(display->drm);
> diff --git a/drivers/gpu/drm/i915/display/intel_parent.h
> b/drivers/gpu/drm/i915/display/intel_parent.h
> index a8ca40b57ea9..8f91a6f75c53 100644
> --- a/drivers/gpu/drm/i915/display/intel_parent.h
> +++ b/drivers/gpu/drm/i915/display/intel_parent.h
> @@ -8,6 +8,16 @@
> 
>  struct dma_fence;
>  struct intel_display;
> +struct intel_hdcp_gsc_context;
> +
> +ssize_t intel_parent_hdcp_gsc_msg_send(struct intel_display *display,
> +				       struct intel_hdcp_gsc_context
> *gsc_context,
> +				       void *msg_in, size_t msg_in_len,
> +				       void *msg_out, size_t msg_out_len); bool
> +intel_parent_hdcp_gsc_check_status(struct intel_display *display);
> +struct intel_hdcp_gsc_context
> +*intel_parent_hdcp_gsc_context_alloc(struct intel_display *display); void
> intel_parent_hdcp_gsc_context_free(struct intel_display *display,
> +					struct intel_hdcp_gsc_context
> *gsc_context);
> 
>  bool intel_parent_irq_enabled(struct intel_display *display);  void
> intel_parent_irq_synchronize(struct intel_display *display); diff --git
> a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index db0dd25f734d..d98839427ef9 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -96,6 +96,7 @@
>  #include "i915_file_private.h"
>  #include "i915_getparam.h"
>  #include "i915_gmch.h"
> +#include "i915_hdcp_gsc.h"
>  #include "i915_hwmon.h"
>  #include "i915_ioc32.h"
>  #include "i915_ioctl.h"
> @@ -757,6 +758,7 @@ static void fence_priority_display(struct dma_fence
> *fence)  }
> 
>  static const struct intel_display_parent_interface parent = {
> +	.hdcp = &i915_display_hdcp_interface,
>  	.rpm = &i915_display_rpm_interface,
>  	.irq = &i915_display_irq_interface,
>  	.rps = &i915_display_rps_interface,
> diff --git a/drivers/gpu/drm/i915/i915_hdcp_gsc.c
> b/drivers/gpu/drm/i915/i915_hdcp_gsc.c
> index 38df5318e13a..9906da2aef1c 100644
> --- a/drivers/gpu/drm/i915/i915_hdcp_gsc.c
> +++ b/drivers/gpu/drm/i915/i915_hdcp_gsc.c
> @@ -4,13 +4,14 @@
>   */
> 
>  #include <drm/drm_print.h>
> +#include <drm/intel/display_parent_interface.h>
>  #include <drm/intel/i915_hdcp_interface.h>
> 
> -#include "display/intel_hdcp_gsc.h"
>  #include "gem/i915_gem_region.h"
>  #include "gt/intel_gt.h"
>  #include "gt/uc/intel_gsc_uc_heci_cmd_submit.h"
>  #include "i915_drv.h"
> +#include "i915_hdcp_gsc.h"
> 
>  struct intel_hdcp_gsc_context {
>  	struct drm_i915_private *i915;
> @@ -19,7 +20,7 @@ struct intel_hdcp_gsc_context {
>  	void *hdcp_cmd_out;
>  };
> 
> -bool intel_hdcp_gsc_check_status(struct drm_device *drm)
> +static bool intel_hdcp_gsc_check_status(struct drm_device *drm)
>  {
>  	struct drm_i915_private *i915 = to_i915(drm);
>  	struct intel_gt *gt = i915->media_gt;
> @@ -87,7 +88,7 @@ static int intel_hdcp_gsc_initialize_message(struct
> drm_i915_private *i915,
>  	return err;
>  }
> 
> -struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct
> drm_device *drm)
> +static struct intel_hdcp_gsc_context
> +*intel_hdcp_gsc_context_alloc(struct drm_device *drm)
>  {
>  	struct drm_i915_private *i915 = to_i915(drm);
>  	struct intel_hdcp_gsc_context *gsc_context; @@ -111,7 +112,7 @@
> struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct
> drm_device *d
>  	return gsc_context;
>  }
> 
> -void intel_hdcp_gsc_context_free(struct intel_hdcp_gsc_context *gsc_context)
> +static void intel_hdcp_gsc_context_free(struct intel_hdcp_gsc_context
> +*gsc_context)
>  {
>  	if (!gsc_context)
>  		return;
> @@ -168,9 +169,9 @@ static int intel_gsc_send_sync(struct drm_i915_private
> *i915,
>   * gsc cs memory header as stated in specs after which the normal HDCP
> payload
>   * will follow
>   */
> -ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
> -				void *msg_in, size_t msg_in_len,
> -				void *msg_out, size_t msg_out_len)
> +static ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context
> *gsc_context,
> +				       void *msg_in, size_t msg_in_len,
> +				       void *msg_out, size_t msg_out_len)
>  {
>  	struct drm_i915_private *i915 = gsc_context->i915;
>  	struct intel_gt *gt = i915->media_gt;
> @@ -237,3 +238,10 @@ ssize_t intel_hdcp_gsc_msg_send(struct
> intel_hdcp_gsc_context *gsc_context,
>  err:
>  	return ret;
>  }
> +
> +const struct intel_display_hdcp_interface i915_display_hdcp_interface = {
> +	.gsc_msg_send = intel_hdcp_gsc_msg_send,
> +	.gsc_check_status = intel_hdcp_gsc_check_status,
> +	.gsc_context_alloc = intel_hdcp_gsc_context_alloc,
> +	.gsc_context_free = intel_hdcp_gsc_context_free, };
> diff --git a/drivers/gpu/drm/i915/i915_hdcp_gsc.h
> b/drivers/gpu/drm/i915/i915_hdcp_gsc.h
> new file mode 100644
> index 000000000000..e0b562cfcde3
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/i915_hdcp_gsc.h
> @@ -0,0 +1,9 @@
> +/* SPDX-License-Identifier: MIT */
> +/* Copyright © 2025 Intel Corporation */
> +
> +#ifndef __I915_HDCP_GSC_H__
> +#define __I915_HDCP_GSC_H__
> +
> +extern const struct intel_display_hdcp_interface
> +i915_display_hdcp_interface;
> +
> +#endif /* __I915_HDCP_GSC_H__ */
> diff --git a/drivers/gpu/drm/xe/display/xe_display.c
> b/drivers/gpu/drm/xe/display/xe_display.c
> index 793115077615..9d2aa69ea428 100644
> --- a/drivers/gpu/drm/xe/display/xe_display.c
> +++ b/drivers/gpu/drm/xe/display/xe_display.c
> @@ -37,6 +37,7 @@
>  #include "skl_watermark.h"
>  #include "xe_display_rpm.h"
>  #include "xe_module.h"
> +#include "xe_hdcp_gsc.h"
> 
>  /* Ensure drm and display members are placed properly. */
> INTEL_DISPLAY_MEMBER_STATIC_ASSERT(struct xe_device, drm, display); @@
> -534,6 +535,7 @@ static const struct intel_display_irq_interface
> xe_display_irq_interface = {  };
> 
>  static const struct intel_display_parent_interface parent = {
> +	.hdcp = &xe_display_hdcp_interface,
>  	.rpm = &xe_display_rpm_interface,
>  	.irq = &xe_display_irq_interface,
>  };
> diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> index 71d21fde1736..07acae121aa7 100644
> --- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> +++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
> @@ -3,18 +3,20 @@
>   * Copyright 2023, Intel Corporation.
>   */
> 
> +#include <linux/delay.h>
> +
>  #include <drm/drm_print.h>
> +#include <drm/intel/display_parent_interface.h>
>  #include <drm/intel/i915_hdcp_interface.h> -#include <linux/delay.h>
> 
>  #include "abi/gsc_command_header_abi.h"
> -#include "intel_hdcp_gsc.h"
>  #include "xe_bo.h"
>  #include "xe_device.h"
>  #include "xe_device_types.h"
>  #include "xe_force_wake.h"
>  #include "xe_gsc_proxy.h"
>  #include "xe_gsc_submit.h"
> +#include "xe_hdcp_gsc.h"
>  #include "xe_map.h"
>  #include "xe_pm.h"
>  #include "xe_uc_fw.h"
> @@ -30,7 +32,7 @@ struct intel_hdcp_gsc_context {
> 
>  #define HDCP_GSC_HEADER_SIZE sizeof(struct intel_gsc_mtl_header)
> 
> -bool intel_hdcp_gsc_check_status(struct drm_device *drm)
> +static bool intel_hdcp_gsc_check_status(struct drm_device *drm)
>  {
>  	struct xe_device *xe = to_xe_device(drm);
>  	struct xe_tile *tile = xe_device_get_root_tile(xe); @@ -87,7 +89,7 @@
> static int intel_hdcp_gsc_initialize_message(struct xe_device *xe,
>  	return ret;
>  }
> 
> -struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct
> drm_device *drm)
> +static struct intel_hdcp_gsc_context
> +*intel_hdcp_gsc_context_alloc(struct drm_device *drm)
>  {
>  	struct xe_device *xe = to_xe_device(drm);
>  	struct intel_hdcp_gsc_context *gsc_context; @@ -111,7 +113,7 @@
> struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct
> drm_device *d
>  	return gsc_context;
>  }
> 
> -void intel_hdcp_gsc_context_free(struct intel_hdcp_gsc_context *gsc_context)
> +static void intel_hdcp_gsc_context_free(struct intel_hdcp_gsc_context
> +*gsc_context)
>  {
>  	if (!gsc_context)
>  		return;
> @@ -146,9 +148,9 @@ static int xe_gsc_send_sync(struct xe_device *xe,
>  	return ret;
>  }
> 
> -ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context *gsc_context,
> -				void *msg_in, size_t msg_in_len,
> -				void *msg_out, size_t msg_out_len)
> +static ssize_t intel_hdcp_gsc_msg_send(struct intel_hdcp_gsc_context
> *gsc_context,
> +				       void *msg_in, size_t msg_in_len,
> +				       void *msg_out, size_t msg_out_len)
>  {
>  	struct xe_device *xe = gsc_context->xe;
>  	const size_t max_msg_size = PAGE_SIZE - HDCP_GSC_HEADER_SIZE;
> @@ -198,3 +200,10 @@ ssize_t intel_hdcp_gsc_msg_send(struct
> intel_hdcp_gsc_context *gsc_context,
> 
>  	return ret;
>  }
> +
> +const struct intel_display_hdcp_interface xe_display_hdcp_interface = {
> +	.gsc_msg_send = intel_hdcp_gsc_msg_send,
> +	.gsc_check_status = intel_hdcp_gsc_check_status,
> +	.gsc_context_alloc = intel_hdcp_gsc_context_alloc,
> +	.gsc_context_free = intel_hdcp_gsc_context_free, };
> diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.h
> b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.h
> new file mode 100644
> index 000000000000..c1062e4b62f7
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.h
> @@ -0,0 +1,9 @@
> +/* SPDX-License-Identifier: MIT */
> +/* Copyright © 2025 Intel Corporation */
> +
> +#ifndef __XE_HDCP_GSC_H__
> +#define __XE_HDCP_GSC_H__
> +
> +extern const struct intel_display_hdcp_interface
> +xe_display_hdcp_interface;
> +
> +#endif
> diff --git a/include/drm/intel/display_parent_interface.h
> b/include/drm/intel/display_parent_interface.h
> index 4135d1e1a67e..61d1b22adc83 100644
> --- a/include/drm/intel/display_parent_interface.h
> +++ b/include/drm/intel/display_parent_interface.h
> @@ -8,6 +8,7 @@
> 
>  struct dma_fence;
>  struct drm_device;
> +struct intel_hdcp_gsc_context;
>  struct ref_tracker;
> 
>  struct intel_display_rpm_interface {
> @@ -26,6 +27,15 @@ struct intel_display_rpm_interface {
>  	void (*assert_unblock)(const struct drm_device *drm);  };
> 
> +struct intel_display_hdcp_interface {
> +	ssize_t (*gsc_msg_send)(struct intel_hdcp_gsc_context *gsc_context,
> +				void *msg_in, size_t msg_in_len,
> +				void *msg_out, size_t msg_out_len);
> +	bool (*gsc_check_status)(struct drm_device *drm);
> +	struct intel_hdcp_gsc_context *(*gsc_context_alloc)(struct drm_device
> *drm);
> +	void (*gsc_context_free)(struct intel_hdcp_gsc_context *gsc_context);
> +};
> +
>  struct intel_display_irq_interface {
>  	bool (*enabled)(struct drm_device *drm);
>  	void (*synchronize)(struct drm_device *drm); @@ -50,6 +60,9 @@
> struct intel_display_rps_interface {
>   * check the optional pointers.
>   */
>  struct intel_display_parent_interface {
> +	/** @hdcp: HDCP GSC interface */
> +	const struct intel_display_hdcp_interface *hdcp;
> +
>  	/** @rpm: Runtime PM functions */
>  	const struct intel_display_rpm_interface *rpm;
> 
> --
> 2.47.3


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

* RE: [PATCH 1/2] drm/i915/hdcp: move i915 specific HDCP GSC implementation to i915
  2025-11-28  5:57   ` Kandpal, Suraj
@ 2025-11-28  9:27     ` Jani Nikula
  0 siblings, 0 replies; 8+ messages in thread
From: Jani Nikula @ 2025-11-28  9:27 UTC (permalink / raw)
  To: Kandpal, Suraj, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org

On Fri, 28 Nov 2025, "Kandpal, Suraj" <suraj.kandpal@intel.com> wrote:
>> Subject: [PATCH 1/2] drm/i915/hdcp: move i915 specific HDCP GSC
>> implementation to i915
>> 
>> The HDCP GSC implementation is different for both i915 and xe. Move the
>> i915 specific implementation from display to i915 core.
>> 
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> LGTM,
> Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>

Thanks, series pushed to din.

BR,
Jani.


-- 
Jani Nikula, Intel

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

end of thread, other threads:[~2025-11-28  9:28 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-25 17:17 [PATCH 0/2] drm/i915/hdcp: call HDCP GSC hook via parent interface Jani Nikula
2025-11-25 17:17 ` [PATCH 1/2] drm/i915/hdcp: move i915 specific HDCP GSC implementation to i915 Jani Nikula
2025-11-28  5:57   ` Kandpal, Suraj
2025-11-28  9:27     ` Jani Nikula
2025-11-25 17:17 ` [PATCH 2/2] drm/{i915, xe}/hdcp: use parent interface for HDCP GSC calls Jani Nikula
2025-11-28  6:02   ` Kandpal, Suraj
2025-11-25 18:33 ` ✓ i915.CI.BAT: success for drm/i915/hdcp: call HDCP GSC hook via parent interface Patchwork
2025-11-26  8:33 ` ✓ i915.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;
as well as URLs for NNTP newsgroup(s).