intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces
@ 2025-09-24 16:43 Jani Nikula
  2025-09-24 16:43 ` [PATCH 01/11] drm/{i915, xe}/stolen: rename i915_stolen_fb to intel_stolen_node Jani Nikula
                   ` (13 more replies)
  0 siblings, 14 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala


Jani Nikula (11):
  drm/{i915,xe}/stolen: rename i915_stolen_fb to intel_stolen_node
  drm/xe/stolen: rename fb to node in stolen compat header
  drm/xe/stolen: convert compat stolen macros to inline functions
  drm/xe/stolen: switch from BUG_ON() to WARN_ON() in compat
  drm/i915/stolen: convert intel_stolen_node into a real struct of its
    own
  drm/xe/stolen: convert compat static inlines to proper functions
  drm/{i915,xe}/stolen: make struct intel_stolen_node opaque
  drm/{i915,xe}/stolen: add device pointer to struct intel_stolen_node
  drm/{i915,xe}/stolen: use the stored i915/xe device pointer
  drm/{i915,xe}/stolen: convert stolen interface to struct drm_device
  drm/xe/stolen: use the same types as i915 interface

 drivers/gpu/drm/i915/display/intel_fbc.c      |  76 ++++++-----
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c    | 104 +++++++++++----
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h    |  34 +++--
 drivers/gpu/drm/xe/Makefile                   |   1 +
 .../compat-i915-headers/gem/i915_gem_stolen.h | 105 +++++----------
 drivers/gpu/drm/xe/display/xe_stolen.c        | 123 ++++++++++++++++++
 6 files changed, 290 insertions(+), 153 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/display/xe_stolen.c

-- 
2.47.3


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

* [PATCH 01/11] drm/{i915, xe}/stolen: rename i915_stolen_fb to intel_stolen_node
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 16:43 ` [PATCH 02/11] drm/xe/stolen: rename fb to node in stolen compat header Jani Nikula
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

Use a more generic name than one that refers to "i915" and "fb".

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c               |  2 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h             |  2 +-
 .../drm/xe/compat-i915-headers/gem/i915_gem_stolen.h   | 10 +++++-----
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 0d380c825791..6a7357fa89db 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -102,7 +102,7 @@ struct intel_fbc {
 	struct mutex lock;
 	unsigned int busy_bits;
 
-	struct i915_stolen_fb compressed_fb, compressed_llb;
+	struct intel_stolen_node compressed_fb, compressed_llb;
 
 	enum intel_fbc_id id;
 
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
index dfe0db8bb1b9..c2f9c994e0ae 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
@@ -12,7 +12,7 @@ struct drm_i915_private;
 struct drm_mm_node;
 struct drm_i915_gem_object;
 
-#define i915_stolen_fb drm_mm_node
+#define intel_stolen_node drm_mm_node
 
 int i915_gem_stolen_insert_node(struct drm_i915_private *i915,
 				struct drm_mm_node *node, u64 size,
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
index f097fc6d5127..62389b290907 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
@@ -12,12 +12,12 @@
 
 struct xe_bo;
 
-struct i915_stolen_fb {
+struct intel_stolen_node {
 	struct xe_bo *bo;
 };
 
 static inline int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
-						       struct i915_stolen_fb *fb,
+						       struct intel_stolen_node *fb,
 						       u32 size, u32 align,
 						       u32 start, u32 end)
 {
@@ -47,7 +47,7 @@ static inline int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
 }
 
 static inline int i915_gem_stolen_insert_node(struct xe_device *xe,
-					      struct i915_stolen_fb *fb,
+					      struct intel_stolen_node *fb,
 					      u32 size, u32 align)
 {
 	/* Not used on xe */
@@ -56,7 +56,7 @@ static inline int i915_gem_stolen_insert_node(struct xe_device *xe,
 }
 
 static inline void i915_gem_stolen_remove_node(struct xe_device *xe,
-					       struct i915_stolen_fb *fb)
+					       struct intel_stolen_node *fb)
 {
 	xe_bo_unpin_map_no_vm(fb->bo);
 	fb->bo = NULL;
@@ -65,7 +65,7 @@ static inline void i915_gem_stolen_remove_node(struct xe_device *xe,
 #define i915_gem_stolen_initialized(xe) (!!ttm_manager_type(&(xe)->ttm, XE_PL_STOLEN))
 #define i915_gem_stolen_node_allocated(fb) (!!((fb)->bo))
 
-static inline u32 i915_gem_stolen_node_offset(struct i915_stolen_fb *fb)
+static inline u32 i915_gem_stolen_node_offset(struct intel_stolen_node *fb)
 {
 	struct xe_res_cursor res;
 
-- 
2.47.3


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

* [PATCH 02/11] drm/xe/stolen: rename fb to node in stolen compat header
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
  2025-09-24 16:43 ` [PATCH 01/11] drm/{i915, xe}/stolen: rename i915_stolen_fb to intel_stolen_node Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 16:43 ` [PATCH 03/11] drm/xe/stolen: convert compat stolen macros to inline functions Jani Nikula
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

It's more about node than fb, and this makes more sense now that the
struct is also named intel_stolen_node.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 .../compat-i915-headers/gem/i915_gem_stolen.h | 24 +++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
index 62389b290907..b45575b15322 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
@@ -17,7 +17,7 @@ struct intel_stolen_node {
 };
 
 static inline int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
-						       struct intel_stolen_node *fb,
+						       struct intel_stolen_node *node,
 						       u32 size, u32 align,
 						       u32 start, u32 end)
 {
@@ -41,13 +41,13 @@ static inline int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
 		return err;
 	}
 
-	fb->bo = bo;
+	node->bo = bo;
 
 	return err;
 }
 
 static inline int i915_gem_stolen_insert_node(struct xe_device *xe,
-					      struct intel_stolen_node *fb,
+					      struct intel_stolen_node *node,
 					      u32 size, u32 align)
 {
 	/* Not used on xe */
@@ -56,20 +56,20 @@ static inline int i915_gem_stolen_insert_node(struct xe_device *xe,
 }
 
 static inline void i915_gem_stolen_remove_node(struct xe_device *xe,
-					       struct intel_stolen_node *fb)
+					       struct intel_stolen_node *node)
 {
-	xe_bo_unpin_map_no_vm(fb->bo);
-	fb->bo = NULL;
+	xe_bo_unpin_map_no_vm(node->bo);
+	node->bo = NULL;
 }
 
 #define i915_gem_stolen_initialized(xe) (!!ttm_manager_type(&(xe)->ttm, XE_PL_STOLEN))
-#define i915_gem_stolen_node_allocated(fb) (!!((fb)->bo))
+#define i915_gem_stolen_node_allocated(node) (!!((node)->bo))
 
-static inline u32 i915_gem_stolen_node_offset(struct intel_stolen_node *fb)
+static inline u32 i915_gem_stolen_node_offset(struct intel_stolen_node *node)
 {
 	struct xe_res_cursor res;
 
-	xe_res_first(fb->bo->ttm.resource, 0, 4096, &res);
+	xe_res_first(node->bo->ttm.resource, 0, 4096, &res);
 	return res.start;
 }
 
@@ -78,8 +78,8 @@ static inline u32 i915_gem_stolen_node_offset(struct intel_stolen_node *fb)
 /* Used for gen9 specific WA. Gen9 is not supported by Xe */
 #define i915_gem_stolen_area_size(xe) (!WARN_ON(1))
 
-#define i915_gem_stolen_node_address(xe, fb) (xe_ttm_stolen_gpu_offset(xe) + \
-					 i915_gem_stolen_node_offset(fb))
-#define i915_gem_stolen_node_size(fb) ((u64)((fb)->bo->ttm.base.size))
+#define i915_gem_stolen_node_address(xe, node) (xe_ttm_stolen_gpu_offset(xe) + \
+					 i915_gem_stolen_node_offset(node))
+#define i915_gem_stolen_node_size(node) ((u64)((node)->bo->ttm.base.size))
 
 #endif
-- 
2.47.3


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

* [PATCH 03/11] drm/xe/stolen: convert compat stolen macros to inline functions
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
  2025-09-24 16:43 ` [PATCH 01/11] drm/{i915, xe}/stolen: rename i915_stolen_fb to intel_stolen_node Jani Nikula
  2025-09-24 16:43 ` [PATCH 02/11] drm/xe/stolen: rename fb to node in stolen compat header Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 16:43 ` [PATCH 04/11] drm/xe/stolen: switch from BUG_ON() to WARN_ON() in compat Jani Nikula
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

Improve type safety. Allows getting rid of a __maybe_unused annotation
too.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c      |  2 +-
 .../compat-i915-headers/gem/i915_gem_stolen.h | 39 +++++++++++++++----
 2 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 6a7357fa89db..cc67de6c06cf 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -797,7 +797,7 @@ static u64 intel_fbc_cfb_base_max(struct intel_display *display)
 
 static u64 intel_fbc_stolen_end(struct intel_display *display)
 {
-	struct drm_i915_private __maybe_unused *i915 = to_i915(display->drm);
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u64 end;
 
 	/* The FBC hardware for BDW/SKL doesn't have access to the stolen
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
index b45575b15322..2c77457837e4 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
@@ -62,8 +62,15 @@ static inline void i915_gem_stolen_remove_node(struct xe_device *xe,
 	node->bo = NULL;
 }
 
-#define i915_gem_stolen_initialized(xe) (!!ttm_manager_type(&(xe)->ttm, XE_PL_STOLEN))
-#define i915_gem_stolen_node_allocated(node) (!!((node)->bo))
+static inline bool i915_gem_stolen_initialized(struct xe_device *xe)
+{
+	return ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
+}
+
+static inline bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node)
+{
+	return node->bo;
+}
 
 static inline u32 i915_gem_stolen_node_offset(struct intel_stolen_node *node)
 {
@@ -74,12 +81,30 @@ static inline u32 i915_gem_stolen_node_offset(struct intel_stolen_node *node)
 }
 
 /* Used for < gen4. These are not supported by Xe */
-#define i915_gem_stolen_area_address(xe) (!WARN_ON(1))
+static inline u64 i915_gem_stolen_area_address(const struct xe_device *xe)
+{
+	WARN_ON(1);
+
+	return 0;
+}
+
 /* Used for gen9 specific WA. Gen9 is not supported by Xe */
-#define i915_gem_stolen_area_size(xe) (!WARN_ON(1))
+static inline u64 i915_gem_stolen_area_size(const struct xe_device *xe)
+{
+	WARN_ON(1);
+
+	return 0;
+}
 
-#define i915_gem_stolen_node_address(xe, node) (xe_ttm_stolen_gpu_offset(xe) + \
-					 i915_gem_stolen_node_offset(node))
-#define i915_gem_stolen_node_size(node) ((u64)((node)->bo->ttm.base.size))
+static inline u64 i915_gem_stolen_node_address(struct xe_device *xe,
+					       struct intel_stolen_node *node)
+{
+	return xe_ttm_stolen_gpu_offset(xe) + i915_gem_stolen_node_offset(node);
+}
+
+static inline u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node)
+{
+	return node->bo->ttm.base.size;
+}
 
 #endif
-- 
2.47.3


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

* [PATCH 04/11] drm/xe/stolen: switch from BUG_ON() to WARN_ON() in compat
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (2 preceding siblings ...)
  2025-09-24 16:43 ` [PATCH 03/11] drm/xe/stolen: convert compat stolen macros to inline functions Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 16:43 ` [PATCH 05/11] drm/i915/stolen: convert intel_stolen_node into a real struct of its own Jani Nikula
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

We're pretty much never supposed to be using BUG_ON(). Switch to
WARN_ON().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
index 2c77457837e4..be249f51231d 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
@@ -51,7 +51,8 @@ static inline int i915_gem_stolen_insert_node(struct xe_device *xe,
 					      u32 size, u32 align)
 {
 	/* Not used on xe */
-	BUG_ON(1);
+	WARN_ON(1);
+
 	return -ENODEV;
 }
 
-- 
2.47.3


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

* [PATCH 05/11] drm/i915/stolen: convert intel_stolen_node into a real struct of its own
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (3 preceding siblings ...)
  2025-09-24 16:43 ` [PATCH 04/11] drm/xe/stolen: switch from BUG_ON() to WARN_ON() in compat Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 16:43 ` [PATCH 06/11] drm/xe/stolen: convert compat static inlines to proper functions Jani Nikula
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

i915_gem_stolen.h simply defines intel_stolen_node as drm_mm_node. Make
struct intel_stolen_node an actual struct of its own right, and embed
struct drm_mm_node inside. This allow better unification between i915
and xe.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 66 ++++++++++++++--------
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h | 22 ++++----
 2 files changed, 56 insertions(+), 32 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index 3380151edfc1..70ee34303e36 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -36,9 +36,9 @@
  * for is a boon.
  */
 
-int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915,
-					 struct drm_mm_node *node, u64 size,
-					 unsigned alignment, u64 start, u64 end)
+static int __i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915,
+						  struct drm_mm_node *node, u64 size,
+						  unsigned int alignment, u64 start, u64 end)
 {
 	int ret;
 
@@ -58,24 +58,46 @@ int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915,
 	return ret;
 }
 
+int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915,
+					 struct intel_stolen_node *node, u64 size,
+					 unsigned int alignment, u64 start, u64 end)
+{
+	return __i915_gem_stolen_insert_node_in_range(i915, &node->node,
+						      size, alignment,
+						      start, end);
+}
+
+static int __i915_gem_stolen_insert_node(struct drm_i915_private *i915,
+					 struct drm_mm_node *node, u64 size,
+					 unsigned int alignment)
+{
+	return __i915_gem_stolen_insert_node_in_range(i915, node,
+						      size, alignment,
+						      I915_GEM_STOLEN_BIAS,
+						      U64_MAX);
+}
+
 int i915_gem_stolen_insert_node(struct drm_i915_private *i915,
-				struct drm_mm_node *node, u64 size,
-				unsigned alignment)
+				struct intel_stolen_node *node, u64 size,
+				unsigned int alignment)
 {
-	return i915_gem_stolen_insert_node_in_range(i915, node,
-						    size, alignment,
-						    I915_GEM_STOLEN_BIAS,
-						    U64_MAX);
+	return __i915_gem_stolen_insert_node(i915, &node->node, size, alignment);
 }
 
-void i915_gem_stolen_remove_node(struct drm_i915_private *i915,
-				 struct drm_mm_node *node)
+static void __i915_gem_stolen_remove_node(struct drm_i915_private *i915,
+					  struct drm_mm_node *node)
 {
 	mutex_lock(&i915->mm.stolen_lock);
 	drm_mm_remove_node(node);
 	mutex_unlock(&i915->mm.stolen_lock);
 }
 
+void i915_gem_stolen_remove_node(struct drm_i915_private *i915,
+				 struct intel_stolen_node *node)
+{
+	__i915_gem_stolen_remove_node(i915, &node->node);
+}
+
 static bool valid_stolen_size(struct drm_i915_private *i915, struct resource *dsm)
 {
 	return (dsm->start != 0 || HAS_LMEMBAR_SMEM_STOLEN(i915)) && dsm->end > dsm->start;
@@ -683,7 +705,7 @@ i915_gem_object_release_stolen(struct drm_i915_gem_object *obj)
 	struct drm_mm_node *stolen = fetch_and_zero(&obj->stolen);
 
 	GEM_BUG_ON(!stolen);
-	i915_gem_stolen_remove_node(i915, stolen);
+	__i915_gem_stolen_remove_node(i915, stolen);
 	kfree(stolen);
 
 	i915_gem_object_release_memory_region(obj);
@@ -772,8 +794,8 @@ static int _i915_gem_object_stolen_init(struct intel_memory_region *mem,
 		ret = drm_mm_reserve_node(&i915->mm.stolen, stolen);
 		mutex_unlock(&i915->mm.stolen_lock);
 	} else {
-		ret = i915_gem_stolen_insert_node(i915, stolen, size,
-						  mem->min_page_size);
+		ret = __i915_gem_stolen_insert_node(i915, stolen, size,
+						    mem->min_page_size);
 	}
 	if (ret)
 		goto err_free;
@@ -785,7 +807,7 @@ static int _i915_gem_object_stolen_init(struct intel_memory_region *mem,
 	return 0;
 
 err_remove:
-	i915_gem_stolen_remove_node(i915, stolen);
+	__i915_gem_stolen_remove_node(i915, stolen);
 err_free:
 	kfree(stolen);
 	return ret;
@@ -1016,22 +1038,22 @@ u64 i915_gem_stolen_area_size(const struct drm_i915_private *i915)
 }
 
 u64 i915_gem_stolen_node_address(const struct drm_i915_private *i915,
-				 const struct drm_mm_node *node)
+				 const struct intel_stolen_node *node)
 {
 	return i915->dsm.stolen.start + i915_gem_stolen_node_offset(node);
 }
 
-bool i915_gem_stolen_node_allocated(const struct drm_mm_node *node)
+bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node)
 {
-	return drm_mm_node_allocated(node);
+	return drm_mm_node_allocated(&node->node);
 }
 
-u64 i915_gem_stolen_node_offset(const struct drm_mm_node *node)
+u64 i915_gem_stolen_node_offset(const struct intel_stolen_node *node)
 {
-	return node->start;
+	return node->node.start;
 }
 
-u64 i915_gem_stolen_node_size(const struct drm_mm_node *node)
+u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node)
 {
-	return node->size;
+	return node->node.size;
 }
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
index c2f9c994e0ae..9e42d5a4cf13 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
@@ -7,22 +7,24 @@
 #define __I915_GEM_STOLEN_H__
 
 #include <linux/types.h>
+#include <drm/drm_mm.h>
 
-struct drm_i915_private;
-struct drm_mm_node;
 struct drm_i915_gem_object;
+struct drm_i915_private;
 
-#define intel_stolen_node drm_mm_node
+struct intel_stolen_node {
+	struct drm_mm_node node;
+};
 
 int i915_gem_stolen_insert_node(struct drm_i915_private *i915,
-				struct drm_mm_node *node, u64 size,
+				struct intel_stolen_node *node, u64 size,
 				unsigned alignment);
 int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915,
-					 struct drm_mm_node *node, u64 size,
+					 struct intel_stolen_node *node, u64 size,
 					 unsigned alignment, u64 start,
 					 u64 end);
 void i915_gem_stolen_remove_node(struct drm_i915_private *i915,
-				 struct drm_mm_node *node);
+				 struct intel_stolen_node *node);
 struct intel_memory_region *
 i915_gem_stolen_smem_setup(struct drm_i915_private *i915, u16 type,
 			   u16 instance);
@@ -43,10 +45,10 @@ u64 i915_gem_stolen_area_address(const struct drm_i915_private *i915);
 u64 i915_gem_stolen_area_size(const struct drm_i915_private *i915);
 
 u64 i915_gem_stolen_node_address(const struct drm_i915_private *i915,
-				 const struct drm_mm_node *node);
+				 const struct intel_stolen_node *node);
 
-bool i915_gem_stolen_node_allocated(const struct drm_mm_node *node);
-u64 i915_gem_stolen_node_offset(const struct drm_mm_node *node);
-u64 i915_gem_stolen_node_size(const struct drm_mm_node *node);
+bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node);
+u64 i915_gem_stolen_node_offset(const struct intel_stolen_node *node);
+u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node);
 
 #endif /* __I915_GEM_STOLEN_H__ */
-- 
2.47.3


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

* [PATCH 06/11] drm/xe/stolen: convert compat static inlines to proper functions
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (4 preceding siblings ...)
  2025-09-24 16:43 ` [PATCH 05/11] drm/i915/stolen: convert intel_stolen_node into a real struct of its own Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 16:43 ` [PATCH 07/11] drm/{i915, xe}/stolen: make struct intel_stolen_node opaque Jani Nikula
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

Add display/xe_stolen.c as the implementation for the stolen interface
exposed to display. This allows hiding the implementation details that
shouldn't be exposed to display.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/xe/Makefile                   |   1 +
 .../compat-i915-headers/gem/i915_gem_stolen.h | 104 ++++--------------
 drivers/gpu/drm/xe/display/xe_stolen.c        |  99 +++++++++++++++++
 3 files changed, 119 insertions(+), 85 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/display/xe_stolen.c

diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index d9c6cf0f189e..ac65722e5d38 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -214,6 +214,7 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \
 	display/xe_hdcp_gsc.o \
 	display/xe_panic.o \
 	display/xe_plane_initial.o \
+	display/xe_stolen.o \
 	display/xe_tdf.o
 
 # SOC code shared with i915
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
index be249f51231d..10f110b9bf77 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
@@ -6,106 +6,40 @@
 #ifndef _I915_GEM_STOLEN_H_
 #define _I915_GEM_STOLEN_H_
 
-#include "xe_ttm_stolen_mgr.h"
-#include "xe_res_cursor.h"
-#include "xe_validation.h"
+#include <linux/types.h>
 
 struct xe_bo;
+struct xe_device;
 
 struct intel_stolen_node {
 	struct xe_bo *bo;
 };
 
-static inline int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
-						       struct intel_stolen_node *node,
-						       u32 size, u32 align,
-						       u32 start, u32 end)
-{
-	struct xe_bo *bo;
-	int err = 0;
-	u32 flags = XE_BO_FLAG_PINNED | XE_BO_FLAG_STOLEN;
-
-	if (start < SZ_4K)
-		start = SZ_4K;
-
-	if (align) {
-		size = ALIGN(size, align);
-		start = ALIGN(start, align);
-	}
-
-	bo = xe_bo_create_pin_range_novm(xe, xe_device_get_root_tile(xe),
-					 size, start, end, ttm_bo_type_kernel, flags);
-	if (IS_ERR(bo)) {
-		err = PTR_ERR(bo);
-		bo = NULL;
-		return err;
-	}
-
-	node->bo = bo;
-
-	return err;
-}
-
-static inline int i915_gem_stolen_insert_node(struct xe_device *xe,
-					      struct intel_stolen_node *node,
-					      u32 size, u32 align)
-{
-	/* Not used on xe */
-	WARN_ON(1);
-
-	return -ENODEV;
-}
-
-static inline void i915_gem_stolen_remove_node(struct xe_device *xe,
-					       struct intel_stolen_node *node)
-{
-	xe_bo_unpin_map_no_vm(node->bo);
-	node->bo = NULL;
-}
-
-static inline bool i915_gem_stolen_initialized(struct xe_device *xe)
-{
-	return ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
-}
+int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
+					 struct intel_stolen_node *node,
+					 u32 size, u32 align,
+					 u32 start, u32 end);
 
-static inline bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node)
-{
-	return node->bo;
-}
+int i915_gem_stolen_insert_node(struct xe_device *xe,
+				struct intel_stolen_node *node,
+				u32 size, u32 align);
 
-static inline u32 i915_gem_stolen_node_offset(struct intel_stolen_node *node)
-{
-	struct xe_res_cursor res;
+void i915_gem_stolen_remove_node(struct xe_device *xe,
+				 struct intel_stolen_node *node);
 
-	xe_res_first(node->bo->ttm.resource, 0, 4096, &res);
-	return res.start;
-}
+bool i915_gem_stolen_initialized(struct xe_device *xe);
 
-/* Used for < gen4. These are not supported by Xe */
-static inline u64 i915_gem_stolen_area_address(const struct xe_device *xe)
-{
-	WARN_ON(1);
+bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node);
 
-	return 0;
-}
+u32 i915_gem_stolen_node_offset(struct intel_stolen_node *node);
 
-/* Used for gen9 specific WA. Gen9 is not supported by Xe */
-static inline u64 i915_gem_stolen_area_size(const struct xe_device *xe)
-{
-	WARN_ON(1);
+u64 i915_gem_stolen_area_address(const struct xe_device *xe);
 
-	return 0;
-}
+u64 i915_gem_stolen_area_size(const struct xe_device *xe);
 
-static inline u64 i915_gem_stolen_node_address(struct xe_device *xe,
-					       struct intel_stolen_node *node)
-{
-	return xe_ttm_stolen_gpu_offset(xe) + i915_gem_stolen_node_offset(node);
-}
+u64 i915_gem_stolen_node_address(struct xe_device *xe,
+				 struct intel_stolen_node *node);
 
-static inline u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node)
-{
-	return node->bo->ttm.base.size;
-}
+u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node);
 
 #endif
diff --git a/drivers/gpu/drm/xe/display/xe_stolen.c b/drivers/gpu/drm/xe/display/xe_stolen.c
new file mode 100644
index 000000000000..ab156a9f2c26
--- /dev/null
+++ b/drivers/gpu/drm/xe/display/xe_stolen.c
@@ -0,0 +1,99 @@
+// SPDX-License-Identifier: MIT
+/* Copyright © 2025 Intel Corporation */
+
+#include "gem/i915_gem_stolen.h"
+#include "xe_res_cursor.h"
+#include "xe_ttm_stolen_mgr.h"
+#include "xe_validation.h"
+
+int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
+					 struct intel_stolen_node *node,
+					 u32 size, u32 align,
+					 u32 start, u32 end)
+{
+	struct xe_bo *bo;
+	int err = 0;
+	u32 flags = XE_BO_FLAG_PINNED | XE_BO_FLAG_STOLEN;
+
+	if (start < SZ_4K)
+		start = SZ_4K;
+
+	if (align) {
+		size = ALIGN(size, align);
+		start = ALIGN(start, align);
+	}
+
+	bo = xe_bo_create_pin_range_novm(xe, xe_device_get_root_tile(xe),
+					 size, start, end, ttm_bo_type_kernel, flags);
+	if (IS_ERR(bo)) {
+		err = PTR_ERR(bo);
+		bo = NULL;
+		return err;
+	}
+
+	node->bo = bo;
+
+	return err;
+}
+
+int i915_gem_stolen_insert_node(struct xe_device *xe,
+				struct intel_stolen_node *node,
+				u32 size, u32 align)
+{
+	/* Not used on xe */
+	WARN_ON(1);
+
+	return -ENODEV;
+}
+
+void i915_gem_stolen_remove_node(struct xe_device *xe,
+				 struct intel_stolen_node *node)
+{
+	xe_bo_unpin_map_no_vm(node->bo);
+	node->bo = NULL;
+}
+
+bool i915_gem_stolen_initialized(struct xe_device *xe)
+{
+	return ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
+}
+
+bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node)
+{
+	return node->bo;
+}
+
+u32 i915_gem_stolen_node_offset(struct intel_stolen_node *node)
+{
+	struct xe_res_cursor res;
+
+	xe_res_first(node->bo->ttm.resource, 0, 4096, &res);
+	return res.start;
+}
+
+/* Used for < gen4. These are not supported by Xe */
+u64 i915_gem_stolen_area_address(const struct xe_device *xe)
+{
+	WARN_ON(1);
+
+	return 0;
+}
+
+/* Used for gen9 specific WA. Gen9 is not supported by Xe */
+u64 i915_gem_stolen_area_size(const struct xe_device *xe)
+{
+	WARN_ON(1);
+
+	return 0;
+}
+
+u64 i915_gem_stolen_node_address(struct xe_device *xe,
+				 struct intel_stolen_node *node)
+{
+	return xe_ttm_stolen_gpu_offset(xe) + i915_gem_stolen_node_offset(node);
+}
+
+u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node)
+{
+	return node->bo->ttm.base.size;
+}
-- 
2.47.3


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

* [PATCH 07/11] drm/{i915, xe}/stolen: make struct intel_stolen_node opaque
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (5 preceding siblings ...)
  2025-09-24 16:43 ` [PATCH 06/11] drm/xe/stolen: convert compat static inlines to proper functions Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 16:43 ` [PATCH 08/11] drm/{i915, xe}/stolen: add device pointer to struct intel_stolen_node Jani Nikula
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

Add i915_gem_stolen_node_alloc() and i915_gem_stolen_node_free(),
returning struct intel_stolen_node pointer. Make struct
intel_stolen_node an opaque pointer, with different implementations in
i915 and xe.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c      | 58 ++++++++++++-------
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c    | 20 +++++++
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h    | 10 ++--
 .../compat-i915-headers/gem/i915_gem_stolen.h | 11 ++--
 drivers/gpu/drm/xe/display/xe_stolen.c        | 20 +++++++
 5 files changed, 89 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index cc67de6c06cf..05199434cb7c 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -102,7 +102,8 @@ struct intel_fbc {
 	struct mutex lock;
 	unsigned int busy_bits;
 
-	struct intel_stolen_node compressed_fb, compressed_llb;
+	struct intel_stolen_node *compressed_fb;
+	struct intel_stolen_node *compressed_llb;
 
 	enum intel_fbc_id id;
 
@@ -380,16 +381,16 @@ static void i8xx_fbc_program_cfb(struct intel_fbc *fbc)
 
 	drm_WARN_ON(display->drm,
 		    range_end_overflows_t(u64, i915_gem_stolen_area_address(i915),
-					  i915_gem_stolen_node_offset(&fbc->compressed_fb),
+					  i915_gem_stolen_node_offset(fbc->compressed_fb),
 					  U32_MAX));
 	drm_WARN_ON(display->drm,
 		    range_end_overflows_t(u64, i915_gem_stolen_area_address(i915),
-					  i915_gem_stolen_node_offset(&fbc->compressed_llb),
+					  i915_gem_stolen_node_offset(fbc->compressed_llb),
 					  U32_MAX));
 	intel_de_write(display, FBC_CFB_BASE,
-		       i915_gem_stolen_node_address(i915, &fbc->compressed_fb));
+		       i915_gem_stolen_node_address(i915, fbc->compressed_fb));
 	intel_de_write(display, FBC_LL_BASE,
-		       i915_gem_stolen_node_address(i915, &fbc->compressed_llb));
+		       i915_gem_stolen_node_address(i915, fbc->compressed_llb));
 }
 
 static const struct intel_fbc_funcs i8xx_fbc_funcs = {
@@ -497,7 +498,7 @@ static void g4x_fbc_program_cfb(struct intel_fbc *fbc)
 	struct intel_display *display = fbc->display;
 
 	intel_de_write(display, DPFC_CB_BASE,
-		       i915_gem_stolen_node_offset(&fbc->compressed_fb));
+		       i915_gem_stolen_node_offset(fbc->compressed_fb));
 }
 
 static const struct intel_fbc_funcs g4x_fbc_funcs = {
@@ -566,7 +567,7 @@ static void ilk_fbc_program_cfb(struct intel_fbc *fbc)
 	struct intel_display *display = fbc->display;
 
 	intel_de_write(display, ILK_DPFC_CB_BASE(fbc->id),
-		       i915_gem_stolen_node_offset(&fbc->compressed_fb));
+		       i915_gem_stolen_node_offset(fbc->compressed_fb));
 }
 
 static const struct intel_fbc_funcs ilk_fbc_funcs = {
@@ -842,13 +843,13 @@ static int find_compression_limit(struct intel_fbc *fbc,
 	size /= limit;
 
 	/* Try to over-allocate to reduce reallocations and fragmentation. */
-	ret = i915_gem_stolen_insert_node_in_range(i915, &fbc->compressed_fb,
+	ret = i915_gem_stolen_insert_node_in_range(i915, fbc->compressed_fb,
 						   size <<= 1, 4096, 0, end);
 	if (ret == 0)
 		return limit;
 
 	for (; limit <= intel_fbc_max_limit(display); limit <<= 1) {
-		ret = i915_gem_stolen_insert_node_in_range(i915, &fbc->compressed_fb,
+		ret = i915_gem_stolen_insert_node_in_range(i915, fbc->compressed_fb,
 							   size >>= 1, 4096, 0, end);
 		if (ret == 0)
 			return limit;
@@ -865,12 +866,12 @@ static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
 	int ret;
 
 	drm_WARN_ON(display->drm,
-		    i915_gem_stolen_node_allocated(&fbc->compressed_fb));
+		    i915_gem_stolen_node_allocated(fbc->compressed_fb));
 	drm_WARN_ON(display->drm,
-		    i915_gem_stolen_node_allocated(&fbc->compressed_llb));
+		    i915_gem_stolen_node_allocated(fbc->compressed_llb));
 
 	if (DISPLAY_VER(display) < 5 && !display->platform.g4x) {
-		ret = i915_gem_stolen_insert_node(i915, &fbc->compressed_llb,
+		ret = i915_gem_stolen_insert_node(i915, fbc->compressed_llb,
 						  4096, 4096);
 		if (ret)
 			goto err;
@@ -887,12 +888,12 @@ static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
 
 	drm_dbg_kms(display->drm,
 		    "reserved %llu bytes of contiguous stolen space for FBC, limit: %d\n",
-		    i915_gem_stolen_node_size(&fbc->compressed_fb), fbc->limit);
+		    i915_gem_stolen_node_size(fbc->compressed_fb), fbc->limit);
 	return 0;
 
 err_llb:
-	if (i915_gem_stolen_node_allocated(&fbc->compressed_llb))
-		i915_gem_stolen_remove_node(i915, &fbc->compressed_llb);
+	if (i915_gem_stolen_node_allocated(fbc->compressed_llb))
+		i915_gem_stolen_remove_node(i915, fbc->compressed_llb);
 err:
 	if (i915_gem_stolen_initialized(i915))
 		drm_info_once(display->drm,
@@ -951,10 +952,10 @@ static void __intel_fbc_cleanup_cfb(struct intel_fbc *fbc)
 	if (WARN_ON(intel_fbc_hw_is_active(fbc)))
 		return;
 
-	if (i915_gem_stolen_node_allocated(&fbc->compressed_llb))
-		i915_gem_stolen_remove_node(i915, &fbc->compressed_llb);
-	if (i915_gem_stolen_node_allocated(&fbc->compressed_fb))
-		i915_gem_stolen_remove_node(i915, &fbc->compressed_fb);
+	if (i915_gem_stolen_node_allocated(fbc->compressed_llb))
+		i915_gem_stolen_remove_node(i915, fbc->compressed_llb);
+	if (i915_gem_stolen_node_allocated(fbc->compressed_fb))
+		i915_gem_stolen_remove_node(i915, fbc->compressed_fb);
 }
 
 void intel_fbc_cleanup(struct intel_display *display)
@@ -967,6 +968,9 @@ void intel_fbc_cleanup(struct intel_display *display)
 		__intel_fbc_cleanup_cfb(fbc);
 		mutex_unlock(&fbc->lock);
 
+		i915_gem_stolen_node_free(fbc->compressed_fb);
+		i915_gem_stolen_node_free(fbc->compressed_llb);
+
 		kfree(fbc);
 	}
 }
@@ -1355,7 +1359,7 @@ static bool intel_fbc_is_cfb_ok(const struct intel_plane_state *plane_state)
 
 	return intel_fbc_min_limit(plane_state) <= fbc->limit &&
 		intel_fbc_cfb_size(plane_state) <= fbc->limit *
-			i915_gem_stolen_node_size(&fbc->compressed_fb);
+			i915_gem_stolen_node_size(fbc->compressed_fb);
 }
 
 static bool intel_fbc_is_ok(const struct intel_plane_state *plane_state)
@@ -2083,6 +2087,13 @@ static struct intel_fbc *intel_fbc_create(struct intel_display *display,
 	if (!fbc)
 		return NULL;
 
+	fbc->compressed_fb = i915_gem_stolen_node_alloc(display->drm);
+	if (!fbc->compressed_fb)
+		goto err;
+	fbc->compressed_llb = i915_gem_stolen_node_alloc(display->drm);
+	if (!fbc->compressed_llb)
+		goto err;
+
 	fbc->id = fbc_id;
 	fbc->display = display;
 	INIT_WORK(&fbc->underrun_work, intel_fbc_underrun_work_fn);
@@ -2102,6 +2113,13 @@ static struct intel_fbc *intel_fbc_create(struct intel_display *display,
 		fbc->funcs = &i8xx_fbc_funcs;
 
 	return fbc;
+
+err:
+	i915_gem_stolen_node_free(fbc->compressed_llb);
+	i915_gem_stolen_node_free(fbc->compressed_fb);
+	kfree(fbc);
+
+	return NULL;
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index 70ee34303e36..5991ccd3f328 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -24,6 +24,10 @@
 #include "intel_mchbar_regs.h"
 #include "intel_pci_config.h"
 
+struct intel_stolen_node {
+	struct drm_mm_node node;
+};
+
 /*
  * The BIOS typically reserves some of the system's memory for the exclusive
  * use of the integrated graphics. This memory is no longer available for
@@ -1057,3 +1061,19 @@ u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node)
 {
 	return node->node.size;
 }
+
+struct intel_stolen_node *i915_gem_stolen_node_alloc(struct drm_device *drm)
+{
+	struct intel_stolen_node *node;
+
+	node = kzalloc(sizeof(*node), GFP_KERNEL);
+	if (!node)
+		return NULL;
+
+	return node;
+}
+
+void i915_gem_stolen_node_free(const struct intel_stolen_node *node)
+{
+	kfree(node);
+}
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
index 9e42d5a4cf13..25ec8325fb29 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
@@ -7,14 +7,11 @@
 #define __I915_GEM_STOLEN_H__
 
 #include <linux/types.h>
-#include <drm/drm_mm.h>
 
+struct drm_device;
 struct drm_i915_gem_object;
 struct drm_i915_private;
-
-struct intel_stolen_node {
-	struct drm_mm_node node;
-};
+struct intel_stolen_node;
 
 int i915_gem_stolen_insert_node(struct drm_i915_private *i915,
 				struct intel_stolen_node *node, u64 size,
@@ -51,4 +48,7 @@ bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node);
 u64 i915_gem_stolen_node_offset(const struct intel_stolen_node *node);
 u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node);
 
+struct intel_stolen_node *i915_gem_stolen_node_alloc(struct drm_device *drm);
+void i915_gem_stolen_node_free(const struct intel_stolen_node *node);
+
 #endif /* __I915_GEM_STOLEN_H__ */
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
index 10f110b9bf77..b0bc3efcaf6c 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
@@ -8,13 +8,10 @@
 
 #include <linux/types.h>
 
-struct xe_bo;
+struct drm_device;
+struct intel_stolen_node;
 struct xe_device;
 
-struct intel_stolen_node {
-	struct xe_bo *bo;
-};
-
 int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
 					 struct intel_stolen_node *node,
 					 u32 size, u32 align,
@@ -42,4 +39,8 @@ u64 i915_gem_stolen_node_address(struct xe_device *xe,
 
 u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node);
 
+struct intel_stolen_node *i915_gem_stolen_node_alloc(struct drm_device *drm);
+
+void i915_gem_stolen_node_free(const struct intel_stolen_node *node);
+
 #endif
diff --git a/drivers/gpu/drm/xe/display/xe_stolen.c b/drivers/gpu/drm/xe/display/xe_stolen.c
index ab156a9f2c26..b218df40324a 100644
--- a/drivers/gpu/drm/xe/display/xe_stolen.c
+++ b/drivers/gpu/drm/xe/display/xe_stolen.c
@@ -6,6 +6,10 @@
 #include "xe_ttm_stolen_mgr.h"
 #include "xe_validation.h"
 
+struct intel_stolen_node {
+	struct xe_bo *bo;
+};
+
 int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
 					 struct intel_stolen_node *node,
 					 u32 size, u32 align,
@@ -97,3 +101,19 @@ u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node)
 {
 	return node->bo->ttm.base.size;
 }
+
+struct intel_stolen_node *i915_gem_stolen_node_alloc(struct drm_device *drm)
+{
+	struct intel_stolen_node *node;
+
+	node = kzalloc(sizeof(*node), GFP_KERNEL);
+	if (!node)
+		return NULL;
+
+	return node;
+}
+
+void i915_gem_stolen_node_free(const struct intel_stolen_node *node)
+{
+	kfree(node);
+}
-- 
2.47.3


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

* [PATCH 08/11] drm/{i915, xe}/stolen: add device pointer to struct intel_stolen_node
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (6 preceding siblings ...)
  2025-09-24 16:43 ` [PATCH 07/11] drm/{i915, xe}/stolen: make struct intel_stolen_node opaque Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 16:43 ` [PATCH 09/11] drm/{i915, xe}/stolen: use the stored i915/xe device pointer Jani Nikula
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

Add backpointers to i915/xe to allow simplifying some interfaces in
follow-up.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 4 ++++
 drivers/gpu/drm/xe/display/xe_stolen.c     | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index 5991ccd3f328..8bc71fb2a765 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -25,6 +25,7 @@
 #include "intel_pci_config.h"
 
 struct intel_stolen_node {
+	struct drm_i915_private *i915;
 	struct drm_mm_node node;
 };
 
@@ -1064,12 +1065,15 @@ u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node)
 
 struct intel_stolen_node *i915_gem_stolen_node_alloc(struct drm_device *drm)
 {
+	struct drm_i915_private *i915 = to_i915(drm);
 	struct intel_stolen_node *node;
 
 	node = kzalloc(sizeof(*node), GFP_KERNEL);
 	if (!node)
 		return NULL;
 
+	node->i915 = i915;
+
 	return node;
 }
 
diff --git a/drivers/gpu/drm/xe/display/xe_stolen.c b/drivers/gpu/drm/xe/display/xe_stolen.c
index b218df40324a..eea182b569a1 100644
--- a/drivers/gpu/drm/xe/display/xe_stolen.c
+++ b/drivers/gpu/drm/xe/display/xe_stolen.c
@@ -7,6 +7,7 @@
 #include "xe_validation.h"
 
 struct intel_stolen_node {
+	struct xe_device *xe;
 	struct xe_bo *bo;
 };
 
@@ -104,12 +105,15 @@ u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node)
 
 struct intel_stolen_node *i915_gem_stolen_node_alloc(struct drm_device *drm)
 {
+	struct xe_device *xe = to_xe_device(drm);
 	struct intel_stolen_node *node;
 
 	node = kzalloc(sizeof(*node), GFP_KERNEL);
 	if (!node)
 		return NULL;
 
+	node->xe = xe;
+
 	return node;
 }
 
-- 
2.47.3


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

* [PATCH 09/11] drm/{i915, xe}/stolen: use the stored i915/xe device pointer
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (7 preceding siblings ...)
  2025-09-24 16:43 ` [PATCH 08/11] drm/{i915, xe}/stolen: add device pointer to struct intel_stolen_node Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 16:43 ` [PATCH 10/11] drm/{i915, xe}/stolen: convert stolen interface to struct drm_device Jani Nikula
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

Now that we store the i915/xe device pointer in struct
intel_stolen_node, we can reduce parameter passing in a number of
functions.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c      | 21 +++++++------------
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c    | 20 ++++++++----------
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h    | 12 ++++-------
 .../compat-i915-headers/gem/i915_gem_stolen.h | 13 ++++--------
 drivers/gpu/drm/xe/display/xe_stolen.c        | 17 +++++++--------
 5 files changed, 33 insertions(+), 50 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 05199434cb7c..0d837527aaab 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -388,9 +388,9 @@ static void i8xx_fbc_program_cfb(struct intel_fbc *fbc)
 					  i915_gem_stolen_node_offset(fbc->compressed_llb),
 					  U32_MAX));
 	intel_de_write(display, FBC_CFB_BASE,
-		       i915_gem_stolen_node_address(i915, fbc->compressed_fb));
+		       i915_gem_stolen_node_address(fbc->compressed_fb));
 	intel_de_write(display, FBC_LL_BASE,
-		       i915_gem_stolen_node_address(i915, fbc->compressed_llb));
+		       i915_gem_stolen_node_address(fbc->compressed_llb));
 }
 
 static const struct intel_fbc_funcs i8xx_fbc_funcs = {
@@ -836,20 +836,19 @@ static int find_compression_limit(struct intel_fbc *fbc,
 				  unsigned int size, int min_limit)
 {
 	struct intel_display *display = fbc->display;
-	struct drm_i915_private *i915 = to_i915(display->drm);
 	u64 end = intel_fbc_stolen_end(display);
 	int ret, limit = min_limit;
 
 	size /= limit;
 
 	/* Try to over-allocate to reduce reallocations and fragmentation. */
-	ret = i915_gem_stolen_insert_node_in_range(i915, fbc->compressed_fb,
+	ret = i915_gem_stolen_insert_node_in_range(fbc->compressed_fb,
 						   size <<= 1, 4096, 0, end);
 	if (ret == 0)
 		return limit;
 
 	for (; limit <= intel_fbc_max_limit(display); limit <<= 1) {
-		ret = i915_gem_stolen_insert_node_in_range(i915, fbc->compressed_fb,
+		ret = i915_gem_stolen_insert_node_in_range(fbc->compressed_fb,
 							   size >>= 1, 4096, 0, end);
 		if (ret == 0)
 			return limit;
@@ -871,8 +870,7 @@ static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
 		    i915_gem_stolen_node_allocated(fbc->compressed_llb));
 
 	if (DISPLAY_VER(display) < 5 && !display->platform.g4x) {
-		ret = i915_gem_stolen_insert_node(i915, fbc->compressed_llb,
-						  4096, 4096);
+		ret = i915_gem_stolen_insert_node(fbc->compressed_llb, 4096, 4096);
 		if (ret)
 			goto err;
 	}
@@ -893,7 +891,7 @@ static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
 
 err_llb:
 	if (i915_gem_stolen_node_allocated(fbc->compressed_llb))
-		i915_gem_stolen_remove_node(i915, fbc->compressed_llb);
+		i915_gem_stolen_remove_node(fbc->compressed_llb);
 err:
 	if (i915_gem_stolen_initialized(i915))
 		drm_info_once(display->drm,
@@ -946,16 +944,13 @@ static void intel_fbc_program_workarounds(struct intel_fbc *fbc)
 
 static void __intel_fbc_cleanup_cfb(struct intel_fbc *fbc)
 {
-	struct intel_display *display = fbc->display;
-	struct drm_i915_private *i915 = to_i915(display->drm);
-
 	if (WARN_ON(intel_fbc_hw_is_active(fbc)))
 		return;
 
 	if (i915_gem_stolen_node_allocated(fbc->compressed_llb))
-		i915_gem_stolen_remove_node(i915, fbc->compressed_llb);
+		i915_gem_stolen_remove_node(fbc->compressed_llb);
 	if (i915_gem_stolen_node_allocated(fbc->compressed_fb))
-		i915_gem_stolen_remove_node(i915, fbc->compressed_fb);
+		i915_gem_stolen_remove_node(fbc->compressed_fb);
 }
 
 void intel_fbc_cleanup(struct intel_display *display)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index 8bc71fb2a765..b2812ec79d19 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -63,11 +63,10 @@ static int __i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915,
 	return ret;
 }
 
-int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915,
-					 struct intel_stolen_node *node, u64 size,
+int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node, u64 size,
 					 unsigned int alignment, u64 start, u64 end)
 {
-	return __i915_gem_stolen_insert_node_in_range(i915, &node->node,
+	return __i915_gem_stolen_insert_node_in_range(node->i915, &node->node,
 						      size, alignment,
 						      start, end);
 }
@@ -82,11 +81,10 @@ static int __i915_gem_stolen_insert_node(struct drm_i915_private *i915,
 						      U64_MAX);
 }
 
-int i915_gem_stolen_insert_node(struct drm_i915_private *i915,
-				struct intel_stolen_node *node, u64 size,
+int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u64 size,
 				unsigned int alignment)
 {
-	return __i915_gem_stolen_insert_node(i915, &node->node, size, alignment);
+	return __i915_gem_stolen_insert_node(node->i915, &node->node, size, alignment);
 }
 
 static void __i915_gem_stolen_remove_node(struct drm_i915_private *i915,
@@ -97,10 +95,9 @@ static void __i915_gem_stolen_remove_node(struct drm_i915_private *i915,
 	mutex_unlock(&i915->mm.stolen_lock);
 }
 
-void i915_gem_stolen_remove_node(struct drm_i915_private *i915,
-				 struct intel_stolen_node *node)
+void i915_gem_stolen_remove_node(struct intel_stolen_node *node)
 {
-	__i915_gem_stolen_remove_node(i915, &node->node);
+	__i915_gem_stolen_remove_node(node->i915, &node->node);
 }
 
 static bool valid_stolen_size(struct drm_i915_private *i915, struct resource *dsm)
@@ -1042,9 +1039,10 @@ u64 i915_gem_stolen_area_size(const struct drm_i915_private *i915)
 	return resource_size(&i915->dsm.stolen);
 }
 
-u64 i915_gem_stolen_node_address(const struct drm_i915_private *i915,
-				 const struct intel_stolen_node *node)
+u64 i915_gem_stolen_node_address(const struct intel_stolen_node *node)
 {
+	struct drm_i915_private *i915 = node->i915;
+
 	return i915->dsm.stolen.start + i915_gem_stolen_node_offset(node);
 }
 
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
index 25ec8325fb29..c670736f09e1 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
@@ -13,15 +13,12 @@ struct drm_i915_gem_object;
 struct drm_i915_private;
 struct intel_stolen_node;
 
-int i915_gem_stolen_insert_node(struct drm_i915_private *i915,
-				struct intel_stolen_node *node, u64 size,
+int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u64 size,
 				unsigned alignment);
-int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915,
-					 struct intel_stolen_node *node, u64 size,
+int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node, u64 size,
 					 unsigned alignment, u64 start,
 					 u64 end);
-void i915_gem_stolen_remove_node(struct drm_i915_private *i915,
-				 struct intel_stolen_node *node);
+void i915_gem_stolen_remove_node(struct intel_stolen_node *node);
 struct intel_memory_region *
 i915_gem_stolen_smem_setup(struct drm_i915_private *i915, u16 type,
 			   u16 instance);
@@ -41,8 +38,7 @@ bool i915_gem_stolen_initialized(const struct drm_i915_private *i915);
 u64 i915_gem_stolen_area_address(const struct drm_i915_private *i915);
 u64 i915_gem_stolen_area_size(const struct drm_i915_private *i915);
 
-u64 i915_gem_stolen_node_address(const struct drm_i915_private *i915,
-				 const struct intel_stolen_node *node);
+u64 i915_gem_stolen_node_address(const struct intel_stolen_node *node);
 
 bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node);
 u64 i915_gem_stolen_node_offset(const struct intel_stolen_node *node);
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
index b0bc3efcaf6c..7bdf73fad8bf 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
@@ -12,17 +12,13 @@ struct drm_device;
 struct intel_stolen_node;
 struct xe_device;
 
-int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
-					 struct intel_stolen_node *node,
+int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node,
 					 u32 size, u32 align,
 					 u32 start, u32 end);
 
-int i915_gem_stolen_insert_node(struct xe_device *xe,
-				struct intel_stolen_node *node,
-				u32 size, u32 align);
+int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u32 size, u32 align);
 
-void i915_gem_stolen_remove_node(struct xe_device *xe,
-				 struct intel_stolen_node *node);
+void i915_gem_stolen_remove_node(struct intel_stolen_node *node);
 
 bool i915_gem_stolen_initialized(struct xe_device *xe);
 
@@ -34,8 +30,7 @@ u64 i915_gem_stolen_area_address(const struct xe_device *xe);
 
 u64 i915_gem_stolen_area_size(const struct xe_device *xe);
 
-u64 i915_gem_stolen_node_address(struct xe_device *xe,
-				 struct intel_stolen_node *node);
+u64 i915_gem_stolen_node_address(struct intel_stolen_node *node);
 
 u64 i915_gem_stolen_node_size(const struct intel_stolen_node *node);
 
diff --git a/drivers/gpu/drm/xe/display/xe_stolen.c b/drivers/gpu/drm/xe/display/xe_stolen.c
index eea182b569a1..c1afe70454d1 100644
--- a/drivers/gpu/drm/xe/display/xe_stolen.c
+++ b/drivers/gpu/drm/xe/display/xe_stolen.c
@@ -11,11 +11,12 @@ struct intel_stolen_node {
 	struct xe_bo *bo;
 };
 
-int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
-					 struct intel_stolen_node *node,
+int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node,
 					 u32 size, u32 align,
 					 u32 start, u32 end)
 {
+	struct xe_device *xe = node->xe;
+
 	struct xe_bo *bo;
 	int err = 0;
 	u32 flags = XE_BO_FLAG_PINNED | XE_BO_FLAG_STOLEN;
@@ -41,9 +42,7 @@ int i915_gem_stolen_insert_node_in_range(struct xe_device *xe,
 	return err;
 }
 
-int i915_gem_stolen_insert_node(struct xe_device *xe,
-				struct intel_stolen_node *node,
-				u32 size, u32 align)
+int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u32 size, u32 align)
 {
 	/* Not used on xe */
 	WARN_ON(1);
@@ -51,8 +50,7 @@ int i915_gem_stolen_insert_node(struct xe_device *xe,
 	return -ENODEV;
 }
 
-void i915_gem_stolen_remove_node(struct xe_device *xe,
-				 struct intel_stolen_node *node)
+void i915_gem_stolen_remove_node(struct intel_stolen_node *node)
 {
 	xe_bo_unpin_map_no_vm(node->bo);
 	node->bo = NULL;
@@ -92,9 +90,10 @@ u64 i915_gem_stolen_area_size(const struct xe_device *xe)
 	return 0;
 }
 
-u64 i915_gem_stolen_node_address(struct xe_device *xe,
-				 struct intel_stolen_node *node)
+u64 i915_gem_stolen_node_address(struct intel_stolen_node *node)
 {
+	struct xe_device *xe = node->xe;
+
 	return xe_ttm_stolen_gpu_offset(xe) + i915_gem_stolen_node_offset(node);
 }
 
-- 
2.47.3


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

* [PATCH 10/11] drm/{i915, xe}/stolen: convert stolen interface to struct drm_device
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (8 preceding siblings ...)
  2025-09-24 16:43 ` [PATCH 09/11] drm/{i915, xe}/stolen: use the stored i915/xe device pointer Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 16:43 ` [PATCH 11/11] drm/xe/stolen: use the same types as i915 interface Jani Nikula
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

Make the stolen interface agnostic to i915/xe, and pass struct
drm_device instead.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c            | 13 +++++--------
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c          | 12 +++++++++---
 drivers/gpu/drm/i915/gem/i915_gem_stolen.h          |  6 +++---
 .../xe/compat-i915-headers/gem/i915_gem_stolen.h    |  7 +++----
 drivers/gpu/drm/xe/display/xe_stolen.c              |  8 +++++---
 5 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 0d837527aaab..4edb4342833e 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -377,14 +377,13 @@ static void i8xx_fbc_nuke(struct intel_fbc *fbc)
 static void i8xx_fbc_program_cfb(struct intel_fbc *fbc)
 {
 	struct intel_display *display = fbc->display;
-	struct drm_i915_private *i915 = to_i915(display->drm);
 
 	drm_WARN_ON(display->drm,
-		    range_end_overflows_t(u64, i915_gem_stolen_area_address(i915),
+		    range_end_overflows_t(u64, i915_gem_stolen_area_address(display->drm),
 					  i915_gem_stolen_node_offset(fbc->compressed_fb),
 					  U32_MAX));
 	drm_WARN_ON(display->drm,
-		    range_end_overflows_t(u64, i915_gem_stolen_area_address(i915),
+		    range_end_overflows_t(u64, i915_gem_stolen_area_address(display->drm),
 					  i915_gem_stolen_node_offset(fbc->compressed_llb),
 					  U32_MAX));
 	intel_de_write(display, FBC_CFB_BASE,
@@ -798,7 +797,6 @@ static u64 intel_fbc_cfb_base_max(struct intel_display *display)
 
 static u64 intel_fbc_stolen_end(struct intel_display *display)
 {
-	struct drm_i915_private *i915 = to_i915(display->drm);
 	u64 end;
 
 	/* The FBC hardware for BDW/SKL doesn't have access to the stolen
@@ -807,7 +805,7 @@ static u64 intel_fbc_stolen_end(struct intel_display *display)
 	 * underruns, even if that range is not reserved by the BIOS. */
 	if (display->platform.broadwell ||
 	    (DISPLAY_VER(display) == 9 && !display->platform.broxton))
-		end = i915_gem_stolen_area_size(i915) - 8 * 1024 * 1024;
+		end = i915_gem_stolen_area_size(display->drm) - 8 * 1024 * 1024;
 	else
 		end = U64_MAX;
 
@@ -861,7 +859,6 @@ static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
 			       unsigned int size, int min_limit)
 {
 	struct intel_display *display = fbc->display;
-	struct drm_i915_private *i915 = to_i915(display->drm);
 	int ret;
 
 	drm_WARN_ON(display->drm,
@@ -893,7 +890,7 @@ static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
 	if (i915_gem_stolen_node_allocated(fbc->compressed_llb))
 		i915_gem_stolen_remove_node(fbc->compressed_llb);
 err:
-	if (i915_gem_stolen_initialized(i915))
+	if (i915_gem_stolen_initialized(display->drm))
 		drm_info_once(display->drm,
 			      "not enough stolen space for compressed buffer (need %d more bytes), disabling. Hint: you may be able to increase stolen memory size in the BIOS to avoid this.\n", size);
 	return -ENOSPC;
@@ -1435,7 +1432,7 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
 	if (!fbc)
 		return 0;
 
-	if (!i915_gem_stolen_initialized(i915)) {
+	if (!i915_gem_stolen_initialized(display->drm)) {
 		plane_state->no_fbc_reason = "stolen memory not initialised";
 		return 0;
 	}
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index b2812ec79d19..e73b369c3347 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -1024,18 +1024,24 @@ bool i915_gem_object_is_stolen(const struct drm_i915_gem_object *obj)
 	return obj->ops == &i915_gem_object_stolen_ops;
 }
 
-bool i915_gem_stolen_initialized(const struct drm_i915_private *i915)
+bool i915_gem_stolen_initialized(struct drm_device *drm)
 {
+	struct drm_i915_private *i915 = to_i915(drm);
+
 	return drm_mm_initialized(&i915->mm.stolen);
 }
 
-u64 i915_gem_stolen_area_address(const struct drm_i915_private *i915)
+u64 i915_gem_stolen_area_address(struct drm_device *drm)
 {
+	struct drm_i915_private *i915 = to_i915(drm);
+
 	return i915->dsm.stolen.start;
 }
 
-u64 i915_gem_stolen_area_size(const struct drm_i915_private *i915)
+u64 i915_gem_stolen_area_size(struct drm_device *drm)
 {
+	struct drm_i915_private *i915 = to_i915(drm);
+
 	return resource_size(&i915->dsm.stolen);
 }
 
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
index c670736f09e1..7b0386002ed4 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.h
@@ -34,9 +34,9 @@ bool i915_gem_object_is_stolen(const struct drm_i915_gem_object *obj);
 
 #define I915_GEM_STOLEN_BIAS SZ_128K
 
-bool i915_gem_stolen_initialized(const struct drm_i915_private *i915);
-u64 i915_gem_stolen_area_address(const struct drm_i915_private *i915);
-u64 i915_gem_stolen_area_size(const struct drm_i915_private *i915);
+bool i915_gem_stolen_initialized(struct drm_device *drm);
+u64 i915_gem_stolen_area_address(struct drm_device *drm);
+u64 i915_gem_stolen_area_size(struct drm_device *drm);
 
 u64 i915_gem_stolen_node_address(const struct intel_stolen_node *node);
 
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
index 7bdf73fad8bf..42927326e567 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
@@ -10,7 +10,6 @@
 
 struct drm_device;
 struct intel_stolen_node;
-struct xe_device;
 
 int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node,
 					 u32 size, u32 align,
@@ -20,15 +19,15 @@ int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u32 size, u32 al
 
 void i915_gem_stolen_remove_node(struct intel_stolen_node *node);
 
-bool i915_gem_stolen_initialized(struct xe_device *xe);
+bool i915_gem_stolen_initialized(struct drm_device *drm);
 
 bool i915_gem_stolen_node_allocated(const struct intel_stolen_node *node);
 
 u32 i915_gem_stolen_node_offset(struct intel_stolen_node *node);
 
-u64 i915_gem_stolen_area_address(const struct xe_device *xe);
+u64 i915_gem_stolen_area_address(struct drm_device *drm);
 
-u64 i915_gem_stolen_area_size(const struct xe_device *xe);
+u64 i915_gem_stolen_area_size(struct drm_device *drm);
 
 u64 i915_gem_stolen_node_address(struct intel_stolen_node *node);
 
diff --git a/drivers/gpu/drm/xe/display/xe_stolen.c b/drivers/gpu/drm/xe/display/xe_stolen.c
index c1afe70454d1..d7af731d9c90 100644
--- a/drivers/gpu/drm/xe/display/xe_stolen.c
+++ b/drivers/gpu/drm/xe/display/xe_stolen.c
@@ -56,8 +56,10 @@ void i915_gem_stolen_remove_node(struct intel_stolen_node *node)
 	node->bo = NULL;
 }
 
-bool i915_gem_stolen_initialized(struct xe_device *xe)
+bool i915_gem_stolen_initialized(struct drm_device *drm)
 {
+	struct xe_device *xe = to_xe_device(drm);
+
 	return ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
 }
 
@@ -75,7 +77,7 @@ u32 i915_gem_stolen_node_offset(struct intel_stolen_node *node)
 }
 
 /* Used for < gen4. These are not supported by Xe */
-u64 i915_gem_stolen_area_address(const struct xe_device *xe)
+u64 i915_gem_stolen_area_address(struct drm_device *drm)
 {
 	WARN_ON(1);
 
@@ -83,7 +85,7 @@ u64 i915_gem_stolen_area_address(const struct xe_device *xe)
 }
 
 /* Used for gen9 specific WA. Gen9 is not supported by Xe */
-u64 i915_gem_stolen_area_size(const struct xe_device *xe)
+u64 i915_gem_stolen_area_size(struct drm_device *drm)
 {
 	WARN_ON(1);
 
-- 
2.47.3


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

* [PATCH 11/11] drm/xe/stolen: use the same types as i915 interface
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (9 preceding siblings ...)
  2025-09-24 16:43 ` [PATCH 10/11] drm/{i915, xe}/stolen: convert stolen interface to struct drm_device Jani Nikula
@ 2025-09-24 16:43 ` Jani Nikula
  2025-09-24 17:53 ` ✓ i915.CI.BAT: success for drm/{i915,xe}/stolen: refactor and unify interfaces Patchwork
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-24 16:43 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: jani.nikula, ville.syrjala

Unify the i915 and xe interfaces by switching to the same types as i915.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 .../gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h  | 8 ++++----
 drivers/gpu/drm/xe/display/xe_stolen.c                    | 7 +++----
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
index 42927326e567..48e3256ba37e 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_stolen.h
@@ -11,11 +11,11 @@
 struct drm_device;
 struct intel_stolen_node;
 
-int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node,
-					 u32 size, u32 align,
-					 u32 start, u32 end);
+int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node, u64 size,
+					 unsigned int align, u64 start, u64 end);
 
-int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u32 size, u32 align);
+int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u64 size,
+				unsigned int align);
 
 void i915_gem_stolen_remove_node(struct intel_stolen_node *node);
 
diff --git a/drivers/gpu/drm/xe/display/xe_stolen.c b/drivers/gpu/drm/xe/display/xe_stolen.c
index d7af731d9c90..9f04ba36e930 100644
--- a/drivers/gpu/drm/xe/display/xe_stolen.c
+++ b/drivers/gpu/drm/xe/display/xe_stolen.c
@@ -11,9 +11,8 @@ struct intel_stolen_node {
 	struct xe_bo *bo;
 };
 
-int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node,
-					 u32 size, u32 align,
-					 u32 start, u32 end)
+int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node, u64 size,
+					 unsigned int align, u64 start, u64 end)
 {
 	struct xe_device *xe = node->xe;
 
@@ -42,7 +41,7 @@ int i915_gem_stolen_insert_node_in_range(struct intel_stolen_node *node,
 	return err;
 }
 
-int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u32 size, u32 align)
+int i915_gem_stolen_insert_node(struct intel_stolen_node *node, u64 size, unsigned int align)
 {
 	/* Not used on xe */
 	WARN_ON(1);
-- 
2.47.3


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

* ✓ i915.CI.BAT: success for drm/{i915,xe}/stolen: refactor and unify interfaces
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (10 preceding siblings ...)
  2025-09-24 16:43 ` [PATCH 11/11] drm/xe/stolen: use the same types as i915 interface Jani Nikula
@ 2025-09-24 17:53 ` Patchwork
  2025-09-25  1:14 ` ✗ i915.CI.Full: failure " Patchwork
  2025-09-26 18:41 ` [PATCH 00/11] drm/{i915, xe}/stolen: " Ville Syrjälä
  13 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2025-09-24 17:53 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

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

== Series Details ==

Series: drm/{i915,xe}/stolen: refactor and unify interfaces
URL   : https://patchwork.freedesktop.org/series/154985/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_17266 -> Patchwork_154985v1
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (43 -> 42)
------------------------------

  Missing    (1): fi-snb-2520m 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@dmabuf@all-tests:
    - bat-apl-1:          [PASS][1] -> [ABORT][2] ([i915#12904]) +1 other test abort
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/bat-apl-1/igt@dmabuf@all-tests.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/bat-apl-1/igt@dmabuf@all-tests.html

  * igt@i915_selftest@live@sanitycheck:
    - bat-apl-1:          [PASS][3] -> [DMESG-WARN][4] ([i915#13735]) +77 other tests dmesg-warn
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/bat-apl-1/igt@i915_selftest@live@sanitycheck.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/bat-apl-1/igt@i915_selftest@live@sanitycheck.html

  * igt@i915_selftest@live@workarounds:
    - bat-dg2-9:          [PASS][5] -> [DMESG-FAIL][6] ([i915#12061]) +1 other test dmesg-fail
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/bat-dg2-9/igt@i915_selftest@live@workarounds.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/bat-dg2-9/igt@i915_selftest@live@workarounds.html

  * igt@kms_pm_rpm@basic-pci-d3-state:
    - bat-apl-1:          [PASS][7] -> [DMESG-WARN][8] ([i915#13735] / [i915#180]) +49 other tests dmesg-warn
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/bat-apl-1/igt@kms_pm_rpm@basic-pci-d3-state.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/bat-apl-1/igt@kms_pm_rpm@basic-pci-d3-state.html

  * igt@kms_pm_rpm@basic-rte:
    - bat-rpls-4:         [PASS][9] -> [DMESG-WARN][10] ([i915#13400])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/bat-rpls-4/igt@kms_pm_rpm@basic-rte.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/bat-rpls-4/igt@kms_pm_rpm@basic-rte.html

  
#### Possible fixes ####

  * igt@i915_selftest@live:
    - bat-dg2-14:         [INCOMPLETE][11] ([i915#14201] / [i915#14911]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/bat-dg2-14/igt@i915_selftest@live.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/bat-dg2-14/igt@i915_selftest@live.html

  * igt@i915_selftest@live@gt_heartbeat:
    - bat-dg2-14:         [INCOMPLETE][13] ([i915#14201]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/bat-dg2-14/igt@i915_selftest@live@gt_heartbeat.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/bat-dg2-14/igt@i915_selftest@live@gt_heartbeat.html

  
#### Warnings ####

  * igt@i915_selftest@live:
    - bat-atsm-1:         [DMESG-FAIL][15] ([i915#12061] / [i915#13929]) -> [DMESG-FAIL][16] ([i915#12061] / [i915#14204])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/bat-atsm-1/igt@i915_selftest@live.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/bat-atsm-1/igt@i915_selftest@live.html

  * igt@i915_selftest@live@mman:
    - bat-atsm-1:         [DMESG-FAIL][17] ([i915#13929]) -> [DMESG-FAIL][18] ([i915#14204])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/bat-atsm-1/igt@i915_selftest@live@mman.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/bat-atsm-1/igt@i915_selftest@live@mman.html

  
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
  [i915#13400]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13400
  [i915#13735]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13735
  [i915#13929]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13929
  [i915#14201]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14201
  [i915#14204]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14204
  [i915#14911]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14911
  [i915#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180


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

  * Linux: CI_DRM_17266 -> Patchwork_154985v1

  CI-20190529: 20190529
  CI_DRM_17266: a4d9163251f4832a7d34d4b59449f9a68b9b7adf @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8550: 4f8c7886ad02e116804ec08714f17bce1755c6e4 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_154985v1: a4d9163251f4832a7d34d4b59449f9a68b9b7adf @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

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

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

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

* ✗ i915.CI.Full: failure for drm/{i915,xe}/stolen: refactor and unify interfaces
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (11 preceding siblings ...)
  2025-09-24 17:53 ` ✓ i915.CI.BAT: success for drm/{i915,xe}/stolen: refactor and unify interfaces Patchwork
@ 2025-09-25  1:14 ` Patchwork
  2025-09-26 18:41 ` [PATCH 00/11] drm/{i915, xe}/stolen: " Ville Syrjälä
  13 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2025-09-25  1:14 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

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

== Series Details ==

Series: drm/{i915,xe}/stolen: refactor and unify interfaces
URL   : https://patchwork.freedesktop.org/series/154985/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_17266_full -> Patchwork_154985v1_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_154985v1_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_154985v1_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (13 -> 12)
------------------------------

  Missing    (1): shard-dg2-set2 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_154985v1_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_vblank@ts-continuation-dpms-suspend:
    - shard-dg2:          [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-4/igt@kms_vblank@ts-continuation-dpms-suspend.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-10/igt@kms_vblank@ts-continuation-dpms-suspend.html

  * igt@kms_vblank@ts-continuation-dpms-suspend@pipe-d-dp-3:
    - shard-dg2:          NOTRUN -> [ABORT][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-10/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-d-dp-3.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@drm_read@short-buffer-block:
    - shard-rkl:          [PASS][4] -> [SKIP][5] ([i915#14544]) +14 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@drm_read@short-buffer-block.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@drm_read@short-buffer-block.html

  * igt@gem_create@create-ext-cpu-access-big:
    - shard-dg2:          NOTRUN -> [ABORT][6] ([i915#13427])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-10/igt@gem_create@create-ext-cpu-access-big.html

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

  * igt@gem_ctx_persistence@hang:
    - shard-dg2:          NOTRUN -> [SKIP][8] ([i915#8555])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@gem_ctx_persistence@hang.html

  * igt@gem_ctx_sseu@invalid-args:
    - shard-dg2-9:        NOTRUN -> [SKIP][9] ([i915#280])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_ctx_sseu@invalid-args.html

  * igt@gem_eio@kms:
    - shard-dg1:          [PASS][10] -> [FAIL][11] ([i915#5784])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg1-12/igt@gem_eio@kms.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg1-19/igt@gem_eio@kms.html

  * igt@gem_exec_balancer@bonded-pair:
    - shard-dg2:          NOTRUN -> [SKIP][12] ([i915#4771])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@gem_exec_balancer@bonded-pair.html

  * igt@gem_exec_fence@concurrent:
    - shard-dg2-9:        NOTRUN -> [SKIP][13] ([i915#4812])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_exec_fence@concurrent.html

  * igt@gem_exec_fence@submit:
    - shard-dg2:          NOTRUN -> [SKIP][14] ([i915#4812])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@gem_exec_fence@submit.html

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

  * igt@gem_exec_flush@basic-uc-prw-default:
    - shard-dg2-9:        NOTRUN -> [SKIP][16] ([i915#3539])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_exec_flush@basic-uc-prw-default.html

  * igt@gem_exec_flush@basic-wb-set-default:
    - shard-dg2-9:        NOTRUN -> [SKIP][17] ([i915#3539] / [i915#4852]) +2 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_exec_flush@basic-wb-set-default.html

  * igt@gem_exec_params@rsvd2-dirt:
    - shard-dg2:          NOTRUN -> [SKIP][18] ([i915#5107])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@gem_exec_params@rsvd2-dirt.html

  * igt@gem_exec_params@secure-non-root:
    - shard-dg2-9:        NOTRUN -> [SKIP][19] +6 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_exec_params@secure-non-root.html

  * igt@gem_exec_reloc@basic-cpu-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][20] ([i915#3281]) +8 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@gem_exec_reloc@basic-cpu-gtt.html

  * igt@gem_exec_reloc@basic-gtt-read-active:
    - shard-dg2-9:        NOTRUN -> [SKIP][21] ([i915#3281]) +4 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_exec_reloc@basic-gtt-read-active.html

  * igt@gem_exec_schedule@preempt-queue-contexts-chain:
    - shard-dg2:          NOTRUN -> [SKIP][22] ([i915#4537] / [i915#4812])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@gem_exec_schedule@preempt-queue-contexts-chain.html

  * igt@gem_fence_thrash@bo-write-verify-y:
    - shard-dg2-9:        NOTRUN -> [SKIP][23] ([i915#4860]) +1 other test skip
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_fence_thrash@bo-write-verify-y.html

  * igt@gem_fenced_exec_thrash@2-spare-fences:
    - shard-dg2:          NOTRUN -> [SKIP][24] ([i915#4860]) +1 other test skip
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@gem_fenced_exec_thrash@2-spare-fences.html

  * igt@gem_huc_copy@huc-copy:
    - shard-glk:          NOTRUN -> [SKIP][25] ([i915#2190])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk6/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs:
    - shard-glk:          NOTRUN -> [SKIP][26] ([i915#4613]) +2 other tests skip
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk5/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html

  * igt@gem_media_fill@media-fill:
    - shard-dg2:          NOTRUN -> [SKIP][27] ([i915#8289])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@gem_media_fill@media-fill.html

  * igt@gem_mmap_gtt@bad-object:
    - shard-dg2:          NOTRUN -> [SKIP][28] ([i915#4077]) +8 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@gem_mmap_gtt@bad-object.html

  * igt@gem_mmap_wc@bad-object:
    - shard-dg2:          NOTRUN -> [SKIP][29] ([i915#4083]) +3 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@gem_mmap_wc@bad-object.html

  * igt@gem_mmap_wc@set-cache-level:
    - shard-rkl:          [PASS][30] -> [SKIP][31] ([i915#14544] / [i915#1850])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_mmap_wc@set-cache-level.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@gem_mmap_wc@set-cache-level.html

  * igt@gem_pread@snoop:
    - shard-dg2:          NOTRUN -> [SKIP][32] ([i915#3282]) +6 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@gem_pread@snoop.html

  * igt@gem_pread@uncached:
    - shard-dg2-9:        NOTRUN -> [SKIP][33] ([i915#3282])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_pread@uncached.html

  * igt@gem_pxp@create-regular-context-1:
    - shard-dg2-9:        NOTRUN -> [SKIP][34] ([i915#4270]) +1 other test skip
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_pxp@create-regular-context-1.html

  * igt@gem_pxp@display-protected-crc:
    - shard-dg2:          NOTRUN -> [SKIP][35] ([i915#4270]) +1 other test skip
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@gem_pxp@display-protected-crc.html

  * igt@gem_pxp@reject-modify-context-protection-off-3:
    - shard-rkl:          [PASS][36] -> [TIMEOUT][37] ([i915#12917] / [i915#12964]) +1 other test timeout
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_pxp@reject-modify-context-protection-off-3.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-5/igt@gem_pxp@reject-modify-context-protection-off-3.html

  * igt@gem_render_copy@yf-tiled-ccs-to-y-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][38] ([i915#5190] / [i915#8428]) +6 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@gem_render_copy@yf-tiled-ccs-to-y-tiled.html

  * igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-y-tiled:
    - shard-dg2-9:        NOTRUN -> [SKIP][39] ([i915#5190] / [i915#8428]) +1 other test skip
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-y-tiled.html

  * igt@gem_render_tiled_blits@basic:
    - shard-dg2-9:        NOTRUN -> [SKIP][40] ([i915#4079])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_render_tiled_blits@basic.html

  * igt@gem_tiled_pread_pwrite:
    - shard-dg2:          NOTRUN -> [SKIP][41] ([i915#4079])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@gem_tiled_pread_pwrite.html

  * igt@gem_userptr_blits@forbidden-operations:
    - shard-dg2:          NOTRUN -> [SKIP][42] ([i915#3282] / [i915#3297])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@gem_userptr_blits@forbidden-operations.html

  * igt@gem_userptr_blits@map-fixed-invalidate:
    - shard-dg2-9:        NOTRUN -> [SKIP][43] ([i915#3297] / [i915#4880]) +1 other test skip
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gem_userptr_blits@map-fixed-invalidate.html

  * igt@gem_userptr_blits@relocations:
    - shard-dg2:          NOTRUN -> [SKIP][44] ([i915#3281] / [i915#3297])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@gem_userptr_blits@relocations.html

  * igt@gem_userptr_blits@unsync-overlap:
    - shard-dg2:          NOTRUN -> [SKIP][45] ([i915#3297]) +2 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@gem_userptr_blits@unsync-overlap.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-rkl:          [PASS][46] -> [INCOMPLETE][47] ([i915#13356])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_workarounds@suspend-resume-context.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-3/igt@gem_workarounds@suspend-resume-context.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-dg2:          NOTRUN -> [SKIP][48] ([i915#2856]) +3 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@gen9_exec_parse@allowed-all.html

  * igt@gen9_exec_parse@bb-start-far:
    - shard-dg2-9:        NOTRUN -> [SKIP][49] ([i915#2856]) +1 other test skip
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@gen9_exec_parse@bb-start-far.html

  * igt@i915_drm_fdinfo@virtual-busy-hang:
    - shard-dg2:          NOTRUN -> [SKIP][50] ([i915#14118])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@i915_drm_fdinfo@virtual-busy-hang.html

  * igt@i915_fb_tiling@basic-x-tiling:
    - shard-dg2:          NOTRUN -> [SKIP][51] ([i915#13786])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@i915_fb_tiling@basic-x-tiling.html

  * igt@i915_hangman@hangcheck-unterminated:
    - shard-rkl:          [PASS][52] -> [DMESG-WARN][53] ([i915#12964]) +12 other tests dmesg-warn
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@i915_hangman@hangcheck-unterminated.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-5/igt@i915_hangman@hangcheck-unterminated.html

  * igt@i915_module_load@reload-no-display:
    - shard-dg2:          NOTRUN -> [DMESG-WARN][54] ([i915#13029] / [i915#14545])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@i915_module_load@reload-no-display.html

  * igt@i915_pm_freq_api@freq-suspend@gt0:
    - shard-dg2:          [PASS][55] -> [INCOMPLETE][56] ([i915#13356] / [i915#13820]) +1 other test incomplete
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-8/igt@i915_pm_freq_api@freq-suspend@gt0.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-1/igt@i915_pm_freq_api@freq-suspend@gt0.html

  * igt@i915_pm_rps@min-max-config-loaded:
    - shard-dg2:          NOTRUN -> [SKIP][57] ([i915#11681] / [i915#6621])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@i915_pm_rps@min-max-config-loaded.html

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

  * igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling:
    - shard-dg2-9:        NOTRUN -> [SKIP][59] ([i915#4212]) +1 other test skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][60] ([i915#5190]) +4 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
    - shard-dg2:          NOTRUN -> [SKIP][61] ([i915#4212]) +1 other test skip
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-mtlp:         [PASS][62] -> [FAIL][63] ([i915#5138])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-mtlp-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-mtlp-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
    - shard-dg2-9:        NOTRUN -> [SKIP][64] ([i915#5190])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-270:
    - shard-dg2-9:        NOTRUN -> [SKIP][65] ([i915#4538] / [i915#5190]) +4 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_big_fb@yf-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-180:
    - shard-dg2:          NOTRUN -> [SKIP][66] ([i915#4538] / [i915#5190]) +9 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-10/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][67] ([i915#12313]) +2 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-2:
    - shard-dg2-9:        NOTRUN -> [SKIP][68] ([i915#10307] / [i915#6095]) +14 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-2.html

  * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][69] ([i915#6095]) +19 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-5/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2:
    - shard-glk:          NOTRUN -> [SKIP][70] +247 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk6/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][71] ([i915#10307] / [i915#6095]) +150 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-b-dp-3:
    - shard-dg2:          NOTRUN -> [SKIP][72] ([i915#6095]) +18 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-b-dp-3.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][73] ([i915#6095]) +147 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg1-19/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-4.html

  * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
    - shard-dg2-9:        NOTRUN -> [SKIP][74] ([i915#12313]) +1 other test skip
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][75] ([i915#14098] / [i915#6095]) +28 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-8/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][76] ([i915#10307] / [i915#10434] / [i915#6095]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-4/igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][77] ([i915#13781]) +3 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-4/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1.html

  * igt@kms_chamelium_frames@dp-crc-multiple:
    - shard-dg2-9:        NOTRUN -> [SKIP][78] ([i915#11151] / [i915#7828]) +4 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_chamelium_frames@dp-crc-multiple.html

  * igt@kms_chamelium_hpd@dp-hpd-storm:
    - shard-dg2:          NOTRUN -> [SKIP][79] ([i915#11151] / [i915#7828]) +8 other tests skip
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_chamelium_hpd@dp-hpd-storm.html

  * igt@kms_color@legacy-gamma-reset:
    - shard-rkl:          [PASS][80] -> [SKIP][81] ([i915#12655] / [i915#14544])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_color@legacy-gamma-reset.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_color@legacy-gamma-reset.html

  * igt@kms_content_protection@atomic:
    - shard-dg2:          NOTRUN -> [SKIP][82] ([i915#7118] / [i915#9424])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-dg2-9:        NOTRUN -> [SKIP][83] ([i915#3299])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_content_protection@srm:
    - shard-dg2:          NOTRUN -> [SKIP][84] ([i915#7118])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_content_protection@srm.html

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

  * igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [FAIL][86] ([i915#13566])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-5/igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1:
    - shard-rkl:          [PASS][87] -> [FAIL][88] ([i915#13566]) +1 other test fail
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-7/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-7/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-sliding-512x170:
    - shard-dg2-9:        NOTRUN -> [SKIP][89] ([i915#13049]) +1 other test skip
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_cursor_crc@cursor-sliding-512x170.html

  * igt@kms_cursor_edge_walk@256x256-top-edge@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][90] ([i915#12964])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-5/igt@kms_cursor_edge_walk@256x256-top-edge@pipe-b-hdmi-a-2.html

  * igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic:
    - shard-dg2-9:        NOTRUN -> [SKIP][91] ([i915#13046] / [i915#5354]) +2 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][92] ([i915#4103] / [i915#4213]) +2 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
    - shard-dg2:          NOTRUN -> [SKIP][93] ([i915#13046] / [i915#5354]) +3 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html

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

  * igt@kms_dp_link_training@uhbr-sst:
    - shard-dg2:          NOTRUN -> [SKIP][95] ([i915#13748])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_dp_link_training@uhbr-sst.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-dg2:          NOTRUN -> [SKIP][96] ([i915#13707])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-dg2:          NOTRUN -> [SKIP][97] ([i915#3469])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@chamelium:
    - shard-dg2-9:        NOTRUN -> [SKIP][98] ([i915#4854])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-2x:
    - shard-dg2:          NOTRUN -> [SKIP][99] ([i915#1839])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@kms_feature_discovery@display-2x.html

  * igt@kms_flip@2x-flip-vs-suspend-interruptible:
    - shard-dg2-9:        NOTRUN -> [SKIP][100] ([i915#9934]) +2 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_flip@2x-flip-vs-suspend-interruptible.html

  * igt@kms_flip@2x-modeset-vs-vblank-race:
    - shard-dg2:          NOTRUN -> [SKIP][101] ([i915#9934]) +11 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_flip@2x-modeset-vs-vblank-race.html

  * igt@kms_flip@flip-vs-fences:
    - shard-dg2:          NOTRUN -> [SKIP][102] ([i915#8381])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_flip@flip-vs-fences.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][103] ([i915#12745] / [i915#4839])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk6/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend@a-hdmi-a1:
    - shard-glk:          NOTRUN -> [INCOMPLETE][104] ([i915#12745])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk6/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling:
    - shard-rkl:          [PASS][105] -> [SKIP][106] ([i915#14544] / [i915#3555]) +1 other test skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling.html

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

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
    - shard-dg2-9:        NOTRUN -> [SKIP][108] ([i915#2672]) +2 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
    - shard-dg2-9:        NOTRUN -> [SKIP][109] ([i915#2672] / [i915#3555] / [i915#5190])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling:
    - shard-dg2:          NOTRUN -> [SKIP][110] ([i915#2672] / [i915#3555] / [i915#5190]) +1 other test skip
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html

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

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-rkl:          [PASS][112] -> [SKIP][113] ([i915#14544] / [i915#1849] / [i915#5354]) +1 other test skip
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render:
    - shard-dg2:          NOTRUN -> [FAIL][114] ([i915#6880])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][115] ([i915#10056])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk1/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-y:
    - shard-dg2:          NOTRUN -> [SKIP][116] ([i915#10055])
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt:
    - shard-dg2:          NOTRUN -> [SKIP][117] ([i915#3458]) +16 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-10/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu:
    - shard-dg2-9:        NOTRUN -> [SKIP][118] ([i915#3458]) +8 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-dg2-9:        NOTRUN -> [SKIP][119] ([i915#8708]) +6 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][120] ([i915#8708]) +16 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-rte:
    - shard-dg2:          NOTRUN -> [SKIP][121] ([i915#5354]) +27 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-rte.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-cpu:
    - shard-dg2-9:        NOTRUN -> [SKIP][122] ([i915#5354]) +13 other tests skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-cpu.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-snb:          [PASS][123] -> [SKIP][124]
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-snb1/igt@kms_hdmi_inject@inject-audio.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-snb5/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_hdr@bpc-switch-suspend:
    - shard-dg2:          NOTRUN -> [SKIP][125] ([i915#3555] / [i915#8228])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_hdr@bpc-switch-suspend.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-dg2:          [PASS][126] -> [SKIP][127] ([i915#3555] / [i915#8228])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-11/igt@kms_hdr@invalid-metadata-sizes.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_hdr@static-toggle:
    - shard-dg2-9:        NOTRUN -> [SKIP][128] ([i915#3555] / [i915#8228]) +1 other test skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_hdr@static-toggle.html

  * igt@kms_invalid_mode@int-max-clock:
    - shard-rkl:          [PASS][129] -> [SKIP][130] ([i915#14544] / [i915#3555] / [i915#8826])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_invalid_mode@int-max-clock.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_invalid_mode@int-max-clock.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-dg2:          NOTRUN -> [SKIP][131] ([i915#10656])
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - shard-dg2-9:        NOTRUN -> [SKIP][132] ([i915#12339])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-dg2:          NOTRUN -> [SKIP][133] ([i915#12388])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_pipe_b_c_ivb@from-pipe-c-to-b-with-3-lanes:
    - shard-dg2:          NOTRUN -> [SKIP][134] +10 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@kms_pipe_b_c_ivb@from-pipe-c-to-b-with-3-lanes.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12:
    - shard-rkl:          [PASS][135] -> [SKIP][136] ([i915#11190] / [i915#14544])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html

  * igt@kms_plane@plane-panning-bottom-right-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][137] ([i915#13026]) +1 other test incomplete
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk9/igt@kms_plane@plane-panning-bottom-right-suspend.html

  * igt@kms_plane_multiple@2x-tiling-none:
    - shard-dg2:          NOTRUN -> [SKIP][138] ([i915#13958]) +1 other test skip
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@kms_plane_multiple@2x-tiling-none.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-dg2:          NOTRUN -> [SKIP][139] ([i915#14259])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_plane_scaling@2x-scaler-multi-pipe:
    - shard-dg2-9:        NOTRUN -> [SKIP][140] ([i915#13046] / [i915#5354] / [i915#9423])
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_plane_scaling@2x-scaler-multi-pipe.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-dg2:          [PASS][141] -> [SKIP][142] ([i915#6953] / [i915#9423])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-10/igt@kms_plane_scaling@intel-max-src-size.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format:
    - shard-rkl:          [PASS][143] -> [SKIP][144] ([i915#14544] / [i915#8152])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format.html
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format@pipe-b:
    - shard-rkl:          [PASS][145] -> [SKIP][146] ([i915#12247] / [i915#14544] / [i915#8152]) +1 other test skip
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format@pipe-b.html
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format@pipe-b.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-c:
    - shard-glk10:        NOTRUN -> [SKIP][147] +155 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk10/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-c.html

  * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c:
    - shard-rkl:          NOTRUN -> [SKIP][148] ([i915#12247]) +1 other test skip
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-8/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c.html

  * igt@kms_plane_scaling@planes-scaler-unity-scaling:
    - shard-rkl:          [PASS][149] -> [SKIP][150] ([i915#14544] / [i915#3555] / [i915#8152])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_plane_scaling@planes-scaler-unity-scaling.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_plane_scaling@planes-scaler-unity-scaling.html

  * igt@kms_plane_scaling@planes-scaler-unity-scaling@pipe-a:
    - shard-rkl:          [PASS][151] -> [SKIP][152] ([i915#12247] / [i915#14544]) +1 other test skip
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_plane_scaling@planes-scaler-unity-scaling@pipe-a.html
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_plane_scaling@planes-scaler-unity-scaling@pipe-a.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-dg2:          NOTRUN -> [SKIP][153] ([i915#9685])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-dg2:          NOTRUN -> [SKIP][154] ([i915#9340])
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-dg2:          NOTRUN -> [SKIP][155] ([i915#9519])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-dg2:          [PASS][156] -> [SKIP][157] ([i915#9519])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-1/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-4/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_pm_rpm@pm-tiling:
    - shard-dg2-9:        NOTRUN -> [SKIP][158] ([i915#4077]) +9 other tests skip
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_pm_rpm@pm-tiling.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-dg2:          NOTRUN -> [SKIP][159] ([i915#6524] / [i915#6805])
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_prime@basic-crc-hybrid.html

  * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area:
    - shard-dg2:          NOTRUN -> [SKIP][160] ([i915#11520]) +7 other tests skip
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
    - shard-glk:          NOTRUN -> [SKIP][161] ([i915#11520]) +7 other tests skip
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk5/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area-big-fb:
    - shard-dg2-9:        NOTRUN -> [SKIP][162] ([i915#11520]) +3 other tests skip
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr2_sf@psr2-plane-move-sf-dmg-area:
    - shard-glk10:        NOTRUN -> [SKIP][163] ([i915#11520]) +3 other tests skip
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk10/igt@kms_psr2_sf@psr2-plane-move-sf-dmg-area.html

  * igt@kms_psr@fbc-psr-cursor-plane-move:
    - shard-dg2:          NOTRUN -> [SKIP][164] ([i915#1072] / [i915#9732]) +22 other tests skip
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@kms_psr@fbc-psr-cursor-plane-move.html

  * igt@kms_psr@psr2-no-drrs:
    - shard-dg2-9:        NOTRUN -> [SKIP][165] ([i915#1072] / [i915#9732]) +10 other tests skip
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_psr@psr2-no-drrs.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-dg2-9:        NOTRUN -> [SKIP][166] ([i915#9685])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-270:
    - shard-dg2-9:        NOTRUN -> [SKIP][167] ([i915#12755] / [i915#5190])
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-dg2:          NOTRUN -> [SKIP][168] ([i915#12755] / [i915#5190])
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_rotation_crc@sprite-rotation-90:
    - shard-dg2:          NOTRUN -> [SKIP][169] ([i915#12755]) +1 other test skip
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-7/igt@kms_rotation_crc@sprite-rotation-90.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-dg2:          NOTRUN -> [SKIP][170] ([i915#3555]) +4 other tests skip
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_setmode@invalid-clone-single-crtc-stealing:
    - shard-dg2-9:        NOTRUN -> [SKIP][171] ([i915#3555]) +1 other test skip
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_setmode@invalid-clone-single-crtc-stealing.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-dg2-9:        NOTRUN -> [SKIP][172] ([i915#8623])
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-d-edp-1:
    - shard-mtlp:         [PASS][173] -> [FAIL][174] ([i915#9196])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-mtlp-1/igt@kms_universal_plane@cursor-fb-leak@pipe-d-edp-1.html
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-mtlp-2/igt@kms_universal_plane@cursor-fb-leak@pipe-d-edp-1.html

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

  * igt@kms_vrr@seamless-rr-switch-virtual:
    - shard-dg2-9:        NOTRUN -> [SKIP][176] ([i915#9906])
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@kms_vrr@seamless-rr-switch-virtual.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-glk:          NOTRUN -> [SKIP][177] ([i915#2437]) +1 other test skip
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-glk6/igt@kms_writeback@writeback-pixel-formats.html

  * igt@perf@global-sseu-config-invalid:
    - shard-dg2:          NOTRUN -> [SKIP][178] ([i915#7387])
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-10/igt@perf@global-sseu-config-invalid.html

  * igt@perf@mi-rpc:
    - shard-dg2-9:        NOTRUN -> [SKIP][179] ([i915#2434])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-9/igt@perf@mi-rpc.html

  * igt@perf@non-zero-reason@0-rcs0:
    - shard-dg2:          NOTRUN -> [FAIL][180] ([i915#9100]) +1 other test fail
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@perf@non-zero-reason@0-rcs0.html

  * igt@perf_pmu@busy-double-start@vecs1:
    - shard-dg2:          [PASS][181] -> [FAIL][182] ([i915#4349]) +4 other tests fail
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-6/igt@perf_pmu@busy-double-start@vecs1.html
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@perf_pmu@busy-double-start@vecs1.html

  * igt@perf_pmu@most-busy-check-all:
    - shard-rkl:          [PASS][183] -> [FAIL][184] ([i915#4349]) +1 other test fail
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-4/igt@perf_pmu@most-busy-check-all.html
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-2/igt@perf_pmu@most-busy-check-all.html

  * igt@prime_vgem@basic-read:
    - shard-dg2:          NOTRUN -> [SKIP][185] ([i915#3291] / [i915#3708])
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-3/igt@prime_vgem@basic-read.html

  * igt@prime_vgem@coherency-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][186] ([i915#3708] / [i915#4077])
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@prime_vgem@coherency-gtt.html

  
#### Possible fixes ####

  * igt@gem_pxp@display-protected-crc:
    - shard-rkl:          [TIMEOUT][187] ([i915#12917] / [i915#12964]) -> [PASS][188] +1 other test pass
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-3/igt@gem_pxp@display-protected-crc.html
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-8/igt@gem_pxp@display-protected-crc.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-dg2:          [FAIL][189] ([i915#5956]) -> [PASS][190]
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-6/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-11/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
    - shard-tglu:         [FAIL][191] ([i915#14857]) -> [PASS][192] +1 other test pass
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-tglu-2/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-tglu-9/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html

  * igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1:
    - shard-tglu:         [FAIL][193] ([i915#13566]) -> [PASS][194] +3 other tests pass
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-tglu-5/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-tglu-8/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html

  * igt@kms_dither@fb-8bpc-vs-panel-8bpc:
    - shard-dg2:          [SKIP][195] ([i915#3555]) -> [PASS][196]
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-4/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-10/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html

  * igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1:
    - shard-snb:          [TIMEOUT][197] ([i915#14033]) -> [PASS][198] +1 other test pass
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-snb4/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-snb7/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-dg1:          [DMESG-WARN][199] ([i915#4423]) -> [PASS][200] +4 other tests pass
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg1-16/igt@kms_plane_multiple@tiling-y.html
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg1-14/igt@kms_plane_multiple@tiling-y.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-rkl:          [SKIP][201] ([i915#9519]) -> [PASS][202] +1 other test pass
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-4/igt@kms_pm_rpm@modeset-non-lpsp.html
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-dg2:          [ABORT][203] ([i915#10553]) -> [PASS][204]
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-10/igt@kms_pm_rpm@system-suspend-modeset.html
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-8/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_sequence@get-idle@pipe-b-hdmi-a-1:
    - shard-rkl:          [DMESG-WARN][205] ([i915#12964]) -> [PASS][206] +15 other tests pass
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-7/igt@kms_sequence@get-idle@pipe-b-hdmi-a-1.html
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-2/igt@kms_sequence@get-idle@pipe-b-hdmi-a-1.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-c-edp-1:
    - shard-mtlp:         [FAIL][207] ([i915#9196]) -> [PASS][208]
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-mtlp-1/igt@kms_universal_plane@cursor-fb-leak@pipe-c-edp-1.html
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-mtlp-2/igt@kms_universal_plane@cursor-fb-leak@pipe-c-edp-1.html

  * igt@kms_vblank@ts-continuation-dpms-rpm:
    - shard-rkl:          [DMESG-WARN][209] ([i915#12917] / [i915#12964]) -> [PASS][210]
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-2/igt@kms_vblank@ts-continuation-dpms-rpm.html
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-8/igt@kms_vblank@ts-continuation-dpms-rpm.html

  * igt@perf_pmu@busy-double-start@rcs0:
    - shard-mtlp:         [FAIL][211] ([i915#4349]) -> [PASS][212]
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-mtlp-7/igt@perf_pmu@busy-double-start@rcs0.html
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-mtlp-8/igt@perf_pmu@busy-double-start@rcs0.html

  
#### Warnings ####

  * igt@gem_ccs@ctrl-surf-copy-new-ctx:
    - shard-rkl:          [SKIP][213] ([i915#9323]) -> [SKIP][214] ([i915#14544] / [i915#9323])
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@gem_ccs@ctrl-surf-copy-new-ctx.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-rkl:          [SKIP][215] ([i915#4525]) -> [SKIP][216] ([i915#14544] / [i915#4525])
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_exec_balancer@parallel-balancer.html
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_flush@basic-batch-kernel-default-cmd:
    - shard-rkl:          [SKIP][217] -> [SKIP][218] ([i915#14544]) +4 other tests skip
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html

  * igt@gem_exec_reloc@basic-cpu-gtt:
    - shard-rkl:          [SKIP][219] ([i915#3281]) -> [SKIP][220] ([i915#14544] / [i915#3281])
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_exec_reloc@basic-cpu-gtt.html
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@gem_exec_reloc@basic-cpu-gtt.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-rkl:          [SKIP][221] ([i915#4613]) -> [SKIP][222] ([i915#14544] / [i915#4613])
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_lmem_swapping@heavy-verify-random.html
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@gem_lmem_swapping@heavy-verify-random.html

  * igt@gem_pread@snoop:
    - shard-rkl:          [SKIP][223] ([i915#3282]) -> [SKIP][224] ([i915#14544] / [i915#3282]) +1 other test skip
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_pread@snoop.html
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@gem_pread@snoop.html

  * igt@gem_pxp@hw-rejects-pxp-buffer:
    - shard-rkl:          [TIMEOUT][225] ([i915#12917] / [i915#12964]) -> [SKIP][226] ([i915#13717])
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-2/igt@gem_pxp@hw-rejects-pxp-buffer.html
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-8/igt@gem_pxp@hw-rejects-pxp-buffer.html

  * igt@gem_pxp@hw-rejects-pxp-context:
    - shard-rkl:          [SKIP][227] ([i915#13717]) -> [TIMEOUT][228] ([i915#12917] / [i915#12964])
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_pxp@hw-rejects-pxp-context.html
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@gem_pxp@hw-rejects-pxp-context.html

  * igt@gem_pxp@reject-modify-context-protection-off-1:
    - shard-rkl:          [TIMEOUT][229] ([i915#12917] / [i915#12964]) -> [SKIP][230] ([i915#4270])
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-7/igt@gem_pxp@reject-modify-context-protection-off-1.html
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-2/igt@gem_pxp@reject-modify-context-protection-off-1.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-rkl:          [SKIP][231] ([i915#3297]) -> [SKIP][232] ([i915#14544] / [i915#3297])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gen9_exec_parse@cmd-crossing-page:
    - shard-rkl:          [SKIP][233] ([i915#2527]) -> [SKIP][234] ([i915#14544] / [i915#2527])
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@gen9_exec_parse@cmd-crossing-page.html
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@gen9_exec_parse@cmd-crossing-page.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-rkl:          [SKIP][235] ([i915#5286]) -> [SKIP][236] ([i915#14544]) +1 other test skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc:
    - shard-rkl:          [SKIP][237] ([i915#14098] / [i915#6095]) -> [SKIP][238] ([i915#14544]) +1 other test skip
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][239] ([i915#6095]) -> [SKIP][240] ([i915#14098] / [i915#6095]) +4 other tests skip
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-2.html
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][241] ([i915#14098] / [i915#6095]) -> [SKIP][242] ([i915#6095]) +11 other tests skip
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe:
    - shard-rkl:          [SKIP][243] ([i915#11151] / [i915#7828]) -> [SKIP][244] ([i915#11151] / [i915#14544] / [i915#7828]) +2 other tests skip
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe.html

  * igt@kms_content_protection@srm:
    - shard-rkl:          [SKIP][245] ([i915#7118]) -> [SKIP][246] ([i915#14544])
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_content_protection@srm.html
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_content_protection@srm.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
    - shard-rkl:          [SKIP][247] ([i915#4103]) -> [SKIP][248] ([i915#14544])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-rkl:          [SKIP][249] ([i915#3955]) -> [SKIP][250] ([i915#14544] / [i915#3955])
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_fbcon_fbt@psr-suspend.html
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_flip@2x-modeset-vs-vblank-race:
    - shard-rkl:          [SKIP][251] ([i915#9934]) -> [SKIP][252] ([i915#14544] / [i915#9934]) +3 other tests skip
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_flip@2x-modeset-vs-vblank-race.html
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_flip@2x-modeset-vs-vblank-race.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt:
    - shard-dg1:          [SKIP][253] ([i915#3458] / [i915#4423]) -> [SKIP][254] ([i915#3458])
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg1-14/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff:
    - shard-dg1:          [SKIP][255] ([i915#4423]) -> [SKIP][256]
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg1-14/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-rte:
    - shard-rkl:          [SKIP][257] ([i915#1825]) -> [SKIP][258] ([i915#14544] / [i915#1849] / [i915#5354]) +6 other tests skip
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-rte.html
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-rte.html

  * igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
    - shard-dg2:          [SKIP][259] ([i915#10433] / [i915#3458]) -> [SKIP][260] ([i915#3458]) +3 other tests skip
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-dg2:          [SKIP][261] ([i915#3458]) -> [SKIP][262] ([i915#10433] / [i915#3458]) +1 other test skip
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu.html
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt:
    - shard-rkl:          [SKIP][263] ([i915#3023]) -> [SKIP][264] ([i915#14544] / [i915#1849] / [i915#5354]) +5 other tests skip
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html

  * igt@kms_hdr@bpc-switch-suspend:
    - shard-rkl:          [SKIP][265] ([i915#3555] / [i915#8228]) -> [SKIP][266] ([i915#14544])
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_hdr@bpc-switch-suspend.html
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_hdr@bpc-switch-suspend.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-mtlp:         [SKIP][267] ([i915#12713]) -> [SKIP][268] ([i915#1187] / [i915#12713])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-mtlp-2/igt@kms_hdr@brightness-with-hdr.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-mtlp-1/igt@kms_hdr@brightness-with-hdr.html
    - shard-dg2:          [SKIP][269] ([i915#12713]) -> [SKIP][270] ([i915#13331])
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-dg2-4/igt@kms_hdr@brightness-with-hdr.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-dg2-10/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-rkl:          [SKIP][271] ([i915#12388]) -> [SKIP][272] ([i915#12388] / [i915#14544])
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_joiner@invalid-modeset-force-big-joiner.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-rkl:          [SKIP][273] ([i915#13958]) -> [SKIP][274] ([i915#14544])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_plane_multiple@2x-tiling-yf.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-rkl:          [SKIP][275] ([i915#9519]) -> [SKIP][276] ([i915#14544] / [i915#9519])
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-rkl:          [SKIP][277] ([i915#6524]) -> [SKIP][278] ([i915#14544] / [i915#6524])
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_prime@basic-crc-hybrid.html
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_prime@basic-crc-hybrid.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf:
    - shard-rkl:          [SKIP][279] ([i915#11520]) -> [SKIP][280] ([i915#11520] / [i915#14544]) +1 other test skip
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html

  * igt@kms_psr@psr-sprite-plane-onoff:
    - shard-rkl:          [SKIP][281] ([i915#1072] / [i915#9732]) -> [SKIP][282] ([i915#1072] / [i915#14544] / [i915#9732]) +5 other tests skip
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_psr@psr-sprite-plane-onoff.html
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_psr@psr-sprite-plane-onoff.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-rkl:          [SKIP][283] ([i915#5289]) -> [SKIP][284] ([i915#14544])
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_vrr@flip-basic-fastset:
    - shard-rkl:          [SKIP][285] ([i915#9906]) -> [SKIP][286] ([i915#14544])
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@kms_vrr@flip-basic-fastset.html
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@kms_vrr@flip-basic-fastset.html

  * igt@prime_vgem@basic-read:
    - shard-rkl:          [SKIP][287] ([i915#3291] / [i915#3708]) -> [SKIP][288] ([i915#14544] / [i915#3291] / [i915#3708])
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17266/shard-rkl-8/igt@prime_vgem@basic-read.html
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154985v1/shard-rkl-6/igt@prime_vgem@basic-read.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#10055]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10055
  [i915#10056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10056
  [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#10553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10553
  [i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11190
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
  [i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
  [i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12339
  [i915#12388]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12388
  [i915#12655]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12655
  [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
  [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
  [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
  [i915#12917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12917
  [i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
  [i915#13026]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13026
  [i915#13029]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13029
  [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13331]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13331
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#13427]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13427
  [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
  [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
  [i915#13717]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13717
  [i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
  [i915#13781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13781
  [i915#13786]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13786
  [i915#13820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13820
  [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
  [i915#14033]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14033
  [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
  [i915#14118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14118
  [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#14857]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14857
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
  [i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
  [i915#1850]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1850
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#2434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2434
  [i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
  [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
  [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#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
  [i915#3955]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3955
  [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [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#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537
  [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
  [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#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
  [i915#5107]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5107
  [i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
  [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#5784]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5784
  [i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6188]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6188
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
  [i915#6805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6805
  [i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880
  [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
  [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
  [i915#7387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7387
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#8152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8152
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8289
  [i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
  [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
  [i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
  [i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
  [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
  [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
  [i915#8826]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8826
  [i915#9100]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9100
  [i915#9196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9196
  [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
  [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
  [i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
  [i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
  [i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519
  [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


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

  * Linux: CI_DRM_17266 -> Patchwork_154985v1

  CI-20190529: 20190529
  CI_DRM_17266: a4d9163251f4832a7d34d4b59449f9a68b9b7adf @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8550: 4f8c7886ad02e116804ec08714f17bce1755c6e4 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_154985v1: a4d9163251f4832a7d34d4b59449f9a68b9b7adf @ 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_154985v1/index.html

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

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

* Re: [PATCH 00/11] drm/{i915, xe}/stolen: refactor and unify interfaces
  2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
                   ` (12 preceding siblings ...)
  2025-09-25  1:14 ` ✗ i915.CI.Full: failure " Patchwork
@ 2025-09-26 18:41 ` Ville Syrjälä
  2025-09-29  9:53   ` Jani Nikula
  13 siblings, 1 reply; 16+ messages in thread
From: Ville Syrjälä @ 2025-09-26 18:41 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, intel-xe

On Wed, Sep 24, 2025 at 07:43:29PM +0300, Jani Nikula wrote:
> 
> Jani Nikula (11):
>   drm/{i915,xe}/stolen: rename i915_stolen_fb to intel_stolen_node
>   drm/xe/stolen: rename fb to node in stolen compat header
>   drm/xe/stolen: convert compat stolen macros to inline functions
>   drm/xe/stolen: switch from BUG_ON() to WARN_ON() in compat
>   drm/i915/stolen: convert intel_stolen_node into a real struct of its
>     own
>   drm/xe/stolen: convert compat static inlines to proper functions
>   drm/{i915,xe}/stolen: make struct intel_stolen_node opaque
>   drm/{i915,xe}/stolen: add device pointer to struct intel_stolen_node
>   drm/{i915,xe}/stolen: use the stored i915/xe device pointer
>   drm/{i915,xe}/stolen: convert stolen interface to struct drm_device
>   drm/xe/stolen: use the same types as i915 interface

Looks fine by me. Series is
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Side note: I have branch somewhere that replaces the raw
drm_mm_node FBC stuff with a real i915_gem_object. I used
that as a way to easily expose the CFB and LLB as files in
debugfs so that I could observe/modify the actual CFB contents.
I should look into making that official to help future FBC
debugging. With the abstraction layer I shouldn't even need
to touch the FBC code itself anymore...

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH 00/11] drm/{i915, xe}/stolen: refactor and unify interfaces
  2025-09-26 18:41 ` [PATCH 00/11] drm/{i915, xe}/stolen: " Ville Syrjälä
@ 2025-09-29  9:53   ` Jani Nikula
  0 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2025-09-29  9:53 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx, intel-xe

On Fri, 26 Sep 2025, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Wed, Sep 24, 2025 at 07:43:29PM +0300, Jani Nikula wrote:
>> 
>> Jani Nikula (11):
>>   drm/{i915,xe}/stolen: rename i915_stolen_fb to intel_stolen_node
>>   drm/xe/stolen: rename fb to node in stolen compat header
>>   drm/xe/stolen: convert compat stolen macros to inline functions
>>   drm/xe/stolen: switch from BUG_ON() to WARN_ON() in compat
>>   drm/i915/stolen: convert intel_stolen_node into a real struct of its
>>     own
>>   drm/xe/stolen: convert compat static inlines to proper functions
>>   drm/{i915,xe}/stolen: make struct intel_stolen_node opaque
>>   drm/{i915,xe}/stolen: add device pointer to struct intel_stolen_node
>>   drm/{i915,xe}/stolen: use the stored i915/xe device pointer
>>   drm/{i915,xe}/stolen: convert stolen interface to struct drm_device
>>   drm/xe/stolen: use the same types as i915 interface
>
> Looks fine by me. Series is
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Thanks for the review, pushed to din.

> Side note: I have branch somewhere that replaces the raw
> drm_mm_node FBC stuff with a real i915_gem_object. I used
> that as a way to easily expose the CFB and LLB as files in
> debugfs so that I could observe/modify the actual CFB contents.
> I should look into making that official to help future FBC
> debugging. With the abstraction layer I shouldn't even need
> to touch the FBC code itself anymore...

Yay!

BR,
Jani.

-- 
Jani Nikula, Intel

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

end of thread, other threads:[~2025-09-29  9:53 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-24 16:43 [PATCH 00/11] drm/{i915,xe}/stolen: refactor and unify interfaces Jani Nikula
2025-09-24 16:43 ` [PATCH 01/11] drm/{i915, xe}/stolen: rename i915_stolen_fb to intel_stolen_node Jani Nikula
2025-09-24 16:43 ` [PATCH 02/11] drm/xe/stolen: rename fb to node in stolen compat header Jani Nikula
2025-09-24 16:43 ` [PATCH 03/11] drm/xe/stolen: convert compat stolen macros to inline functions Jani Nikula
2025-09-24 16:43 ` [PATCH 04/11] drm/xe/stolen: switch from BUG_ON() to WARN_ON() in compat Jani Nikula
2025-09-24 16:43 ` [PATCH 05/11] drm/i915/stolen: convert intel_stolen_node into a real struct of its own Jani Nikula
2025-09-24 16:43 ` [PATCH 06/11] drm/xe/stolen: convert compat static inlines to proper functions Jani Nikula
2025-09-24 16:43 ` [PATCH 07/11] drm/{i915, xe}/stolen: make struct intel_stolen_node opaque Jani Nikula
2025-09-24 16:43 ` [PATCH 08/11] drm/{i915, xe}/stolen: add device pointer to struct intel_stolen_node Jani Nikula
2025-09-24 16:43 ` [PATCH 09/11] drm/{i915, xe}/stolen: use the stored i915/xe device pointer Jani Nikula
2025-09-24 16:43 ` [PATCH 10/11] drm/{i915, xe}/stolen: convert stolen interface to struct drm_device Jani Nikula
2025-09-24 16:43 ` [PATCH 11/11] drm/xe/stolen: use the same types as i915 interface Jani Nikula
2025-09-24 17:53 ` ✓ i915.CI.BAT: success for drm/{i915,xe}/stolen: refactor and unify interfaces Patchwork
2025-09-25  1:14 ` ✗ i915.CI.Full: failure " Patchwork
2025-09-26 18:41 ` [PATCH 00/11] drm/{i915, xe}/stolen: " Ville Syrjälä
2025-09-29  9:53   ` Jani Nikula

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).