Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements
@ 2026-02-02  9:41 Chaitanya Kumar Borah
  2026-02-02  9:41 ` [RESEND 1/9] drm/colorop: Add destroy helper for colorop objects Chaitanya Kumar Borah
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: Chaitanya Kumar Borah @ 2026-02-02  9:41 UTC (permalink / raw)
  To: dri-devel, intel-gfx, intel-xe, amd-gfx
  Cc: harry.wentland, jani.nikula, louis.chauvet, mwen, contact,
	alex.hung, daniels, uma.shankar, suraj.kandpal, nfraprado,
	ville.syrjala, matthew.d.roper, maarten.lankhorst,
	chaitanya.kumar.borah

This series contains follow-up fixes and improvements for the DRM color
pipeline infrastructure that was introduced in v6.19.[1][2]

The central handling of clean up of colorop from the mode_config list
is missing. While vkms calls drm_colorop_pipeline_destroy() in vkms_destroy(),
amd driver calls it only during failure of the init path and i915/xe driver
does not call it at all. This means amd and intel leaks these objects on
driver removal.

This series adds the teardown of mode_config.colorop_list in drm_mode_config_cleanup().
Since, i915/xe sub-classes the drm_colorop within intel_colorop it was not enough
to just use drm_colorop_pipeline_destroy(). Therefore, this series

- Introduces driver-managed destruction for drm_colorop objects and
  updates core helpers to use driver-provided destroy callbacks.
- Ensures all colorop objects are correctly torn down during
  mode_config cleanup and driver removal.

In addition to that following changes are made in the series
- Refactors i915 plane color pipeline initialization to reliably clean
  up partially constructed pipelines on failure.

Thanks for taking a look. Feedback is welcome.

[1] https://lore.kernel.org/dri-devel/cbe00ac4-a535-47d3-813a-e2eda7e9b991@amd.com/
[2] https://lore.kernel.org/intel-gfx/20251203085211.3663374-1-uma.shankar@intel.com/

v2:
 - Re-arrange patches (Alex)
 - Re-factor code to avoid repitition in pipeline creation (Suraj)

v3:
 - Add documentation only to function definition (Jani)
 - s/nvl/xe3plpd (Suraj)

resend:
 - for merge (remaining patches)

Chaitanya Kumar Borah (9):
  drm/colorop: Add destroy helper for colorop objects
  drm: Allow driver-managed destruction of colorop objects
  drm/amd/display: Hook up colorop destroy helper for plane pipelines
  drm/vkms: Hook up colorop destroy helper for plane pipelines
  drm/i915/display: Hook up intel_colorop_destroy
  drm: Clean up colorop objects during mode_config cleanup
  drm/vkms: Remove drm_colorop_pipeline_destroy() from vkms_destroy()
  drm/colorop: Use destroy callback for color pipeline teardown
  drm/i915/color: Add failure handling in plane color pipeline init

 .../amd/display/amdgpu_dm/amdgpu_dm_colorop.c |  27 ++-
 drivers/gpu/drm/drm_colorop.c                 |  49 +++--
 drivers/gpu/drm/drm_mode_config.c             |   6 +
 .../drm/i915/display/intel_color_pipeline.c   | 171 +++++++++++++-----
 drivers/gpu/drm/i915/display/intel_colorop.c  |   6 +
 drivers/gpu/drm/i915/display/intel_colorop.h  |   1 +
 drivers/gpu/drm/vkms/vkms_colorop.c           |  16 +-
 drivers/gpu/drm/vkms/vkms_drv.c               |   1 -
 include/drm/drm_colorop.h                     |  32 +++-
 9 files changed, 231 insertions(+), 78 deletions(-)

-- 
2.25.1


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

* [RESEND 1/9] drm/colorop: Add destroy helper for colorop objects
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
@ 2026-02-02  9:41 ` Chaitanya Kumar Borah
  2026-02-02  9:41 ` [RESEND 2/9] drm: Allow driver-managed destruction of " Chaitanya Kumar Borah
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Chaitanya Kumar Borah @ 2026-02-02  9:41 UTC (permalink / raw)
  To: dri-devel, intel-gfx, intel-xe, amd-gfx
  Cc: harry.wentland, jani.nikula, louis.chauvet, mwen, contact,
	alex.hung, daniels, uma.shankar, suraj.kandpal, nfraprado,
	ville.syrjala, matthew.d.roper, maarten.lankhorst,
	chaitanya.kumar.borah

Add a helper that performs common cleanup and frees the
associated object. This can be used by drivers if they do not
require any driver-specific teardown.

v2:
- Add function documentation only before definition (Jani)

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_colorop.c | 15 +++++++++++++++
 include/drm/drm_colorop.h     |  2 ++
 2 files changed, 17 insertions(+)

diff --git a/drivers/gpu/drm/drm_colorop.c b/drivers/gpu/drm/drm_colorop.c
index 44eb823585d2..c226870fde9e 100644
--- a/drivers/gpu/drm/drm_colorop.c
+++ b/drivers/gpu/drm/drm_colorop.c
@@ -178,6 +178,21 @@ void drm_colorop_cleanup(struct drm_colorop *colorop)
 }
 EXPORT_SYMBOL(drm_colorop_cleanup);
 
+/**
+ * drm_colorop_destroy - destroy colorop
+ * @colorop: drm colorop
+ *
+ * Destroys @colorop by performing common DRM cleanup and freeing the
+ * colorop object. This can be used by drivers if they do not
+ * require any driver-specific teardown.
+ */
+void drm_colorop_destroy(struct drm_colorop *colorop)
+{
+	drm_colorop_cleanup(colorop);
+	kfree(colorop);
+}
+EXPORT_SYMBOL(drm_colorop_destroy);
+
 /**
  * drm_colorop_pipeline_destroy - Helper for color pipeline destruction
  *
diff --git a/include/drm/drm_colorop.h b/include/drm/drm_colorop.h
index a3a32f9f918c..3056f3f02597 100644
--- a/include/drm/drm_colorop.h
+++ b/include/drm/drm_colorop.h
@@ -420,6 +420,8 @@ void drm_colorop_atomic_destroy_state(struct drm_colorop *colorop,
  */
 void drm_colorop_reset(struct drm_colorop *colorop);
 
+void drm_colorop_destroy(struct drm_colorop *colorop);
+
 /**
  * drm_colorop_index - find the index of a registered colorop
  * @colorop: colorop to find index for
-- 
2.25.1


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

* [RESEND 2/9] drm: Allow driver-managed destruction of colorop objects
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
  2026-02-02  9:41 ` [RESEND 1/9] drm/colorop: Add destroy helper for colorop objects Chaitanya Kumar Borah
@ 2026-02-02  9:41 ` Chaitanya Kumar Borah
  2026-02-02  9:41 ` [RESEND 3/9] drm/amd/display: Hook up colorop destroy helper for plane pipelines Chaitanya Kumar Borah
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Chaitanya Kumar Borah @ 2026-02-02  9:41 UTC (permalink / raw)
  To: dri-devel, intel-gfx, intel-xe, amd-gfx
  Cc: harry.wentland, jani.nikula, louis.chauvet, mwen, contact,
	alex.hung, daniels, uma.shankar, suraj.kandpal, nfraprado,
	ville.syrjala, matthew.d.roper, maarten.lankhorst,
	chaitanya.kumar.borah

Some drivers might want to embed struct drm_colorop inside
driver-specific objects, similar to planes or CRTCs. In such
cases, freeing only the drm_colorop is incorrect.

Add a drm_colorop_funcs callback to allow drivers to provide a destroy
hook that cleans up the full enclosing object. Make changes in helper
functions to accept helper functions as argument. Pass NULL for now
to retain current behavior.

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
---
 .../amd/display/amdgpu_dm/amdgpu_dm_colorop.c | 18 ++++++-----
 drivers/gpu/drm/drm_colorop.c                 | 31 +++++++++++++------
 .../drm/i915/display/intel_color_pipeline.c   |  8 ++---
 drivers/gpu/drm/vkms/vkms_colorop.c           | 10 +++---
 include/drm/drm_colorop.h                     | 30 +++++++++++++++---
 5 files changed, 66 insertions(+), 31 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
index a2de3bba8346..dfdb4fb4219f 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
@@ -72,7 +72,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane,
+	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL,
 					      amdgpu_dm_supported_degam_tfs,
 					      DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
@@ -89,7 +89,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_mult_init(dev, ops[i], plane, DRM_COLOROP_FLAG_ALLOW_BYPASS);
+	ret = drm_plane_colorop_mult_init(dev, ops[i], plane, NULL, DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
 
@@ -104,7 +104,8 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, DRM_COLOROP_FLAG_ALLOW_BYPASS);
+	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, NULL,
+					     DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
 
@@ -120,7 +121,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 			goto cleanup;
 		}
 
-		ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane,
+		ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL,
 						amdgpu_dm_supported_shaper_tfs,
 						DRM_COLOROP_FLAG_ALLOW_BYPASS);
 		if (ret)
@@ -137,7 +138,8 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 			goto cleanup;
 		}
 
-		ret = drm_plane_colorop_curve_1d_lut_init(dev, ops[i], plane, MAX_COLOR_LUT_ENTRIES,
+		ret = drm_plane_colorop_curve_1d_lut_init(dev, ops[i], plane, NULL,
+							MAX_COLOR_LUT_ENTRIES,
 							DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
 							DRM_COLOROP_FLAG_ALLOW_BYPASS);
 		if (ret)
@@ -154,7 +156,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 			goto cleanup;
 		}
 
-		ret = drm_plane_colorop_3dlut_init(dev, ops[i], plane, LUT3D_SIZE,
+		ret = drm_plane_colorop_3dlut_init(dev, ops[i], plane, NULL, LUT3D_SIZE,
 					DRM_COLOROP_LUT3D_INTERPOLATION_TETRAHEDRAL,
 					DRM_COLOROP_FLAG_ALLOW_BYPASS);
 		if (ret)
@@ -172,7 +174,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane,
+	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL,
 					      amdgpu_dm_supported_blnd_tfs,
 					      DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
@@ -189,7 +191,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_curve_1d_lut_init(dev, ops[i], plane, MAX_COLOR_LUT_ENTRIES,
+	ret = drm_plane_colorop_curve_1d_lut_init(dev, ops[i], plane, NULL, MAX_COLOR_LUT_ENTRIES,
 						  DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
 						  DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
diff --git a/drivers/gpu/drm/drm_colorop.c b/drivers/gpu/drm/drm_colorop.c
index c226870fde9e..2bce29176ab3 100644
--- a/drivers/gpu/drm/drm_colorop.c
+++ b/drivers/gpu/drm/drm_colorop.c
@@ -93,7 +93,8 @@ static const struct drm_prop_enum_list drm_colorop_lut3d_interpolation_list[] =
 /* Init Helpers */
 
 static int drm_plane_colorop_init(struct drm_device *dev, struct drm_colorop *colorop,
-				  struct drm_plane *plane, enum drm_colorop_type type,
+				  struct drm_plane *plane, const struct drm_colorop_funcs *funcs,
+				  enum drm_colorop_type type,
 				  uint32_t flags)
 {
 	struct drm_mode_config *config = &dev->mode_config;
@@ -109,6 +110,7 @@ static int drm_plane_colorop_init(struct drm_device *dev, struct drm_colorop *co
 	colorop->type = type;
 	colorop->plane = plane;
 	colorop->next = NULL;
+	colorop->funcs = funcs;
 
 	list_add_tail(&colorop->head, &config->colorop_list);
 	colorop->index = config->num_colorop++;
@@ -218,6 +220,7 @@ EXPORT_SYMBOL(drm_colorop_pipeline_destroy);
  * @dev: DRM device
  * @colorop: The drm_colorop object to initialize
  * @plane: The associated drm_plane
+ * @funcs: control functions for the new colorop
  * @supported_tfs: A bitfield of supported drm_plane_colorop_curve_1d_init enum values,
  *                 created using BIT(curve_type) and combined with the OR '|'
  *                 operator.
@@ -225,7 +228,8 @@ EXPORT_SYMBOL(drm_colorop_pipeline_destroy);
  * @return zero on success, -E value on failure
  */
 int drm_plane_colorop_curve_1d_init(struct drm_device *dev, struct drm_colorop *colorop,
-				    struct drm_plane *plane, u64 supported_tfs, uint32_t flags)
+				    struct drm_plane *plane, const struct drm_colorop_funcs *funcs,
+				    u64 supported_tfs, uint32_t flags)
 {
 	struct drm_prop_enum_list enum_list[DRM_COLOROP_1D_CURVE_COUNT];
 	int i, len;
@@ -246,7 +250,7 @@ int drm_plane_colorop_curve_1d_init(struct drm_device *dev, struct drm_colorop *
 		return -EINVAL;
 	}
 
-	ret = drm_plane_colorop_init(dev, colorop, plane, DRM_COLOROP_1D_CURVE, flags);
+	ret = drm_plane_colorop_init(dev, colorop, plane, funcs, DRM_COLOROP_1D_CURVE, flags);
 	if (ret)
 		return ret;
 
@@ -303,20 +307,23 @@ static int drm_colorop_create_data_prop(struct drm_device *dev, struct drm_color
  * @dev: DRM device
  * @colorop: The drm_colorop object to initialize
  * @plane: The associated drm_plane
+ * @funcs: control functions for new colorop
  * @lut_size: LUT size supported by driver
  * @interpolation: 1D LUT interpolation type
  * @flags: bitmask of misc, see DRM_COLOROP_FLAG_* defines.
  * @return zero on success, -E value on failure
  */
 int drm_plane_colorop_curve_1d_lut_init(struct drm_device *dev, struct drm_colorop *colorop,
-					struct drm_plane *plane, uint32_t lut_size,
+					struct drm_plane *plane,
+					const struct drm_colorop_funcs *funcs,
+					uint32_t lut_size,
 					enum drm_colorop_lut1d_interpolation_type interpolation,
 					uint32_t flags)
 {
 	struct drm_property *prop;
 	int ret;
 
-	ret = drm_plane_colorop_init(dev, colorop, plane, DRM_COLOROP_1D_LUT, flags);
+	ret = drm_plane_colorop_init(dev, colorop, plane, funcs, DRM_COLOROP_1D_LUT, flags);
 	if (ret)
 		return ret;
 
@@ -354,11 +361,12 @@ int drm_plane_colorop_curve_1d_lut_init(struct drm_device *dev, struct drm_color
 EXPORT_SYMBOL(drm_plane_colorop_curve_1d_lut_init);
 
 int drm_plane_colorop_ctm_3x4_init(struct drm_device *dev, struct drm_colorop *colorop,
-				   struct drm_plane *plane, uint32_t flags)
+				   struct drm_plane *plane, const struct drm_colorop_funcs *funcs,
+				   uint32_t flags)
 {
 	int ret;
 
-	ret = drm_plane_colorop_init(dev, colorop, plane, DRM_COLOROP_CTM_3X4, flags);
+	ret = drm_plane_colorop_init(dev, colorop, plane, funcs, DRM_COLOROP_CTM_3X4, flags);
 	if (ret)
 		return ret;
 
@@ -378,16 +386,18 @@ EXPORT_SYMBOL(drm_plane_colorop_ctm_3x4_init);
  * @dev: DRM device
  * @colorop: The drm_colorop object to initialize
  * @plane: The associated drm_plane
+ * @funcs: control functions for the new colorop
  * @flags: bitmask of misc, see DRM_COLOROP_FLAG_* defines.
  * @return zero on success, -E value on failure
  */
 int drm_plane_colorop_mult_init(struct drm_device *dev, struct drm_colorop *colorop,
-				struct drm_plane *plane, uint32_t flags)
+				struct drm_plane *plane, const struct drm_colorop_funcs *funcs,
+				uint32_t flags)
 {
 	struct drm_property *prop;
 	int ret;
 
-	ret = drm_plane_colorop_init(dev, colorop, plane, DRM_COLOROP_MULTIPLIER, flags);
+	ret = drm_plane_colorop_init(dev, colorop, plane, funcs, DRM_COLOROP_MULTIPLIER, flags);
 	if (ret)
 		return ret;
 
@@ -406,6 +416,7 @@ EXPORT_SYMBOL(drm_plane_colorop_mult_init);
 
 int drm_plane_colorop_3dlut_init(struct drm_device *dev, struct drm_colorop *colorop,
 				 struct drm_plane *plane,
+				 const struct drm_colorop_funcs *funcs,
 				 uint32_t lut_size,
 				 enum drm_colorop_lut3d_interpolation_type interpolation,
 				 uint32_t flags)
@@ -413,7 +424,7 @@ int drm_plane_colorop_3dlut_init(struct drm_device *dev, struct drm_colorop *col
 	struct drm_property *prop;
 	int ret;
 
-	ret = drm_plane_colorop_init(dev, colorop, plane, DRM_COLOROP_3D_LUT, flags);
+	ret = drm_plane_colorop_init(dev, colorop, plane, funcs, DRM_COLOROP_3D_LUT, flags);
 	if (ret)
 		return ret;
 
diff --git a/drivers/gpu/drm/i915/display/intel_color_pipeline.c b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
index 04af552b3648..d3d73d60727c 100644
--- a/drivers/gpu/drm/i915/display/intel_color_pipeline.c
+++ b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
@@ -25,7 +25,7 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
 
 	colorop = intel_colorop_create(INTEL_PLANE_CB_PRE_CSC_LUT);
 
-	ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane,
+	ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane, NULL,
 						  PLANE_DEGAMMA_SIZE,
 						  DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
 						  DRM_COLOROP_FLAG_ALLOW_BYPASS);
@@ -39,7 +39,7 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
 	prev_op = &colorop->base;
 
 	colorop = intel_colorop_create(INTEL_PLANE_CB_CSC);
-	ret = drm_plane_colorop_ctm_3x4_init(dev, &colorop->base, plane,
+	ret = drm_plane_colorop_ctm_3x4_init(dev, &colorop->base, plane, NULL,
 					     DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		return ret;
@@ -52,7 +52,7 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
 	    plane->type == DRM_PLANE_TYPE_PRIMARY) {
 		colorop = intel_colorop_create(INTEL_PLANE_CB_3DLUT);
 
-		ret = drm_plane_colorop_3dlut_init(dev, &colorop->base, plane, 17,
+		ret = drm_plane_colorop_3dlut_init(dev, &colorop->base, plane, NULL, 17,
 						   DRM_COLOROP_LUT3D_INTERPOLATION_TETRAHEDRAL,
 						   true);
 		if (ret)
@@ -64,7 +64,7 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
 	}
 
 	colorop = intel_colorop_create(INTEL_PLANE_CB_POST_CSC_LUT);
-	ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane,
+	ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane, NULL,
 						  PLANE_GAMMA_SIZE,
 						  DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
 						  DRM_COLOROP_FLAG_ALLOW_BYPASS);
diff --git a/drivers/gpu/drm/vkms/vkms_colorop.c b/drivers/gpu/drm/vkms/vkms_colorop.c
index d03a1f2e9c41..9e9dd0494628 100644
--- a/drivers/gpu/drm/vkms/vkms_colorop.c
+++ b/drivers/gpu/drm/vkms/vkms_colorop.c
@@ -31,7 +31,7 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, supported_tfs,
+	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL, supported_tfs,
 					      DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
@@ -48,7 +48,8 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, DRM_COLOROP_FLAG_ALLOW_BYPASS);
+	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, NULL,
+					     DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
 
@@ -64,7 +65,8 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, DRM_COLOROP_FLAG_ALLOW_BYPASS);
+	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, NULL,
+					     DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
 
@@ -80,7 +82,7 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, supported_tfs,
+	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL, supported_tfs,
 					      DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
diff --git a/include/drm/drm_colorop.h b/include/drm/drm_colorop.h
index 3056f3f02597..bd082854ca74 100644
--- a/include/drm/drm_colorop.h
+++ b/include/drm/drm_colorop.h
@@ -187,6 +187,19 @@ struct drm_colorop_state {
 	struct drm_atomic_state *state;
 };
 
+/**
+ * struct drm_colorop_funcs - driver colorop control functions
+ */
+struct drm_colorop_funcs {
+	/**
+	 * @destroy:
+	 *
+	 * Clean up colorop resources. This is called at driver unload time
+	 * through drm_mode_config_cleanup()
+	 */
+	void (*destroy)(struct drm_colorop *colorop);
+};
+
 /**
  * struct drm_colorop - DRM color operation control structure
  *
@@ -362,6 +375,8 @@ struct drm_colorop {
 	 */
 	struct drm_property *next_property;
 
+	/** @funcs: colorop control functions */
+	const struct drm_colorop_funcs *funcs;
 };
 
 #define obj_to_colorop(x) container_of(x, struct drm_colorop, base)
@@ -390,17 +405,22 @@ void drm_colorop_pipeline_destroy(struct drm_device *dev);
 void drm_colorop_cleanup(struct drm_colorop *colorop);
 
 int drm_plane_colorop_curve_1d_init(struct drm_device *dev, struct drm_colorop *colorop,
-				    struct drm_plane *plane, u64 supported_tfs, uint32_t flags);
+				    struct drm_plane *plane, const struct drm_colorop_funcs *funcs,
+				    u64 supported_tfs, uint32_t flags);
 int drm_plane_colorop_curve_1d_lut_init(struct drm_device *dev, struct drm_colorop *colorop,
-					struct drm_plane *plane, uint32_t lut_size,
+					struct drm_plane *plane,
+					const struct drm_colorop_funcs *funcs,
+					uint32_t lut_size,
 					enum drm_colorop_lut1d_interpolation_type interpolation,
 					uint32_t flags);
 int drm_plane_colorop_ctm_3x4_init(struct drm_device *dev, struct drm_colorop *colorop,
-				   struct drm_plane *plane, uint32_t flags);
+				   struct drm_plane *plane, const struct drm_colorop_funcs *funcs,
+				   uint32_t flags);
 int drm_plane_colorop_mult_init(struct drm_device *dev, struct drm_colorop *colorop,
-				struct drm_plane *plane, uint32_t flags);
+				struct drm_plane *plane, const struct drm_colorop_funcs *funcs,
+				uint32_t flags);
 int drm_plane_colorop_3dlut_init(struct drm_device *dev, struct drm_colorop *colorop,
-				 struct drm_plane *plane,
+				 struct drm_plane *plane, const struct drm_colorop_funcs *funcs,
 				 uint32_t lut_size,
 				 enum drm_colorop_lut3d_interpolation_type interpolation,
 				 uint32_t flags);
-- 
2.25.1


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

* [RESEND 3/9] drm/amd/display: Hook up colorop destroy helper for plane pipelines
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
  2026-02-02  9:41 ` [RESEND 1/9] drm/colorop: Add destroy helper for colorop objects Chaitanya Kumar Borah
  2026-02-02  9:41 ` [RESEND 2/9] drm: Allow driver-managed destruction of " Chaitanya Kumar Borah
@ 2026-02-02  9:41 ` Chaitanya Kumar Borah
  2026-02-02  9:41 ` [RESEND 4/9] drm/vkms: " Chaitanya Kumar Borah
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Chaitanya Kumar Borah @ 2026-02-02  9:41 UTC (permalink / raw)
  To: dri-devel, intel-gfx, intel-xe, amd-gfx
  Cc: harry.wentland, jani.nikula, louis.chauvet, mwen, contact,
	alex.hung, daniels, uma.shankar, suraj.kandpal, nfraprado,
	ville.syrjala, matthew.d.roper, maarten.lankhorst,
	chaitanya.kumar.borah

Provide a drm_colorop_funcs instance for amdgpu_dm color pipeline
objects and hook up the common drm_colorop_destroy() helper as the
destroy callback.

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
---
 .../amd/display/amdgpu_dm/amdgpu_dm_colorop.c | 25 +++++++++++++------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
index dfdb4fb4219f..5130962193d9 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
@@ -55,6 +55,10 @@ const u64 amdgpu_dm_supported_blnd_tfs =
 
 #define LUT3D_SIZE		17
 
+static const struct drm_colorop_funcs dm_colorop_funcs = {
+	.destroy = drm_colorop_destroy,
+};
+
 int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_prop_enum_list *list)
 {
 	struct drm_colorop *ops[MAX_COLOR_PIPELINE_OPS];
@@ -72,7 +76,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL,
+	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, &dm_colorop_funcs,
 					      amdgpu_dm_supported_degam_tfs,
 					      DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
@@ -89,7 +93,8 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_mult_init(dev, ops[i], plane, NULL, DRM_COLOROP_FLAG_ALLOW_BYPASS);
+	ret = drm_plane_colorop_mult_init(dev, ops[i], plane, &dm_colorop_funcs,
+					  DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
 
@@ -104,7 +109,8 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, NULL,
+	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane,
+					     &dm_colorop_funcs,
 					     DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
@@ -121,7 +127,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 			goto cleanup;
 		}
 
-		ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL,
+		ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, &dm_colorop_funcs,
 						amdgpu_dm_supported_shaper_tfs,
 						DRM_COLOROP_FLAG_ALLOW_BYPASS);
 		if (ret)
@@ -138,7 +144,8 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 			goto cleanup;
 		}
 
-		ret = drm_plane_colorop_curve_1d_lut_init(dev, ops[i], plane, NULL,
+		ret = drm_plane_colorop_curve_1d_lut_init(dev, ops[i], plane,
+							&dm_colorop_funcs,
 							MAX_COLOR_LUT_ENTRIES,
 							DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
 							DRM_COLOROP_FLAG_ALLOW_BYPASS);
@@ -156,7 +163,8 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 			goto cleanup;
 		}
 
-		ret = drm_plane_colorop_3dlut_init(dev, ops[i], plane, NULL, LUT3D_SIZE,
+		ret = drm_plane_colorop_3dlut_init(dev, ops[i], plane,
+					&dm_colorop_funcs, LUT3D_SIZE,
 					DRM_COLOROP_LUT3D_INTERPOLATION_TETRAHEDRAL,
 					DRM_COLOROP_FLAG_ALLOW_BYPASS);
 		if (ret)
@@ -174,7 +182,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL,
+	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, &dm_colorop_funcs,
 					      amdgpu_dm_supported_blnd_tfs,
 					      DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
@@ -191,7 +199,8 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_curve_1d_lut_init(dev, ops[i], plane, NULL, MAX_COLOR_LUT_ENTRIES,
+	ret = drm_plane_colorop_curve_1d_lut_init(dev, ops[i], plane, &dm_colorop_funcs,
+						  MAX_COLOR_LUT_ENTRIES,
 						  DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
 						  DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
-- 
2.25.1


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

* [RESEND 4/9] drm/vkms: Hook up colorop destroy helper for plane pipelines
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
                   ` (2 preceding siblings ...)
  2026-02-02  9:41 ` [RESEND 3/9] drm/amd/display: Hook up colorop destroy helper for plane pipelines Chaitanya Kumar Borah
@ 2026-02-02  9:41 ` Chaitanya Kumar Borah
  2026-02-02  9:41 ` [RESEND 5/9] drm/i915/display: Hook up intel_colorop_destroy Chaitanya Kumar Borah
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Chaitanya Kumar Borah @ 2026-02-02  9:41 UTC (permalink / raw)
  To: dri-devel, intel-gfx, intel-xe, amd-gfx
  Cc: harry.wentland, jani.nikula, louis.chauvet, mwen, contact,
	alex.hung, daniels, uma.shankar, suraj.kandpal, nfraprado,
	ville.syrjala, matthew.d.roper, maarten.lankhorst,
	chaitanya.kumar.borah

Provide a drm_colorop_funcs instance for vkms color pipeline
objects and hook up the common drm_colorop_destroy() helper as the
destroy callback.

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/vkms/vkms_colorop.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/vkms/vkms_colorop.c b/drivers/gpu/drm/vkms/vkms_colorop.c
index 9e9dd0494628..ba826ad384b7 100644
--- a/drivers/gpu/drm/vkms/vkms_colorop.c
+++ b/drivers/gpu/drm/vkms/vkms_colorop.c
@@ -12,6 +12,10 @@ static const u64 supported_tfs =
 	BIT(DRM_COLOROP_1D_CURVE_SRGB_EOTF) |
 	BIT(DRM_COLOROP_1D_CURVE_SRGB_INV_EOTF);
 
+static const struct drm_colorop_funcs vkms_colorop_funcs = {
+	.destroy = drm_colorop_destroy,
+};
+
 #define MAX_COLOR_PIPELINE_OPS 4
 
 static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_prop_enum_list *list)
@@ -31,7 +35,8 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL, supported_tfs,
+	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, &vkms_colorop_funcs,
+					      supported_tfs,
 					      DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
@@ -48,7 +53,7 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, NULL,
+	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, &vkms_colorop_funcs,
 					     DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
@@ -65,7 +70,7 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, NULL,
+	ret = drm_plane_colorop_ctm_3x4_init(dev, ops[i], plane, &vkms_colorop_funcs,
 					     DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
@@ -82,7 +87,8 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
 		goto cleanup;
 	}
 
-	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL, supported_tfs,
+	ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, &vkms_colorop_funcs,
+					      supported_tfs,
 					      DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		goto cleanup;
-- 
2.25.1


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

* [RESEND 5/9] drm/i915/display: Hook up intel_colorop_destroy
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
                   ` (3 preceding siblings ...)
  2026-02-02  9:41 ` [RESEND 4/9] drm/vkms: " Chaitanya Kumar Borah
@ 2026-02-02  9:41 ` Chaitanya Kumar Borah
  2026-02-02  9:41 ` [RESEND 6/9] drm: Clean up colorop objects during mode_config cleanup Chaitanya Kumar Borah
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Chaitanya Kumar Borah @ 2026-02-02  9:41 UTC (permalink / raw)
  To: dri-devel, intel-gfx, intel-xe, amd-gfx
  Cc: harry.wentland, jani.nikula, louis.chauvet, mwen, contact,
	alex.hung, daniels, uma.shankar, suraj.kandpal, nfraprado,
	ville.syrjala, matthew.d.roper, maarten.lankhorst,
	chaitanya.kumar.borah

i915 embeds struct drm_colorop inside struct intel_colorop, so the
default drm_colorop_destroy() helper cannot be used. Add an
intel_colorop_destroy() helper that performs common DRM cleanup and
frees intel_colorop object.

This ensures correct teardown of plane color pipeline objects.

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_color_pipeline.c | 13 +++++++++----
 drivers/gpu/drm/i915/display/intel_colorop.c        |  6 ++++++
 drivers/gpu/drm/i915/display/intel_colorop.h        |  1 +
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_color_pipeline.c b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
index d3d73d60727c..8fecc53540ba 100644
--- a/drivers/gpu/drm/i915/display/intel_color_pipeline.c
+++ b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
@@ -13,6 +13,10 @@
 #define PLANE_DEGAMMA_SIZE 128
 #define PLANE_GAMMA_SIZE 32
 
+static const struct drm_colorop_funcs intel_colorop_funcs = {
+	.destroy = intel_colorop_destroy,
+};
+
 static
 int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_enum_list *list,
 				     enum pipe pipe)
@@ -25,7 +29,7 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
 
 	colorop = intel_colorop_create(INTEL_PLANE_CB_PRE_CSC_LUT);
 
-	ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane, NULL,
+	ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane, &intel_colorop_funcs,
 						  PLANE_DEGAMMA_SIZE,
 						  DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
 						  DRM_COLOROP_FLAG_ALLOW_BYPASS);
@@ -39,7 +43,7 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
 	prev_op = &colorop->base;
 
 	colorop = intel_colorop_create(INTEL_PLANE_CB_CSC);
-	ret = drm_plane_colorop_ctm_3x4_init(dev, &colorop->base, plane, NULL,
+	ret = drm_plane_colorop_ctm_3x4_init(dev, &colorop->base, plane, &intel_colorop_funcs,
 					     DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
 		return ret;
@@ -52,7 +56,8 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
 	    plane->type == DRM_PLANE_TYPE_PRIMARY) {
 		colorop = intel_colorop_create(INTEL_PLANE_CB_3DLUT);
 
-		ret = drm_plane_colorop_3dlut_init(dev, &colorop->base, plane, NULL, 17,
+		ret = drm_plane_colorop_3dlut_init(dev, &colorop->base, plane,
+						   &intel_colorop_funcs, 17,
 						   DRM_COLOROP_LUT3D_INTERPOLATION_TETRAHEDRAL,
 						   true);
 		if (ret)
@@ -64,7 +69,7 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
 	}
 
 	colorop = intel_colorop_create(INTEL_PLANE_CB_POST_CSC_LUT);
-	ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane, NULL,
+	ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane, &intel_colorop_funcs,
 						  PLANE_GAMMA_SIZE,
 						  DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
 						  DRM_COLOROP_FLAG_ALLOW_BYPASS);
diff --git a/drivers/gpu/drm/i915/display/intel_colorop.c b/drivers/gpu/drm/i915/display/intel_colorop.c
index 1d84933f05aa..9e54f51cfad8 100644
--- a/drivers/gpu/drm/i915/display/intel_colorop.c
+++ b/drivers/gpu/drm/i915/display/intel_colorop.c
@@ -35,3 +35,9 @@ struct intel_colorop *intel_colorop_create(enum intel_color_block id)
 
 	return colorop;
 }
+
+void intel_colorop_destroy(struct drm_colorop *colorop)
+{
+	drm_colorop_cleanup(colorop);
+	kfree(to_intel_colorop(colorop));
+}
diff --git a/drivers/gpu/drm/i915/display/intel_colorop.h b/drivers/gpu/drm/i915/display/intel_colorop.h
index 9276eee6e75a..638baf67d98d 100644
--- a/drivers/gpu/drm/i915/display/intel_colorop.h
+++ b/drivers/gpu/drm/i915/display/intel_colorop.h
@@ -13,5 +13,6 @@ struct intel_colorop;
 struct intel_colorop *to_intel_colorop(struct drm_colorop *colorop);
 struct intel_colorop *intel_colorop_alloc(void);
 struct intel_colorop *intel_colorop_create(enum intel_color_block id);
+void intel_colorop_destroy(struct drm_colorop *colorop);
 
 #endif /* __INTEL_COLOROP_H__ */
-- 
2.25.1


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

* [RESEND 6/9] drm: Clean up colorop objects during mode_config cleanup
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
                   ` (4 preceding siblings ...)
  2026-02-02  9:41 ` [RESEND 5/9] drm/i915/display: Hook up intel_colorop_destroy Chaitanya Kumar Borah
@ 2026-02-02  9:41 ` Chaitanya Kumar Borah
  2026-02-02  9:42 ` [RESEND 7/9] drm/vkms: Remove drm_colorop_pipeline_destroy() from vkms_destroy() Chaitanya Kumar Borah
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Chaitanya Kumar Borah @ 2026-02-02  9:41 UTC (permalink / raw)
  To: dri-devel, intel-gfx, intel-xe, amd-gfx
  Cc: harry.wentland, jani.nikula, louis.chauvet, mwen, contact,
	alex.hung, daniels, uma.shankar, suraj.kandpal, nfraprado,
	ville.syrjala, matthew.d.roper, maarten.lankhorst,
	chaitanya.kumar.borah

Tear down all registered drm_colorop objects during
drm_mode_config_cleanup() by invoking their destroy callbacks.

This ensures proper cleanup of color pipeline objects during DRM device
removal.

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_mode_config.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
index d12db9b0bab8..84ae8a23a367 100644
--- a/drivers/gpu/drm/drm_mode_config.c
+++ b/drivers/gpu/drm/drm_mode_config.c
@@ -524,6 +524,7 @@ void drm_mode_config_cleanup(struct drm_device *dev)
 	struct drm_property *property, *pt;
 	struct drm_property_blob *blob, *bt;
 	struct drm_plane *plane, *plt;
+	struct drm_colorop *colorop, *copt;
 
 	list_for_each_entry_safe(encoder, enct, &dev->mode_config.encoder_list,
 				 head) {
@@ -553,6 +554,11 @@ void drm_mode_config_cleanup(struct drm_device *dev)
 		drm_property_destroy(dev, property);
 	}
 
+	list_for_each_entry_safe(colorop, copt, &dev->mode_config.colorop_list,
+				 head) {
+		colorop->funcs->destroy(colorop);
+	}
+
 	list_for_each_entry_safe(plane, plt, &dev->mode_config.plane_list,
 				 head) {
 		plane->funcs->destroy(plane);
-- 
2.25.1


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

* [RESEND 7/9] drm/vkms: Remove drm_colorop_pipeline_destroy() from vkms_destroy()
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
                   ` (5 preceding siblings ...)
  2026-02-02  9:41 ` [RESEND 6/9] drm: Clean up colorop objects during mode_config cleanup Chaitanya Kumar Borah
@ 2026-02-02  9:42 ` Chaitanya Kumar Borah
  2026-02-02  9:42 ` [RESEND 8/9] drm/colorop: Use destroy callback for color pipeline teardown Chaitanya Kumar Borah
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Chaitanya Kumar Borah @ 2026-02-02  9:42 UTC (permalink / raw)
  To: dri-devel, intel-gfx, intel-xe, amd-gfx
  Cc: harry.wentland, jani.nikula, louis.chauvet, mwen, contact,
	alex.hung, daniels, uma.shankar, suraj.kandpal, nfraprado,
	ville.syrjala, matthew.d.roper, maarten.lankhorst,
	chaitanya.kumar.borah

Now that colorops are cleaned from drm_mode_config_cleanup(), remove
drm_colorop_pipeline_destroy() from  vkms_destroy().

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/vkms/vkms_drv.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/gpu/drm/vkms/vkms_drv.c b/drivers/gpu/drm/vkms/vkms_drv.c
index 434c295f44ba..95020765c4c2 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.c
+++ b/drivers/gpu/drm/vkms/vkms_drv.c
@@ -259,7 +259,6 @@ void vkms_destroy(struct vkms_config *config)
 
 	fdev = config->dev->faux_dev;
 
-	drm_colorop_pipeline_destroy(&config->dev->drm);
 	drm_dev_unregister(&config->dev->drm);
 	drm_atomic_helper_shutdown(&config->dev->drm);
 	devres_release_group(&fdev->dev, NULL);
-- 
2.25.1


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

* [RESEND 8/9] drm/colorop: Use destroy callback for color pipeline teardown
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
                   ` (6 preceding siblings ...)
  2026-02-02  9:42 ` [RESEND 7/9] drm/vkms: Remove drm_colorop_pipeline_destroy() from vkms_destroy() Chaitanya Kumar Borah
@ 2026-02-02  9:42 ` Chaitanya Kumar Borah
  2026-02-02  9:42 ` [RESEND 9/9] drm/i915/color: Add failure handling in plane color pipeline init Chaitanya Kumar Borah
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Chaitanya Kumar Borah @ 2026-02-02  9:42 UTC (permalink / raw)
  To: dri-devel, intel-gfx, intel-xe, amd-gfx
  Cc: harry.wentland, jani.nikula, louis.chauvet, mwen, contact,
	alex.hung, daniels, uma.shankar, suraj.kandpal, nfraprado,
	ville.syrjala, matthew.d.roper, maarten.lankhorst,
	chaitanya.kumar.borah

Switch drm_colorop_pipeline_destroy() to use the driver-provided
destroy callback instead of directly calling drm_colorop_cleanup()
and freeing the object.

This allows drivers that embed struct drm_colorop in driver-specific
objects to perform correct teardown.

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_colorop.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_colorop.c b/drivers/gpu/drm/drm_colorop.c
index 2bce29176ab3..aa19de769eb2 100644
--- a/drivers/gpu/drm/drm_colorop.c
+++ b/drivers/gpu/drm/drm_colorop.c
@@ -208,8 +208,7 @@ void drm_colorop_pipeline_destroy(struct drm_device *dev)
 	struct drm_colorop *colorop, *next;
 
 	list_for_each_entry_safe(colorop, next, &config->colorop_list, head) {
-		drm_colorop_cleanup(colorop);
-		kfree(colorop);
+		colorop->funcs->destroy(colorop);
 	}
 }
 EXPORT_SYMBOL(drm_colorop_pipeline_destroy);
-- 
2.25.1


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

* [RESEND 9/9] drm/i915/color: Add failure handling in plane color pipeline init
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
                   ` (7 preceding siblings ...)
  2026-02-02  9:42 ` [RESEND 8/9] drm/colorop: Use destroy callback for color pipeline teardown Chaitanya Kumar Borah
@ 2026-02-02  9:42 ` Chaitanya Kumar Borah
  2026-02-02 17:37 ` ✗ CI.checkpatch: warning for drm: Color pipeline teardown and follow-up fixes/improvements (rev4) Patchwork
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Chaitanya Kumar Borah @ 2026-02-02  9:42 UTC (permalink / raw)
  To: dri-devel, intel-gfx, intel-xe, amd-gfx
  Cc: harry.wentland, jani.nikula, louis.chauvet, mwen, contact,
	alex.hung, daniels, uma.shankar, suraj.kandpal, nfraprado,
	ville.syrjala, matthew.d.roper, maarten.lankhorst,
	chaitanya.kumar.borah

The plane color pipeline initialization built up multiple colorop blocks
inline, but did not reliably clean up partially constructed pipelines
when an intermediate step failed. This could lead to leaked colorop
objects and fragile error handling as the pipeline grows.

Refactor the pipeline construction to use a common helper for adding
colorop blocks. This centralizes allocation, initialization, and
teardown logic, allowing the caller to reliably unwind all previously
created colorops on failure.

v2:
 - Refactor code to avoid repetition (Suraj)

v3:
 - s/nvl/xe3plpd (Suraj)

Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
---
 .../drm/i915/display/intel_color_pipeline.c   | 164 +++++++++++++-----
 1 file changed, 117 insertions(+), 47 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_color_pipeline.c b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
index 8fecc53540ba..6cf8080ee800 100644
--- a/drivers/gpu/drm/i915/display/intel_color_pipeline.c
+++ b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
@@ -2,6 +2,8 @@
 /*
  * Copyright © 2025 Intel Corporation
  */
+#include <drm/drm_print.h>
+
 #include "intel_color.h"
 #include "intel_colorop.h"
 #include "intel_color_pipeline.h"
@@ -10,6 +12,7 @@
 #include "skl_universal_plane.h"
 
 #define MAX_COLOR_PIPELINES 1
+#define MAX_COLOROP 4
 #define PLANE_DEGAMMA_SIZE 128
 #define PLANE_GAMMA_SIZE 32
 
@@ -17,70 +20,137 @@ static const struct drm_colorop_funcs intel_colorop_funcs = {
 	.destroy = intel_colorop_destroy,
 };
 
+/*
+ * 3DLUT can be bound to all three HDR planes. However, even with the latest
+ * color pipeline UAPI, there is no good way to represent a HW block which
+ * can be shared/attached at different stages of the pipeline. So right now,
+ * we expose 3DLUT only attached with the primary plane.
+ *
+ * That way we don't confuse the userspace with opaque commit failures
+ * on trying to enable it on multiple planes which would otherwise make
+ * the pipeline totally unusable.
+ */
+static const enum intel_color_block xe3plpd_primary_plane_pipeline[] = {
+	INTEL_PLANE_CB_PRE_CSC_LUT,
+	INTEL_PLANE_CB_CSC,
+	INTEL_PLANE_CB_3DLUT,
+	INTEL_PLANE_CB_POST_CSC_LUT,
+};
+
+static const enum intel_color_block hdr_plane_pipeline[] = {
+	INTEL_PLANE_CB_PRE_CSC_LUT,
+	INTEL_PLANE_CB_CSC,
+	INTEL_PLANE_CB_POST_CSC_LUT,
+};
+
+static bool plane_has_3dlut(struct intel_display *display, enum pipe pipe,
+			    struct drm_plane *plane)
+{
+	return (DISPLAY_VER(display) >= 35 &&
+		intel_color_crtc_has_3dlut(display, pipe) &&
+		plane->type == DRM_PLANE_TYPE_PRIMARY);
+}
+
 static
-int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_enum_list *list,
-				     enum pipe pipe)
+struct intel_colorop *intel_color_pipeline_plane_add_colorop(struct drm_plane *plane,
+							     struct intel_colorop *prev,
+							     enum intel_color_block id)
 {
 	struct drm_device *dev = plane->dev;
-	struct intel_display *display = to_intel_display(dev);
-	struct drm_colorop *prev_op;
 	struct intel_colorop *colorop;
 	int ret;
 
-	colorop = intel_colorop_create(INTEL_PLANE_CB_PRE_CSC_LUT);
-
-	ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane, &intel_colorop_funcs,
-						  PLANE_DEGAMMA_SIZE,
-						  DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
-						  DRM_COLOROP_FLAG_ALLOW_BYPASS);
-
-	if (ret)
-		return ret;
-
-	list->type = colorop->base.base.id;
-
-	/* TODO: handle failures and clean up */
-	prev_op = &colorop->base;
-
-	colorop = intel_colorop_create(INTEL_PLANE_CB_CSC);
-	ret = drm_plane_colorop_ctm_3x4_init(dev, &colorop->base, plane, &intel_colorop_funcs,
-					     DRM_COLOROP_FLAG_ALLOW_BYPASS);
-	if (ret)
-		return ret;
-
-	drm_colorop_set_next_property(prev_op, &colorop->base);
-	prev_op = &colorop->base;
-
-	if (DISPLAY_VER(display) >= 35 &&
-	    intel_color_crtc_has_3dlut(display, pipe) &&
-	    plane->type == DRM_PLANE_TYPE_PRIMARY) {
-		colorop = intel_colorop_create(INTEL_PLANE_CB_3DLUT);
-
+	colorop = intel_colorop_create(id);
+
+	if (IS_ERR(colorop))
+		return colorop;
+
+	switch (id) {
+	case INTEL_PLANE_CB_PRE_CSC_LUT:
+		ret = drm_plane_colorop_curve_1d_lut_init(dev,
+							  &colorop->base, plane,
+							  &intel_colorop_funcs,
+							  PLANE_DEGAMMA_SIZE,
+							  DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
+							  DRM_COLOROP_FLAG_ALLOW_BYPASS);
+		break;
+	case INTEL_PLANE_CB_CSC:
+		ret = drm_plane_colorop_ctm_3x4_init(dev, &colorop->base, plane,
+						     &intel_colorop_funcs,
+						     DRM_COLOROP_FLAG_ALLOW_BYPASS);
+		break;
+	case INTEL_PLANE_CB_3DLUT:
 		ret = drm_plane_colorop_3dlut_init(dev, &colorop->base, plane,
 						   &intel_colorop_funcs, 17,
 						   DRM_COLOROP_LUT3D_INTERPOLATION_TETRAHEDRAL,
 						   true);
-		if (ret)
-			return ret;
-
-		drm_colorop_set_next_property(prev_op, &colorop->base);
-
-		prev_op = &colorop->base;
+		break;
+	case INTEL_PLANE_CB_POST_CSC_LUT:
+		ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane,
+							  &intel_colorop_funcs,
+							  PLANE_GAMMA_SIZE,
+							  DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
+							  DRM_COLOROP_FLAG_ALLOW_BYPASS);
+		break;
+	default:
+		drm_err(plane->dev, "Invalid colorop id [%d]", id);
+		ret = -EINVAL;
 	}
 
-	colorop = intel_colorop_create(INTEL_PLANE_CB_POST_CSC_LUT);
-	ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane, &intel_colorop_funcs,
-						  PLANE_GAMMA_SIZE,
-						  DRM_COLOROP_LUT1D_INTERPOLATION_LINEAR,
-						  DRM_COLOROP_FLAG_ALLOW_BYPASS);
 	if (ret)
-		return ret;
+		goto cleanup;
 
-	drm_colorop_set_next_property(prev_op, &colorop->base);
+	if (prev)
+		drm_colorop_set_next_property(&prev->base, &colorop->base);
 
-	list->name = kasprintf(GFP_KERNEL, "Color Pipeline %d", list->type);
+	return colorop;
+
+cleanup:
+	intel_colorop_destroy(&colorop->base);
+	return ERR_PTR(ret);
+}
+
+static
+int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_enum_list *list,
+				     enum pipe pipe)
+{
+	struct drm_device *dev = plane->dev;
+	struct intel_display *display = to_intel_display(dev);
+	struct intel_colorop *colorop[MAX_COLOROP];
+	struct intel_colorop *prev = NULL;
+	const enum intel_color_block *pipeline;
+	int pipeline_len;
+	int ret = 0;
+	int i;
+
+	if (plane_has_3dlut(display, pipe, plane)) {
+		pipeline = xe3plpd_primary_plane_pipeline;
+		pipeline_len = ARRAY_SIZE(xe3plpd_primary_plane_pipeline);
+	} else {
+		pipeline = hdr_plane_pipeline;
+		pipeline_len = ARRAY_SIZE(hdr_plane_pipeline);
+	}
+
+	for (i = 0; i < pipeline_len; i++) {
+		colorop[i] = intel_color_pipeline_plane_add_colorop(plane, prev,
+								    pipeline[i]);
+		if (IS_ERR(colorop[i])) {
+			ret = PTR_ERR(colorop[i]);
+			goto cleanup;
+		}
+
+		prev = colorop[i];
+	}
+
+	list->type = colorop[0]->base.base.id;
+	list->name = kasprintf(GFP_KERNEL, "Color Pipeline %d", colorop[0]->base.base.id);
 
 	return 0;
+
+cleanup:
+	while (--i >= 0)
+		intel_colorop_destroy(&colorop[i]->base);
+	return ret;
 }
 
 int intel_color_pipeline_plane_init(struct drm_plane *plane, enum pipe pipe)
-- 
2.25.1


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

* ✗ CI.checkpatch: warning for drm: Color pipeline teardown and follow-up fixes/improvements (rev4)
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
                   ` (8 preceding siblings ...)
  2026-02-02  9:42 ` [RESEND 9/9] drm/i915/color: Add failure handling in plane color pipeline init Chaitanya Kumar Borah
@ 2026-02-02 17:37 ` Patchwork
  2026-02-02 17:39 ` ✓ CI.KUnit: success " Patchwork
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2026-02-02 17:37 UTC (permalink / raw)
  To: Chaitanya Kumar Borah; +Cc: intel-xe

== Series Details ==

Series: drm: Color pipeline teardown and follow-up fixes/improvements (rev4)
URL   : https://patchwork.freedesktop.org/series/159263/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 6c3fabe8b9d3f8eb7ca5f2372d6929fd804bc598
Author: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Date:   Mon Feb 2 15:12:02 2026 +0530

    drm/i915/color: Add failure handling in plane color pipeline init
    
    The plane color pipeline initialization built up multiple colorop blocks
    inline, but did not reliably clean up partially constructed pipelines
    when an intermediate step failed. This could lead to leaked colorop
    objects and fragile error handling as the pipeline grows.
    
    Refactor the pipeline construction to use a common helper for adding
    colorop blocks. This centralizes allocation, initialization, and
    teardown logic, allowing the caller to reliably unwind all previously
    created colorops on failure.
    
    v2:
     - Refactor code to avoid repetition (Suraj)
    
    v3:
     - s/nvl/xe3plpd (Suraj)
    
    Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
    Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
    Acked-by: Jani Nikula <jani.nikula@intel.com>
+ /mt/dim checkpatch ce23cb229dd84e6459444e216fb5e7980be7849b drm-intel
ca94c7e9ac59 drm/colorop: Add destroy helper for colorop objects
ac8a891caa86 drm: Allow driver-managed destruction of colorop objects
-:59: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#59: FILE: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c:125:
+		ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, NULL,
 						amdgpu_dm_supported_shaper_tfs,

-:68: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#68: FILE: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c:142:
+		ret = drm_plane_colorop_curve_1d_lut_init(dev, ops[i], plane, NULL,
+							MAX_COLOR_LUT_ENTRIES,

-:78: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#78: FILE: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c:160:
+		ret = drm_plane_colorop_3dlut_init(dev, ops[i], plane, NULL, LUT3D_SIZE,
 					DRM_COLOROP_LUT3D_INTERPOLATION_TETRAHEDRAL,

-:162: CHECK:PREFER_KERNEL_TYPES: Prefer kernel type 'u32' over 'uint32_t'
#162: FILE: drivers/gpu/drm/drm_colorop.c:319:
+					uint32_t lut_size,

-:353: CHECK:PREFER_KERNEL_TYPES: Prefer kernel type 'u32' over 'uint32_t'
#353: FILE: include/drm/drm_colorop.h:413:
+					uint32_t lut_size,

total: 0 errors, 0 warnings, 5 checks, 300 lines checked
024a993a0dac drm/amd/display: Hook up colorop destroy helper for plane pipelines
-:66: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#66: FILE: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c:131:
+		ret = drm_plane_colorop_curve_1d_init(dev, ops[i], plane, &dm_colorop_funcs,
 						amdgpu_dm_supported_shaper_tfs,

-:75: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#75: FILE: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c:148:
+		ret = drm_plane_colorop_curve_1d_lut_init(dev, ops[i], plane,
+							&dm_colorop_funcs,

-:85: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#85: FILE: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c:167:
+		ret = drm_plane_colorop_3dlut_init(dev, ops[i], plane,
+					&dm_colorop_funcs, LUT3D_SIZE,

total: 0 errors, 0 warnings, 3 checks, 79 lines checked
2bcdbaaa1294 drm/vkms: Hook up colorop destroy helper for plane pipelines
b467c701d8c6 drm/i915/display: Hook up intel_colorop_destroy
804a5f8aef40 drm: Clean up colorop objects during mode_config cleanup
268cabcad8ce drm/vkms: Remove drm_colorop_pipeline_destroy() from vkms_destroy()
45eb622ce270 drm/colorop: Use destroy callback for color pipeline teardown
6c3fabe8b9d3 drm/i915/color: Add failure handling in plane color pipeline init



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

* ✓ CI.KUnit: success for drm: Color pipeline teardown and follow-up fixes/improvements (rev4)
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
                   ` (9 preceding siblings ...)
  2026-02-02 17:37 ` ✗ CI.checkpatch: warning for drm: Color pipeline teardown and follow-up fixes/improvements (rev4) Patchwork
@ 2026-02-02 17:39 ` Patchwork
  2026-02-02 17:54 ` ✗ CI.checksparse: warning " Patchwork
  2026-02-02 18:48 ` ✓ Xe.CI.BAT: success " Patchwork
  12 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2026-02-02 17:39 UTC (permalink / raw)
  To: Chaitanya Kumar Borah; +Cc: intel-xe

== Series Details ==

Series: drm: Color pipeline teardown and follow-up fixes/improvements (rev4)
URL   : https://patchwork.freedesktop.org/series/159263/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[17:37:54] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:37:58] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[17:38:30] Starting KUnit Kernel (1/1)...
[17:38:30] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:38:30] ================== guc_buf (11 subtests) ===================
[17:38:30] [PASSED] test_smallest
[17:38:30] [PASSED] test_largest
[17:38:30] [PASSED] test_granular
[17:38:30] [PASSED] test_unique
[17:38:30] [PASSED] test_overlap
[17:38:30] [PASSED] test_reusable
[17:38:30] [PASSED] test_too_big
[17:38:30] [PASSED] test_flush
[17:38:30] [PASSED] test_lookup
[17:38:30] [PASSED] test_data
[17:38:30] [PASSED] test_class
[17:38:30] ===================== [PASSED] guc_buf =====================
[17:38:30] =================== guc_dbm (7 subtests) ===================
[17:38:30] [PASSED] test_empty
[17:38:30] [PASSED] test_default
[17:38:30] ======================== test_size  ========================
[17:38:30] [PASSED] 4
[17:38:30] [PASSED] 8
[17:38:30] [PASSED] 32
[17:38:30] [PASSED] 256
[17:38:30] ==================== [PASSED] test_size ====================
[17:38:30] ======================= test_reuse  ========================
[17:38:30] [PASSED] 4
[17:38:30] [PASSED] 8
[17:38:30] [PASSED] 32
[17:38:30] [PASSED] 256
[17:38:30] =================== [PASSED] test_reuse ====================
[17:38:30] =================== test_range_overlap  ====================
[17:38:30] [PASSED] 4
[17:38:30] [PASSED] 8
[17:38:30] [PASSED] 32
[17:38:30] [PASSED] 256
[17:38:30] =============== [PASSED] test_range_overlap ================
[17:38:30] =================== test_range_compact  ====================
[17:38:30] [PASSED] 4
[17:38:30] [PASSED] 8
[17:38:30] [PASSED] 32
[17:38:30] [PASSED] 256
[17:38:30] =============== [PASSED] test_range_compact ================
[17:38:30] ==================== test_range_spare  =====================
[17:38:30] [PASSED] 4
[17:38:30] [PASSED] 8
[17:38:30] [PASSED] 32
[17:38:30] [PASSED] 256
[17:38:30] ================ [PASSED] test_range_spare =================
[17:38:30] ===================== [PASSED] guc_dbm =====================
[17:38:30] =================== guc_idm (6 subtests) ===================
[17:38:30] [PASSED] bad_init
[17:38:30] [PASSED] no_init
[17:38:30] [PASSED] init_fini
[17:38:30] [PASSED] check_used
[17:38:30] [PASSED] check_quota
[17:38:30] [PASSED] check_all
[17:38:30] ===================== [PASSED] guc_idm =====================
[17:38:30] ================== no_relay (3 subtests) ===================
[17:38:30] [PASSED] xe_drops_guc2pf_if_not_ready
[17:38:30] [PASSED] xe_drops_guc2vf_if_not_ready
[17:38:30] [PASSED] xe_rejects_send_if_not_ready
[17:38:30] ==================== [PASSED] no_relay =====================
[17:38:30] ================== pf_relay (14 subtests) ==================
[17:38:30] [PASSED] pf_rejects_guc2pf_too_short
[17:38:30] [PASSED] pf_rejects_guc2pf_too_long
[17:38:30] [PASSED] pf_rejects_guc2pf_no_payload
[17:38:30] [PASSED] pf_fails_no_payload
[17:38:30] [PASSED] pf_fails_bad_origin
[17:38:30] [PASSED] pf_fails_bad_type
[17:38:30] [PASSED] pf_txn_reports_error
[17:38:30] [PASSED] pf_txn_sends_pf2guc
[17:38:30] [PASSED] pf_sends_pf2guc
[17:38:30] [SKIPPED] pf_loopback_nop
[17:38:30] [SKIPPED] pf_loopback_echo
[17:38:30] [SKIPPED] pf_loopback_fail
[17:38:30] [SKIPPED] pf_loopback_busy
[17:38:30] [SKIPPED] pf_loopback_retry
[17:38:30] ==================== [PASSED] pf_relay =====================
[17:38:30] ================== vf_relay (3 subtests) ===================
[17:38:30] [PASSED] vf_rejects_guc2vf_too_short
[17:38:30] [PASSED] vf_rejects_guc2vf_too_long
[17:38:30] [PASSED] vf_rejects_guc2vf_no_payload
[17:38:30] ==================== [PASSED] vf_relay =====================
[17:38:30] ================ pf_gt_config (6 subtests) =================
[17:38:30] [PASSED] fair_contexts_1vf
[17:38:30] [PASSED] fair_doorbells_1vf
[17:38:30] [PASSED] fair_ggtt_1vf
[17:38:30] ====================== fair_contexts  ======================
[17:38:30] [PASSED] 1 VF
[17:38:30] [PASSED] 2 VFs
[17:38:30] [PASSED] 3 VFs
[17:38:30] [PASSED] 4 VFs
[17:38:30] [PASSED] 5 VFs
[17:38:30] [PASSED] 6 VFs
[17:38:30] [PASSED] 7 VFs
[17:38:30] [PASSED] 8 VFs
[17:38:30] [PASSED] 9 VFs
[17:38:30] [PASSED] 10 VFs
[17:38:30] [PASSED] 11 VFs
[17:38:30] [PASSED] 12 VFs
[17:38:30] [PASSED] 13 VFs
[17:38:30] [PASSED] 14 VFs
[17:38:30] [PASSED] 15 VFs
[17:38:30] [PASSED] 16 VFs
[17:38:30] [PASSED] 17 VFs
[17:38:30] [PASSED] 18 VFs
[17:38:30] [PASSED] 19 VFs
[17:38:30] [PASSED] 20 VFs
[17:38:30] [PASSED] 21 VFs
[17:38:30] [PASSED] 22 VFs
[17:38:30] [PASSED] 23 VFs
[17:38:30] [PASSED] 24 VFs
[17:38:30] [PASSED] 25 VFs
[17:38:30] [PASSED] 26 VFs
[17:38:30] [PASSED] 27 VFs
[17:38:30] [PASSED] 28 VFs
[17:38:30] [PASSED] 29 VFs
[17:38:30] [PASSED] 30 VFs
[17:38:30] [PASSED] 31 VFs
[17:38:30] [PASSED] 32 VFs
[17:38:30] [PASSED] 33 VFs
[17:38:30] [PASSED] 34 VFs
[17:38:30] [PASSED] 35 VFs
[17:38:30] [PASSED] 36 VFs
[17:38:30] [PASSED] 37 VFs
[17:38:30] [PASSED] 38 VFs
[17:38:30] [PASSED] 39 VFs
[17:38:30] [PASSED] 40 VFs
[17:38:30] [PASSED] 41 VFs
[17:38:30] [PASSED] 42 VFs
[17:38:30] [PASSED] 43 VFs
[17:38:30] [PASSED] 44 VFs
[17:38:30] [PASSED] 45 VFs
[17:38:30] [PASSED] 46 VFs
[17:38:30] [PASSED] 47 VFs
[17:38:30] [PASSED] 48 VFs
[17:38:30] [PASSED] 49 VFs
[17:38:30] [PASSED] 50 VFs
[17:38:30] [PASSED] 51 VFs
[17:38:30] [PASSED] 52 VFs
[17:38:30] [PASSED] 53 VFs
[17:38:30] [PASSED] 54 VFs
[17:38:30] [PASSED] 55 VFs
[17:38:30] [PASSED] 56 VFs
[17:38:30] [PASSED] 57 VFs
[17:38:30] [PASSED] 58 VFs
[17:38:30] [PASSED] 59 VFs
[17:38:30] [PASSED] 60 VFs
[17:38:30] [PASSED] 61 VFs
[17:38:30] [PASSED] 62 VFs
[17:38:30] [PASSED] 63 VFs
[17:38:30] ================== [PASSED] fair_contexts ==================
[17:38:30] ===================== fair_doorbells  ======================
[17:38:30] [PASSED] 1 VF
[17:38:30] [PASSED] 2 VFs
[17:38:30] [PASSED] 3 VFs
[17:38:30] [PASSED] 4 VFs
[17:38:30] [PASSED] 5 VFs
[17:38:30] [PASSED] 6 VFs
[17:38:30] [PASSED] 7 VFs
[17:38:30] [PASSED] 8 VFs
[17:38:30] [PASSED] 9 VFs
[17:38:30] [PASSED] 10 VFs
[17:38:30] [PASSED] 11 VFs
[17:38:30] [PASSED] 12 VFs
[17:38:30] [PASSED] 13 VFs
[17:38:30] [PASSED] 14 VFs
[17:38:30] [PASSED] 15 VFs
[17:38:30] [PASSED] 16 VFs
[17:38:30] [PASSED] 17 VFs
[17:38:30] [PASSED] 18 VFs
[17:38:30] [PASSED] 19 VFs
[17:38:30] [PASSED] 20 VFs
[17:38:30] [PASSED] 21 VFs
[17:38:30] [PASSED] 22 VFs
[17:38:30] [PASSED] 23 VFs
[17:38:30] [PASSED] 24 VFs
[17:38:30] [PASSED] 25 VFs
[17:38:30] [PASSED] 26 VFs
[17:38:30] [PASSED] 27 VFs
[17:38:30] [PASSED] 28 VFs
[17:38:30] [PASSED] 29 VFs
[17:38:30] [PASSED] 30 VFs
[17:38:30] [PASSED] 31 VFs
[17:38:30] [PASSED] 32 VFs
[17:38:30] [PASSED] 33 VFs
[17:38:30] [PASSED] 34 VFs
[17:38:30] [PASSED] 35 VFs
[17:38:30] [PASSED] 36 VFs
[17:38:30] [PASSED] 37 VFs
[17:38:30] [PASSED] 38 VFs
[17:38:30] [PASSED] 39 VFs
[17:38:30] [PASSED] 40 VFs
[17:38:30] [PASSED] 41 VFs
[17:38:30] [PASSED] 42 VFs
[17:38:30] [PASSED] 43 VFs
[17:38:30] [PASSED] 44 VFs
[17:38:30] [PASSED] 45 VFs
[17:38:30] [PASSED] 46 VFs
[17:38:30] [PASSED] 47 VFs
[17:38:30] [PASSED] 48 VFs
[17:38:30] [PASSED] 49 VFs
[17:38:30] [PASSED] 50 VFs
[17:38:30] [PASSED] 51 VFs
[17:38:30] [PASSED] 52 VFs
[17:38:30] [PASSED] 53 VFs
[17:38:30] [PASSED] 54 VFs
[17:38:30] [PASSED] 55 VFs
[17:38:30] [PASSED] 56 VFs
[17:38:30] [PASSED] 57 VFs
[17:38:30] [PASSED] 58 VFs
[17:38:30] [PASSED] 59 VFs
[17:38:30] [PASSED] 60 VFs
[17:38:30] [PASSED] 61 VFs
[17:38:30] [PASSED] 62 VFs
[17:38:30] [PASSED] 63 VFs
[17:38:30] ================= [PASSED] fair_doorbells ==================
[17:38:30] ======================== fair_ggtt  ========================
[17:38:30] [PASSED] 1 VF
[17:38:30] [PASSED] 2 VFs
[17:38:30] [PASSED] 3 VFs
[17:38:30] [PASSED] 4 VFs
[17:38:30] [PASSED] 5 VFs
[17:38:30] [PASSED] 6 VFs
[17:38:30] [PASSED] 7 VFs
[17:38:30] [PASSED] 8 VFs
[17:38:30] [PASSED] 9 VFs
[17:38:30] [PASSED] 10 VFs
[17:38:30] [PASSED] 11 VFs
[17:38:30] [PASSED] 12 VFs
[17:38:30] [PASSED] 13 VFs
[17:38:30] [PASSED] 14 VFs
[17:38:30] [PASSED] 15 VFs
[17:38:30] [PASSED] 16 VFs
[17:38:30] [PASSED] 17 VFs
[17:38:30] [PASSED] 18 VFs
[17:38:30] [PASSED] 19 VFs
[17:38:30] [PASSED] 20 VFs
[17:38:30] [PASSED] 21 VFs
[17:38:30] [PASSED] 22 VFs
[17:38:30] [PASSED] 23 VFs
[17:38:30] [PASSED] 24 VFs
[17:38:30] [PASSED] 25 VFs
[17:38:30] [PASSED] 26 VFs
[17:38:30] [PASSED] 27 VFs
[17:38:30] [PASSED] 28 VFs
[17:38:30] [PASSED] 29 VFs
[17:38:30] [PASSED] 30 VFs
[17:38:30] [PASSED] 31 VFs
[17:38:30] [PASSED] 32 VFs
[17:38:30] [PASSED] 33 VFs
[17:38:30] [PASSED] 34 VFs
[17:38:30] [PASSED] 35 VFs
[17:38:30] [PASSED] 36 VFs
[17:38:30] [PASSED] 37 VFs
[17:38:30] [PASSED] 38 VFs
[17:38:30] [PASSED] 39 VFs
[17:38:30] [PASSED] 40 VFs
[17:38:30] [PASSED] 41 VFs
[17:38:30] [PASSED] 42 VFs
[17:38:30] [PASSED] 43 VFs
[17:38:30] [PASSED] 44 VFs
[17:38:30] [PASSED] 45 VFs
[17:38:30] [PASSED] 46 VFs
[17:38:30] [PASSED] 47 VFs
[17:38:30] [PASSED] 48 VFs
[17:38:30] [PASSED] 49 VFs
[17:38:30] [PASSED] 50 VFs
[17:38:30] [PASSED] 51 VFs
[17:38:30] [PASSED] 52 VFs
[17:38:30] [PASSED] 53 VFs
[17:38:30] [PASSED] 54 VFs
[17:38:30] [PASSED] 55 VFs
[17:38:30] [PASSED] 56 VFs
[17:38:30] [PASSED] 57 VFs
[17:38:30] [PASSED] 58 VFs
[17:38:30] [PASSED] 59 VFs
[17:38:30] [PASSED] 60 VFs
[17:38:30] [PASSED] 61 VFs
[17:38:30] [PASSED] 62 VFs
[17:38:30] [PASSED] 63 VFs
[17:38:30] ==================== [PASSED] fair_ggtt ====================
[17:38:30] ================== [PASSED] pf_gt_config ===================
[17:38:30] ===================== lmtt (1 subtest) =====================
[17:38:30] ======================== test_ops  =========================
[17:38:30] [PASSED] 2-level
[17:38:30] [PASSED] multi-level
[17:38:30] ==================== [PASSED] test_ops =====================
[17:38:30] ====================== [PASSED] lmtt =======================
[17:38:30] ================= pf_service (11 subtests) =================
[17:38:30] [PASSED] pf_negotiate_any
[17:38:30] [PASSED] pf_negotiate_base_match
[17:38:30] [PASSED] pf_negotiate_base_newer
[17:38:30] [PASSED] pf_negotiate_base_next
[17:38:30] [SKIPPED] pf_negotiate_base_older
[17:38:30] [PASSED] pf_negotiate_base_prev
[17:38:30] [PASSED] pf_negotiate_latest_match
[17:38:30] [PASSED] pf_negotiate_latest_newer
[17:38:30] [PASSED] pf_negotiate_latest_next
[17:38:30] [SKIPPED] pf_negotiate_latest_older
[17:38:30] [SKIPPED] pf_negotiate_latest_prev
[17:38:30] =================== [PASSED] pf_service ====================
[17:38:30] ================= xe_guc_g2g (2 subtests) ==================
[17:38:30] ============== xe_live_guc_g2g_kunit_default  ==============
[17:38:30] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[17:38:30] ============== xe_live_guc_g2g_kunit_allmem  ===============
[17:38:30] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[17:38:30] =================== [SKIPPED] xe_guc_g2g ===================
[17:38:30] =================== xe_mocs (2 subtests) ===================
[17:38:30] ================ xe_live_mocs_kernel_kunit  ================
[17:38:30] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[17:38:30] ================ xe_live_mocs_reset_kunit  =================
[17:38:30] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[17:38:30] ==================== [SKIPPED] xe_mocs =====================
[17:38:30] ================= xe_migrate (2 subtests) ==================
[17:38:30] ================= xe_migrate_sanity_kunit  =================
[17:38:30] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[17:38:30] ================== xe_validate_ccs_kunit  ==================
[17:38:30] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[17:38:30] =================== [SKIPPED] xe_migrate ===================
[17:38:30] ================== xe_dma_buf (1 subtest) ==================
[17:38:30] ==================== xe_dma_buf_kunit  =====================
[17:38:30] ================ [SKIPPED] xe_dma_buf_kunit ================
[17:38:30] =================== [SKIPPED] xe_dma_buf ===================
[17:38:30] ================= xe_bo_shrink (1 subtest) =================
[17:38:30] =================== xe_bo_shrink_kunit  ====================
[17:38:30] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[17:38:30] ================== [SKIPPED] xe_bo_shrink ==================
[17:38:30] ==================== xe_bo (2 subtests) ====================
[17:38:30] ================== xe_ccs_migrate_kunit  ===================
[17:38:30] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[17:38:30] ==================== xe_bo_evict_kunit  ====================
[17:38:30] =============== [SKIPPED] xe_bo_evict_kunit ================
[17:38:30] ===================== [SKIPPED] xe_bo ======================
[17:38:30] ==================== args (13 subtests) ====================
[17:38:30] [PASSED] count_args_test
[17:38:30] [PASSED] call_args_example
[17:38:30] [PASSED] call_args_test
[17:38:30] [PASSED] drop_first_arg_example
[17:38:30] [PASSED] drop_first_arg_test
[17:38:30] [PASSED] first_arg_example
[17:38:30] [PASSED] first_arg_test
[17:38:30] [PASSED] last_arg_example
[17:38:30] [PASSED] last_arg_test
[17:38:30] [PASSED] pick_arg_example
[17:38:30] [PASSED] if_args_example
[17:38:30] [PASSED] if_args_test
[17:38:30] [PASSED] sep_comma_example
[17:38:30] ====================== [PASSED] args =======================
[17:38:30] =================== xe_pci (3 subtests) ====================
[17:38:30] ==================== check_graphics_ip  ====================
[17:38:30] [PASSED] 12.00 Xe_LP
[17:38:30] [PASSED] 12.10 Xe_LP+
[17:38:30] [PASSED] 12.55 Xe_HPG
[17:38:30] [PASSED] 12.60 Xe_HPC
[17:38:30] [PASSED] 12.70 Xe_LPG
[17:38:30] [PASSED] 12.71 Xe_LPG
[17:38:30] [PASSED] 12.74 Xe_LPG+
[17:38:30] [PASSED] 20.01 Xe2_HPG
[17:38:30] [PASSED] 20.02 Xe2_HPG
[17:38:30] [PASSED] 20.04 Xe2_LPG
[17:38:30] [PASSED] 30.00 Xe3_LPG
[17:38:30] [PASSED] 30.01 Xe3_LPG
[17:38:30] [PASSED] 30.03 Xe3_LPG
[17:38:30] [PASSED] 30.04 Xe3_LPG
[17:38:30] [PASSED] 30.05 Xe3_LPG
[17:38:30] [PASSED] 35.11 Xe3p_XPC
[17:38:30] ================ [PASSED] check_graphics_ip ================
[17:38:30] ===================== check_media_ip  ======================
[17:38:30] [PASSED] 12.00 Xe_M
[17:38:30] [PASSED] 12.55 Xe_HPM
[17:38:30] [PASSED] 13.00 Xe_LPM+
[17:38:30] [PASSED] 13.01 Xe2_HPM
[17:38:30] [PASSED] 20.00 Xe2_LPM
[17:38:30] [PASSED] 30.00 Xe3_LPM
[17:38:30] [PASSED] 30.02 Xe3_LPM
[17:38:30] [PASSED] 35.00 Xe3p_LPM
[17:38:30] [PASSED] 35.03 Xe3p_HPM
[17:38:30] ================= [PASSED] check_media_ip ==================
[17:38:30] =================== check_platform_desc  ===================
[17:38:30] [PASSED] 0x9A60 (TIGERLAKE)
[17:38:30] [PASSED] 0x9A68 (TIGERLAKE)
[17:38:30] [PASSED] 0x9A70 (TIGERLAKE)
[17:38:30] [PASSED] 0x9A40 (TIGERLAKE)
[17:38:30] [PASSED] 0x9A49 (TIGERLAKE)
[17:38:30] [PASSED] 0x9A59 (TIGERLAKE)
[17:38:30] [PASSED] 0x9A78 (TIGERLAKE)
[17:38:30] [PASSED] 0x9AC0 (TIGERLAKE)
[17:38:30] [PASSED] 0x9AC9 (TIGERLAKE)
[17:38:30] [PASSED] 0x9AD9 (TIGERLAKE)
[17:38:30] [PASSED] 0x9AF8 (TIGERLAKE)
[17:38:30] [PASSED] 0x4C80 (ROCKETLAKE)
[17:38:30] [PASSED] 0x4C8A (ROCKETLAKE)
[17:38:30] [PASSED] 0x4C8B (ROCKETLAKE)
[17:38:30] [PASSED] 0x4C8C (ROCKETLAKE)
[17:38:30] [PASSED] 0x4C90 (ROCKETLAKE)
[17:38:30] [PASSED] 0x4C9A (ROCKETLAKE)
[17:38:30] [PASSED] 0x4680 (ALDERLAKE_S)
[17:38:30] [PASSED] 0x4682 (ALDERLAKE_S)
[17:38:30] [PASSED] 0x4688 (ALDERLAKE_S)
[17:38:30] [PASSED] 0x468A (ALDERLAKE_S)
[17:38:30] [PASSED] 0x468B (ALDERLAKE_S)
[17:38:30] [PASSED] 0x4690 (ALDERLAKE_S)
[17:38:30] [PASSED] 0x4692 (ALDERLAKE_S)
[17:38:30] [PASSED] 0x4693 (ALDERLAKE_S)
[17:38:30] [PASSED] 0x46A0 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46A1 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46A2 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46A3 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46A6 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46A8 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46AA (ALDERLAKE_P)
[17:38:30] [PASSED] 0x462A (ALDERLAKE_P)
[17:38:30] [PASSED] 0x4626 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x4628 (ALDERLAKE_P)
stty: 'standard input': Inappropriate ioctl for device
[17:38:30] [PASSED] 0x46B0 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46B1 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46B2 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46B3 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46C0 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46C1 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46C2 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46C3 (ALDERLAKE_P)
[17:38:30] [PASSED] 0x46D0 (ALDERLAKE_N)
[17:38:30] [PASSED] 0x46D1 (ALDERLAKE_N)
[17:38:30] [PASSED] 0x46D2 (ALDERLAKE_N)
[17:38:30] [PASSED] 0x46D3 (ALDERLAKE_N)
[17:38:30] [PASSED] 0x46D4 (ALDERLAKE_N)
[17:38:30] [PASSED] 0xA721 (ALDERLAKE_P)
[17:38:30] [PASSED] 0xA7A1 (ALDERLAKE_P)
[17:38:30] [PASSED] 0xA7A9 (ALDERLAKE_P)
[17:38:30] [PASSED] 0xA7AC (ALDERLAKE_P)
[17:38:30] [PASSED] 0xA7AD (ALDERLAKE_P)
[17:38:30] [PASSED] 0xA720 (ALDERLAKE_P)
[17:38:31] [PASSED] 0xA7A0 (ALDERLAKE_P)
[17:38:31] [PASSED] 0xA7A8 (ALDERLAKE_P)
[17:38:31] [PASSED] 0xA7AA (ALDERLAKE_P)
[17:38:31] [PASSED] 0xA7AB (ALDERLAKE_P)
[17:38:31] [PASSED] 0xA780 (ALDERLAKE_S)
[17:38:31] [PASSED] 0xA781 (ALDERLAKE_S)
[17:38:31] [PASSED] 0xA782 (ALDERLAKE_S)
[17:38:31] [PASSED] 0xA783 (ALDERLAKE_S)
[17:38:31] [PASSED] 0xA788 (ALDERLAKE_S)
[17:38:31] [PASSED] 0xA789 (ALDERLAKE_S)
[17:38:31] [PASSED] 0xA78A (ALDERLAKE_S)
[17:38:31] [PASSED] 0xA78B (ALDERLAKE_S)
[17:38:31] [PASSED] 0x4905 (DG1)
[17:38:31] [PASSED] 0x4906 (DG1)
[17:38:31] [PASSED] 0x4907 (DG1)
[17:38:31] [PASSED] 0x4908 (DG1)
[17:38:31] [PASSED] 0x4909 (DG1)
[17:38:31] [PASSED] 0x56C0 (DG2)
[17:38:31] [PASSED] 0x56C2 (DG2)
[17:38:31] [PASSED] 0x56C1 (DG2)
[17:38:31] [PASSED] 0x7D51 (METEORLAKE)
[17:38:31] [PASSED] 0x7DD1 (METEORLAKE)
[17:38:31] [PASSED] 0x7D41 (METEORLAKE)
[17:38:31] [PASSED] 0x7D67 (METEORLAKE)
[17:38:31] [PASSED] 0xB640 (METEORLAKE)
[17:38:31] [PASSED] 0x56A0 (DG2)
[17:38:31] [PASSED] 0x56A1 (DG2)
[17:38:31] [PASSED] 0x56A2 (DG2)
[17:38:31] [PASSED] 0x56BE (DG2)
[17:38:31] [PASSED] 0x56BF (DG2)
[17:38:31] [PASSED] 0x5690 (DG2)
[17:38:31] [PASSED] 0x5691 (DG2)
[17:38:31] [PASSED] 0x5692 (DG2)
[17:38:31] [PASSED] 0x56A5 (DG2)
[17:38:31] [PASSED] 0x56A6 (DG2)
[17:38:31] [PASSED] 0x56B0 (DG2)
[17:38:31] [PASSED] 0x56B1 (DG2)
[17:38:31] [PASSED] 0x56BA (DG2)
[17:38:31] [PASSED] 0x56BB (DG2)
[17:38:31] [PASSED] 0x56BC (DG2)
[17:38:31] [PASSED] 0x56BD (DG2)
[17:38:31] [PASSED] 0x5693 (DG2)
[17:38:31] [PASSED] 0x5694 (DG2)
[17:38:31] [PASSED] 0x5695 (DG2)
[17:38:31] [PASSED] 0x56A3 (DG2)
[17:38:31] [PASSED] 0x56A4 (DG2)
[17:38:31] [PASSED] 0x56B2 (DG2)
[17:38:31] [PASSED] 0x56B3 (DG2)
[17:38:31] [PASSED] 0x5696 (DG2)
[17:38:31] [PASSED] 0x5697 (DG2)
[17:38:31] [PASSED] 0xB69 (PVC)
[17:38:31] [PASSED] 0xB6E (PVC)
[17:38:31] [PASSED] 0xBD4 (PVC)
[17:38:31] [PASSED] 0xBD5 (PVC)
[17:38:31] [PASSED] 0xBD6 (PVC)
[17:38:31] [PASSED] 0xBD7 (PVC)
[17:38:31] [PASSED] 0xBD8 (PVC)
[17:38:31] [PASSED] 0xBD9 (PVC)
[17:38:31] [PASSED] 0xBDA (PVC)
[17:38:31] [PASSED] 0xBDB (PVC)
[17:38:31] [PASSED] 0xBE0 (PVC)
[17:38:31] [PASSED] 0xBE1 (PVC)
[17:38:31] [PASSED] 0xBE5 (PVC)
[17:38:31] [PASSED] 0x7D40 (METEORLAKE)
[17:38:31] [PASSED] 0x7D45 (METEORLAKE)
[17:38:31] [PASSED] 0x7D55 (METEORLAKE)
[17:38:31] [PASSED] 0x7D60 (METEORLAKE)
[17:38:31] [PASSED] 0x7DD5 (METEORLAKE)
[17:38:31] [PASSED] 0x6420 (LUNARLAKE)
[17:38:31] [PASSED] 0x64A0 (LUNARLAKE)
[17:38:31] [PASSED] 0x64B0 (LUNARLAKE)
[17:38:31] [PASSED] 0xE202 (BATTLEMAGE)
[17:38:31] [PASSED] 0xE209 (BATTLEMAGE)
[17:38:31] [PASSED] 0xE20B (BATTLEMAGE)
[17:38:31] [PASSED] 0xE20C (BATTLEMAGE)
[17:38:31] [PASSED] 0xE20D (BATTLEMAGE)
[17:38:31] [PASSED] 0xE210 (BATTLEMAGE)
[17:38:31] [PASSED] 0xE211 (BATTLEMAGE)
[17:38:31] [PASSED] 0xE212 (BATTLEMAGE)
[17:38:31] [PASSED] 0xE216 (BATTLEMAGE)
[17:38:31] [PASSED] 0xE220 (BATTLEMAGE)
[17:38:31] [PASSED] 0xE221 (BATTLEMAGE)
[17:38:31] [PASSED] 0xE222 (BATTLEMAGE)
[17:38:31] [PASSED] 0xE223 (BATTLEMAGE)
[17:38:31] [PASSED] 0xB080 (PANTHERLAKE)
[17:38:31] [PASSED] 0xB081 (PANTHERLAKE)
[17:38:31] [PASSED] 0xB082 (PANTHERLAKE)
[17:38:31] [PASSED] 0xB083 (PANTHERLAKE)
[17:38:31] [PASSED] 0xB084 (PANTHERLAKE)
[17:38:31] [PASSED] 0xB085 (PANTHERLAKE)
[17:38:31] [PASSED] 0xB086 (PANTHERLAKE)
[17:38:31] [PASSED] 0xB087 (PANTHERLAKE)
[17:38:31] [PASSED] 0xB08F (PANTHERLAKE)
[17:38:31] [PASSED] 0xB090 (PANTHERLAKE)
[17:38:31] [PASSED] 0xB0A0 (PANTHERLAKE)
[17:38:31] [PASSED] 0xB0B0 (PANTHERLAKE)
[17:38:31] [PASSED] 0xFD80 (PANTHERLAKE)
[17:38:31] [PASSED] 0xFD81 (PANTHERLAKE)
[17:38:31] [PASSED] 0xD740 (NOVALAKE_S)
[17:38:31] [PASSED] 0xD741 (NOVALAKE_S)
[17:38:31] [PASSED] 0xD742 (NOVALAKE_S)
[17:38:31] [PASSED] 0xD743 (NOVALAKE_S)
[17:38:31] [PASSED] 0xD744 (NOVALAKE_S)
[17:38:31] [PASSED] 0xD745 (NOVALAKE_S)
[17:38:31] [PASSED] 0x674C (CRESCENTISLAND)
[17:38:31] =============== [PASSED] check_platform_desc ===============
[17:38:31] ===================== [PASSED] xe_pci ======================
[17:38:31] =================== xe_rtp (2 subtests) ====================
[17:38:31] =============== xe_rtp_process_to_sr_tests  ================
[17:38:31] [PASSED] coalesce-same-reg
[17:38:31] [PASSED] no-match-no-add
[17:38:31] [PASSED] match-or
[17:38:31] [PASSED] match-or-xfail
[17:38:31] [PASSED] no-match-no-add-multiple-rules
[17:38:31] [PASSED] two-regs-two-entries
[17:38:31] [PASSED] clr-one-set-other
[17:38:31] [PASSED] set-field
[17:38:31] [PASSED] conflict-duplicate
[17:38:31] [PASSED] conflict-not-disjoint
[17:38:31] [PASSED] conflict-reg-type
[17:38:31] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[17:38:31] ================== xe_rtp_process_tests  ===================
[17:38:31] [PASSED] active1
[17:38:31] [PASSED] active2
[17:38:31] [PASSED] active-inactive
[17:38:31] [PASSED] inactive-active
[17:38:31] [PASSED] inactive-1st_or_active-inactive
[17:38:31] [PASSED] inactive-2nd_or_active-inactive
[17:38:31] [PASSED] inactive-last_or_active-inactive
[17:38:31] [PASSED] inactive-no_or_active-inactive
[17:38:31] ============== [PASSED] xe_rtp_process_tests ===============
[17:38:31] ===================== [PASSED] xe_rtp ======================
[17:38:31] ==================== xe_wa (1 subtest) =====================
[17:38:31] ======================== xe_wa_gt  =========================
[17:38:31] [PASSED] TIGERLAKE B0
[17:38:31] [PASSED] DG1 A0
[17:38:31] [PASSED] DG1 B0
[17:38:31] [PASSED] ALDERLAKE_S A0
[17:38:31] [PASSED] ALDERLAKE_S B0
[17:38:31] [PASSED] ALDERLAKE_S C0
[17:38:31] [PASSED] ALDERLAKE_S D0
[17:38:31] [PASSED] ALDERLAKE_P A0
[17:38:31] [PASSED] ALDERLAKE_P B0
[17:38:31] [PASSED] ALDERLAKE_P C0
[17:38:31] [PASSED] ALDERLAKE_S RPLS D0
[17:38:31] [PASSED] ALDERLAKE_P RPLU E0
[17:38:31] [PASSED] DG2 G10 C0
[17:38:31] [PASSED] DG2 G11 B1
[17:38:31] [PASSED] DG2 G12 A1
[17:38:31] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[17:38:31] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[17:38:31] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[17:38:31] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[17:38:31] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[17:38:31] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[17:38:31] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[17:38:31] ==================== [PASSED] xe_wa_gt =====================
[17:38:31] ====================== [PASSED] xe_wa ======================
[17:38:31] ============================================================
[17:38:31] Testing complete. Ran 512 tests: passed: 494, skipped: 18
[17:38:31] Elapsed time: 36.962s total, 4.127s configuring, 32.318s building, 0.478s running

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

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

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



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

* ✗ CI.checksparse: warning for drm: Color pipeline teardown and follow-up fixes/improvements (rev4)
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
                   ` (10 preceding siblings ...)
  2026-02-02 17:39 ` ✓ CI.KUnit: success " Patchwork
@ 2026-02-02 17:54 ` Patchwork
  2026-02-02 18:48 ` ✓ Xe.CI.BAT: success " Patchwork
  12 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2026-02-02 17:54 UTC (permalink / raw)
  To: Chaitanya Kumar Borah; +Cc: intel-xe

== Series Details ==

Series: drm: Color pipeline teardown and follow-up fixes/improvements (rev4)
URL   : https://patchwork.freedesktop.org/series/159263/
State : warning

== Summary ==

+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast ce23cb229dd84e6459444e216fb5e7980be7849b
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
+drivers/gpu/drm/i915/display/dvo_ch7017.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/dvo_ch7xxx.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/dvo_ivch.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/dvo_ns2501.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/dvo_sil164.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/dvo_tfp410.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/g4x_dp.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/g4x_hdmi.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/hsw_ips.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/i9xx_plane.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/i9xx_wm.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_display_trace.h):
+drivers/gpu/drm/i915/display/icl_dsi.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_dsi.h):
+drivers/gpu/drm/i915/display/intel_acpi.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_alpm.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_atomic.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_audio.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_backlight.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_bios.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_bw.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_casf.c:153:21: error: too long token expansion
+drivers/gpu/drm/i915/display/intel_casf.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_cdclk.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_color.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_colorop.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_combo_phy.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_connector.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_crtc.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_display_trace.h):
+drivers/gpu/drm/i915/display/intel_crt.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_crtc_state_dump.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_cursor.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_cx0_phy.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dbuf_bw.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_ddi.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_display.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_display_debugfs.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_display_device.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_display_driver.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_display_irq.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_display_trace.h):
+drivers/gpu/drm/i915/display/intel_display_power.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_display_power_map.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_display_power_well.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_display_reset.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_display_rps.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dmc.c:131:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:134:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:137:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:140:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:143:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:146:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:149:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:153:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:154:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:157:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:160:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:163:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:166:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:170:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:174:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:178:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:182:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c:186:1: error: bad constant expression
+drivers/gpu/drm/i915/display/intel_dmc.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dp_aux.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dp.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dp_hdcp.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dpio_phy.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dp_link_training.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dpll.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dpll_mgr.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dp_mst.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dpt.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dpt_common.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dp_test.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_drrs.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dsb.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dsi.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_dsi.h):
+drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dsi_vbt.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_dvo.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_encoder.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_fb_bo.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_fbc.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_display_trace.h):
+drivers/gpu/drm/i915/display/intel_fb.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_fb_pin.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_fdi.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_fifo_underrun.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_display_trace.h):
+drivers/gpu/drm/i915/display/intel_flipq.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_frontbuffer.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_display_trace.h):
+drivers/gpu/drm/i915/display/intel_global_state.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_gmbus.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_hdcp.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_hdmi.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_hotplug.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_hotplug_irq.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_initial_plane.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_link_bw.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_load_detect.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_lspcon.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_lt_phy.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_lvds.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_modeset_lock.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_modeset_setup.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_modeset_verify.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_opregion.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_overlay.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_panel.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_pch_display.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_pch_refclk.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_pfit.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_pipe_crc.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_plane.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_display_trace.h):
+drivers/gpu/drm/i915/display/intel_pmdemand.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_display_trace.h):
+drivers/gpu/drm/i915/display/intel_pps.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_psr.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_quirks.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_sdvo.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_snps_phy.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_sprite.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_sprite_uapi.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_tc.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_tv.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_vblank.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_vdsc.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_vga.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_vrr.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/intel_wm.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/skl_prefill.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/skl_scaler.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h, drivers/gpu/drm/i915/display/intel_display_trace.h):
+drivers/gpu/drm/i915/display/skl_universal_plane.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/skl_watermark.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/vlv_clock.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/vlv_dsi.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/vlv_dsi_pll.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/display/vlv_sideband.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/gem/i915_gem_pages.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/i915_initial_plane.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+drivers/gpu/drm/i915/i915_panic.c: note: in included file (through drivers/gpu/drm/i915/display/intel_display_types.h):
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression
+./include/linux/pwm.h:13:1: error: bad constant expression

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



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

* ✓ Xe.CI.BAT: success for drm: Color pipeline teardown and follow-up fixes/improvements (rev4)
  2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
                   ` (11 preceding siblings ...)
  2026-02-02 17:54 ` ✗ CI.checksparse: warning " Patchwork
@ 2026-02-02 18:48 ` Patchwork
  12 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2026-02-02 18:48 UTC (permalink / raw)
  To: Chaitanya Kumar Borah; +Cc: intel-xe

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

== Series Details ==

Series: drm: Color pipeline teardown and follow-up fixes/improvements (rev4)
URL   : https://patchwork.freedesktop.org/series/159263/
State : success

== Summary ==

CI Bug Log - changes from xe-4481-cd1fd615b2ba56ea3fb033262d4fbd0503055d3c_BAT -> xe-pw-159263v4_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts


Changes
-------

  No changes found


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

  * Linux: xe-4481-cd1fd615b2ba56ea3fb033262d4fbd0503055d3c -> xe-pw-159263v4

  IGT_8729: 8729
  xe-4481-cd1fd615b2ba56ea3fb033262d4fbd0503055d3c: cd1fd615b2ba56ea3fb033262d4fbd0503055d3c
  xe-pw-159263v4: 159263v4

== Logs ==

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

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

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

end of thread, other threads:[~2026-02-02 18:48 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-02  9:41 [RESEND 0/9] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
2026-02-02  9:41 ` [RESEND 1/9] drm/colorop: Add destroy helper for colorop objects Chaitanya Kumar Borah
2026-02-02  9:41 ` [RESEND 2/9] drm: Allow driver-managed destruction of " Chaitanya Kumar Borah
2026-02-02  9:41 ` [RESEND 3/9] drm/amd/display: Hook up colorop destroy helper for plane pipelines Chaitanya Kumar Borah
2026-02-02  9:41 ` [RESEND 4/9] drm/vkms: " Chaitanya Kumar Borah
2026-02-02  9:41 ` [RESEND 5/9] drm/i915/display: Hook up intel_colorop_destroy Chaitanya Kumar Borah
2026-02-02  9:41 ` [RESEND 6/9] drm: Clean up colorop objects during mode_config cleanup Chaitanya Kumar Borah
2026-02-02  9:42 ` [RESEND 7/9] drm/vkms: Remove drm_colorop_pipeline_destroy() from vkms_destroy() Chaitanya Kumar Borah
2026-02-02  9:42 ` [RESEND 8/9] drm/colorop: Use destroy callback for color pipeline teardown Chaitanya Kumar Borah
2026-02-02  9:42 ` [RESEND 9/9] drm/i915/color: Add failure handling in plane color pipeline init Chaitanya Kumar Borah
2026-02-02 17:37 ` ✗ CI.checkpatch: warning for drm: Color pipeline teardown and follow-up fixes/improvements (rev4) Patchwork
2026-02-02 17:39 ` ✓ CI.KUnit: success " Patchwork
2026-02-02 17:54 ` ✗ CI.checksparse: warning " Patchwork
2026-02-02 18:48 ` ✓ Xe.CI.BAT: success " Patchwork

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