* [PATCH v3 01/13] drm/i915/color: Place 3D LUT after CSC in plane color pipeline
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
@ 2026-01-13 10:22 ` Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 02/13] drm/amd/display: Fix color pipeline enum name leak Chaitanya Kumar Borah
` (14 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:22 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
Move the 3D LUT block to its correct position in the plane
color pipeline:
[Pre-CSC] -> [CSC] -> [3DLUT] -> [Post-CSC]
Fixes: 65db7a1f9cf7 ("drm/i915/color: Add 3D LUT to color pipeline")
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>
---
.../drm/i915/display/intel_color_pipeline.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_color_pipeline.c b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
index 942d9b9c93ce..684641c8323b 100644
--- a/drivers/gpu/drm/i915/display/intel_color_pipeline.c
+++ b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
@@ -39,6 +39,15 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
/* 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,
+ 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) {
@@ -55,15 +64,6 @@ 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,
- DRM_COLOROP_FLAG_ALLOW_BYPASS);
- if (ret)
- return ret;
-
- drm_colorop_set_next_property(prev_op, &colorop->base);
- prev_op = &colorop->base;
-
colorop = intel_colorop_create(INTEL_PLANE_CB_POST_CSC_LUT);
ret = drm_plane_colorop_curve_1d_lut_init(dev, &colorop->base, plane,
PLANE_GAMMA_SIZE,
--
2.25.1
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v3 02/13] drm/amd/display: Fix color pipeline enum name leak
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 01/13] drm/i915/color: Place 3D LUT after CSC in plane color pipeline Chaitanya Kumar Borah
@ 2026-01-13 10:22 ` Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 03/13] drm/vkms: " Chaitanya Kumar Borah
` (13 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:22 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
dm_plane_init_colorops() allocates enum names for color pipelines.
These are eventually passed to drm_property_create_enum() which create
its own copies of the string. Free the strings after initialization
is done.
Also, allocate color pipeline enum names only after successfully creating
color pipeline.
Fixes: 9ba25915efba ("drm/amd/display: Add support for sRGB EOTF in DEGAM block")
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>
---
.../drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c | 4 +++-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 13 +++++++++----
2 files changed, 12 insertions(+), 5 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 d585618b8064..a2de3bba8346 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
@@ -79,7 +79,6 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
goto cleanup;
list->type = ops[i]->base.id;
- list->name = kasprintf(GFP_KERNEL, "Color Pipeline %d", ops[i]->base.id);
i++;
@@ -197,6 +196,9 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
goto cleanup;
drm_colorop_set_next_property(ops[i-1], ops[i]);
+
+ list->name = kasprintf(GFP_KERNEL, "Color Pipeline %d", ops[0]->base.id);
+
return 0;
cleanup:
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
index 2e3ee78999d9..7c4496fb4b9d 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
@@ -1790,12 +1790,13 @@ dm_atomic_plane_get_property(struct drm_plane *plane,
static int
dm_plane_init_colorops(struct drm_plane *plane)
{
- struct drm_prop_enum_list pipelines[MAX_COLOR_PIPELINES];
+ struct drm_prop_enum_list pipelines[MAX_COLOR_PIPELINES] = {};
struct drm_device *dev = plane->dev;
struct amdgpu_device *adev = drm_to_adev(dev);
struct dc *dc = adev->dm.dc;
int len = 0;
- int ret;
+ int ret = 0;
+ int i;
if (plane->type == DRM_PLANE_TYPE_CURSOR)
return 0;
@@ -1806,7 +1807,7 @@ dm_plane_init_colorops(struct drm_plane *plane)
if (ret) {
drm_err(plane->dev, "Failed to create color pipeline for plane %d: %d\n",
plane->base.id, ret);
- return ret;
+ goto out;
}
len++;
@@ -1814,7 +1815,11 @@ dm_plane_init_colorops(struct drm_plane *plane)
drm_plane_create_color_pipeline_property(plane, pipelines, len);
}
- return 0;
+out:
+ for (i = 0; i < len; i++)
+ kfree(pipelines[i].name);
+
+ return ret;
}
#endif
--
2.25.1
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v3 03/13] drm/vkms: Fix color pipeline enum name leak
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 01/13] drm/i915/color: Place 3D LUT after CSC in plane color pipeline Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 02/13] drm/amd/display: Fix color pipeline enum name leak Chaitanya Kumar Borah
@ 2026-01-13 10:22 ` Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 04/13] drm/i915/display: " Chaitanya Kumar Borah
` (12 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:22 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
vkms_initialize_colorops() allocates enum names for color pipelines,
which are copied by drm_property_create_enum(). The temporary strings
were not freed, resulting in a memory leak.
Allocate enum names only after successful pipeline construction and
free them on all exit paths
Fixes: c1e578bd08da ("drm/vkms: Add enumerated 1D curve colorop")
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>
---
drivers/gpu/drm/vkms/vkms_colorop.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/vkms/vkms_colorop.c b/drivers/gpu/drm/vkms/vkms_colorop.c
index 5c3ffc78aea0..d03a1f2e9c41 100644
--- a/drivers/gpu/drm/vkms/vkms_colorop.c
+++ b/drivers/gpu/drm/vkms/vkms_colorop.c
@@ -37,7 +37,6 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
goto cleanup;
list->type = ops[i]->base.id;
- list->name = kasprintf(GFP_KERNEL, "Color Pipeline %d", ops[i]->base.id);
i++;
@@ -88,6 +87,8 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
drm_colorop_set_next_property(ops[i - 1], ops[i]);
+ list->name = kasprintf(GFP_KERNEL, "Color Pipeline %d", ops[0]->base.id);
+
return 0;
cleanup:
@@ -103,18 +104,18 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
int vkms_initialize_colorops(struct drm_plane *plane)
{
- struct drm_prop_enum_list pipeline;
- int ret;
+ struct drm_prop_enum_list pipeline = {};
+ int ret = 0;
/* Add color pipeline */
ret = vkms_initialize_color_pipeline(plane, &pipeline);
if (ret)
- return ret;
+ goto out;
/* Create COLOR_PIPELINE property and attach */
ret = drm_plane_create_color_pipeline_property(plane, &pipeline, 1);
- if (ret)
- return ret;
- return 0;
+ kfree(pipeline.name);
+out:
+ return ret;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v3 04/13] drm/i915/display: Fix color pipeline enum name leak
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (2 preceding siblings ...)
2026-01-13 10:22 ` [PATCH v3 03/13] drm/vkms: " Chaitanya Kumar Borah
@ 2026-01-13 10:22 ` Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 05/13] drm/colorop: Add destroy helper for colorop objects Chaitanya Kumar Borah
` (11 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:22 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
intel_color_pipeline_plane_init() allocates enum names for color
pipelines, which are copied by drm_property_create_enum(). The temporary
strings were not freed, resulting in a memory leak.
Allocate enum names only after successful pipeline construction and free
them on all exit paths.
Fixes: ef105316819d ("drm/i915/color: Create a transfer function color pipeline")
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>
---
.../drm/i915/display/intel_color_pipeline.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_color_pipeline.c b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
index 684641c8323b..04af552b3648 100644
--- a/drivers/gpu/drm/i915/display/intel_color_pipeline.c
+++ b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
@@ -34,7 +34,6 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
return ret;
list->type = colorop->base.base.id;
- list->name = kasprintf(GFP_KERNEL, "Color Pipeline %d", colorop->base.base.id);
/* TODO: handle failures and clean up */
prev_op = &colorop->base;
@@ -74,6 +73,8 @@ int _intel_color_pipeline_plane_init(struct drm_plane *plane, struct drm_prop_en
drm_colorop_set_next_property(prev_op, &colorop->base);
+ list->name = kasprintf(GFP_KERNEL, "Color Pipeline %d", list->type);
+
return 0;
}
@@ -81,9 +82,10 @@ int intel_color_pipeline_plane_init(struct drm_plane *plane, enum pipe pipe)
{
struct drm_device *dev = plane->dev;
struct intel_display *display = to_intel_display(dev);
- struct drm_prop_enum_list pipelines[MAX_COLOR_PIPELINES];
+ struct drm_prop_enum_list pipelines[MAX_COLOR_PIPELINES] = {};
int len = 0;
- int ret;
+ int ret = 0;
+ int i;
/* Currently expose pipeline only for HDR planes */
if (!icl_is_hdr_plane(display, to_intel_plane(plane)->id))
@@ -92,8 +94,14 @@ int intel_color_pipeline_plane_init(struct drm_plane *plane, enum pipe pipe)
/* Add pipeline consisting of transfer functions */
ret = _intel_color_pipeline_plane_init(plane, &pipelines[len], pipe);
if (ret)
- return ret;
+ goto out;
len++;
- return drm_plane_create_color_pipeline_property(plane, pipelines, len);
+ ret = drm_plane_create_color_pipeline_property(plane, pipelines, len);
+
+ for (i = 0; i < len; i++)
+ kfree(pipelines[i].name);
+
+out:
+ return ret;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v3 05/13] drm/colorop: Add destroy helper for colorop objects
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (3 preceding siblings ...)
2026-01-13 10:22 ` [PATCH v3 04/13] drm/i915/display: " Chaitanya Kumar Borah
@ 2026-01-13 10:22 ` Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 06/13] drm: Allow driver-managed destruction of " Chaitanya Kumar Borah
` (10 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:22 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
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>
---
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] 21+ messages in thread* [PATCH v3 06/13] drm: Allow driver-managed destruction of colorop objects
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (4 preceding siblings ...)
2026-01-13 10:22 ` [PATCH v3 05/13] drm/colorop: Add destroy helper for colorop objects Chaitanya Kumar Borah
@ 2026-01-13 10:22 ` Chaitanya Kumar Borah
2026-01-14 5:37 ` Kandpal, Suraj
2026-01-13 10:22 ` [PATCH v3 07/13] drm/amd/display: Hook up colorop destroy helper for plane pipelines Chaitanya Kumar Borah
` (9 subsequent siblings)
15 siblings, 1 reply; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:22 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
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>
---
.../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] 21+ messages in thread* RE: [PATCH v3 06/13] drm: Allow driver-managed destruction of colorop objects
2026-01-13 10:22 ` [PATCH v3 06/13] drm: Allow driver-managed destruction of " Chaitanya Kumar Borah
@ 2026-01-14 5:37 ` Kandpal, Suraj
2026-01-14 7:51 ` Borah, Chaitanya Kumar
0 siblings, 1 reply; 21+ messages in thread
From: Kandpal, Suraj @ 2026-01-14 5:37 UTC (permalink / raw)
To: Borah, Chaitanya Kumar, dri-devel@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
amd-gfx@lists.freedesktop.org
Cc: harry.wentland@amd.com, jani.nikula@linux.intel.com,
louis.chauvet@bootlin.com, mwen@igalia.com, contact@emersion.fr,
alex.hung@amd.com, daniels@collabora.com, Shankar, Uma,
nfraprado@collabora.com, ville.syrjala@linux.intel.com,
Roper, Matthew D
> Subject: [PATCH v3 06/13] drm: Allow driver-managed destruction of colorop
> objects
>
> 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.
>
Just to point out checkpatch asks us to use u32 instead of uint32_t
Regards,
Suraj Kandpal
> 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>
> ---
> .../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 [flat|nested] 21+ messages in thread* Re: [PATCH v3 06/13] drm: Allow driver-managed destruction of colorop objects
2026-01-14 5:37 ` Kandpal, Suraj
@ 2026-01-14 7:51 ` Borah, Chaitanya Kumar
0 siblings, 0 replies; 21+ messages in thread
From: Borah, Chaitanya Kumar @ 2026-01-14 7:51 UTC (permalink / raw)
To: Kandpal, Suraj, dri-devel@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
amd-gfx@lists.freedesktop.org
Cc: harry.wentland@amd.com, jani.nikula@linux.intel.com,
louis.chauvet@bootlin.com, mwen@igalia.com, contact@emersion.fr,
alex.hung@amd.com, daniels@collabora.com, Shankar, Uma,
nfraprado@collabora.com, ville.syrjala@linux.intel.com,
Roper, Matthew D
On 1/14/2026 11:07 AM, Kandpal, Suraj wrote:
>> Subject: [PATCH v3 06/13] drm: Allow driver-managed destruction of colorop
>> objects
>>
>> 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.
>>
>
> Just to point out checkpatch asks us to use u32 instead of uint32_t
That thought crossed my mind as well, but the file already consistently
uses uint32_t. If cleanup is needed, we can follow up with a separate
cleanup patch.
==
Chaitanya
>
> Regards,
> Suraj Kandpal
>
>> 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>
>> ---
>> .../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 [flat|nested] 21+ messages in thread
* [PATCH v3 07/13] drm/amd/display: Hook up colorop destroy helper for plane pipelines
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (5 preceding siblings ...)
2026-01-13 10:22 ` [PATCH v3 06/13] drm: Allow driver-managed destruction of " Chaitanya Kumar Borah
@ 2026-01-13 10:22 ` Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 08/13] drm/vkms: " Chaitanya Kumar Borah
` (8 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:22 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
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>
---
.../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] 21+ messages in thread* [PATCH v3 08/13] drm/vkms: Hook up colorop destroy helper for plane pipelines
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (6 preceding siblings ...)
2026-01-13 10:22 ` [PATCH v3 07/13] drm/amd/display: Hook up colorop destroy helper for plane pipelines Chaitanya Kumar Borah
@ 2026-01-13 10:22 ` Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 09/13] drm/i915/display: Hook up intel_colorop_destroy Chaitanya Kumar Borah
` (7 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:22 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
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>
---
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] 21+ messages in thread* [PATCH v3 09/13] drm/i915/display: Hook up intel_colorop_destroy
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (7 preceding siblings ...)
2026-01-13 10:22 ` [PATCH v3 08/13] drm/vkms: " Chaitanya Kumar Borah
@ 2026-01-13 10:22 ` Chaitanya Kumar Borah
2026-01-13 10:23 ` [PATCH v3 10/13] drm: Clean up colorop objects during mode_config cleanup Chaitanya Kumar Borah
` (6 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:22 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
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>
---
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] 21+ messages in thread* [PATCH v3 10/13] drm: Clean up colorop objects during mode_config cleanup
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (8 preceding siblings ...)
2026-01-13 10:22 ` [PATCH v3 09/13] drm/i915/display: Hook up intel_colorop_destroy Chaitanya Kumar Borah
@ 2026-01-13 10:23 ` Chaitanya Kumar Borah
2026-01-13 10:23 ` [PATCH v3 11/13] drm/vkms: Remove drm_colorop_pipeline_destroy() from vkms_destroy() Chaitanya Kumar Borah
` (5 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:23 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
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>
---
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] 21+ messages in thread* [PATCH v3 11/13] drm/vkms: Remove drm_colorop_pipeline_destroy() from vkms_destroy()
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (9 preceding siblings ...)
2026-01-13 10:23 ` [PATCH v3 10/13] drm: Clean up colorop objects during mode_config cleanup Chaitanya Kumar Borah
@ 2026-01-13 10:23 ` Chaitanya Kumar Borah
2026-01-13 10:23 ` [PATCH v3 12/13] drm/colorop: Use destroy callback for color pipeline teardown Chaitanya Kumar Borah
` (4 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:23 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
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>
---
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] 21+ messages in thread* [PATCH v3 12/13] drm/colorop: Use destroy callback for color pipeline teardown
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (10 preceding siblings ...)
2026-01-13 10:23 ` [PATCH v3 11/13] drm/vkms: Remove drm_colorop_pipeline_destroy() from vkms_destroy() Chaitanya Kumar Borah
@ 2026-01-13 10:23 ` Chaitanya Kumar Borah
2026-01-13 10:23 ` [PATCH v3 13/13] drm/i915/color: Add failure handling in plane color pipeline init Chaitanya Kumar Borah
` (3 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:23 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
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>
---
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] 21+ messages in thread* [PATCH v3 13/13] drm/i915/color: Add failure handling in plane color pipeline init
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (11 preceding siblings ...)
2026-01-13 10:23 ` [PATCH v3 12/13] drm/colorop: Use destroy callback for color pipeline teardown Chaitanya Kumar Borah
@ 2026-01-13 10:23 ` Chaitanya Kumar Borah
2026-01-13 12:40 ` ✓ i915.CI.BAT: success for drm: Color pipeline teardown and follow-up fixes/improvements (rev3) Patchwork
` (2 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Chaitanya Kumar Borah @ 2026-01-13 10:23 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
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>
---
.../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] 21+ messages in thread* ✓ i915.CI.BAT: success for drm: Color pipeline teardown and follow-up fixes/improvements (rev3)
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (12 preceding siblings ...)
2026-01-13 10:23 ` [PATCH v3 13/13] drm/i915/color: Add failure handling in plane color pipeline init Chaitanya Kumar Borah
@ 2026-01-13 12:40 ` Patchwork
2026-01-13 16:49 ` ✓ i915.CI.Full: " Patchwork
2026-01-21 13:51 ` [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Jani Nikula
15 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-01-13 12:40 UTC (permalink / raw)
To: Borah, Chaitanya Kumar; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 4029 bytes --]
== Series Details ==
Series: drm: Color pipeline teardown and follow-up fixes/improvements (rev3)
URL : https://patchwork.freedesktop.org/series/159261/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_17813 -> Patchwork_159261v3
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/index.html
Participating hosts (43 -> 40)
------------------------------
Missing (3): bat-dg2-13 fi-snb-2520m bat-adls-6
Known issues
------------
Here are the changes found in Patchwork_159261v3 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@guc:
- bat-twl-2: [PASS][1] -> [ABORT][2] ([i915#14365]) +1 other test abort
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/bat-twl-2/igt@i915_selftest@live@guc.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/bat-twl-2/igt@i915_selftest@live@guc.html
* igt@i915_selftest@live@workarounds:
- bat-dg2-9: [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/bat-dg2-9/igt@i915_selftest@live@workarounds.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/bat-dg2-9/igt@i915_selftest@live@workarounds.html
- bat-arls-6: [PASS][5] -> [DMESG-FAIL][6] ([i915#12061]) +1 other test dmesg-fail
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/bat-arls-6/igt@i915_selftest@live@workarounds.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/bat-arls-6/igt@i915_selftest@live@workarounds.html
#### Possible fixes ####
* igt@i915_selftest@live@workarounds:
- bat-arls-5: [DMESG-FAIL][7] ([i915#12061]) -> [PASS][8] +1 other test pass
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/bat-arls-5/igt@i915_selftest@live@workarounds.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/bat-arls-5/igt@i915_selftest@live@workarounds.html
- bat-dg2-14: [DMESG-FAIL][9] ([i915#12061]) -> [PASS][10] +1 other test pass
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/bat-dg2-14/igt@i915_selftest@live@workarounds.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/bat-dg2-14/igt@i915_selftest@live@workarounds.html
#### Warnings ####
* igt@i915_selftest@live:
- bat-atsm-1: [DMESG-FAIL][11] ([i915#12061] / [i915#14204]) -> [DMESG-FAIL][12] ([i915#12061] / [i915#13929])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/bat-atsm-1/igt@i915_selftest@live.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/bat-atsm-1/igt@i915_selftest@live.html
* igt@i915_selftest@live@mman:
- bat-atsm-1: [DMESG-FAIL][13] ([i915#14204]) -> [DMESG-FAIL][14] ([i915#13929])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/bat-atsm-1/igt@i915_selftest@live@mman.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/bat-atsm-1/igt@i915_selftest@live@mman.html
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#13929]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13929
[i915#14204]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14204
[i915#14365]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14365
Build changes
-------------
* Linux: CI_DRM_17813 -> Patchwork_159261v3
CI-20190529: 20190529
CI_DRM_17813: f7424dfbcb8f05a13bb1da2bed8e2212d2b7a082 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8699: 0b67ab25f2eb58b296872c8c34474b79353727d5 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_159261v3: f7424dfbcb8f05a13bb1da2bed8e2212d2b7a082 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/index.html
[-- Attachment #2: Type: text/html, Size: 5266 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread* ✓ i915.CI.Full: success for drm: Color pipeline teardown and follow-up fixes/improvements (rev3)
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (13 preceding siblings ...)
2026-01-13 12:40 ` ✓ i915.CI.BAT: success for drm: Color pipeline teardown and follow-up fixes/improvements (rev3) Patchwork
@ 2026-01-13 16:49 ` Patchwork
2026-01-21 13:51 ` [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Jani Nikula
15 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-01-13 16:49 UTC (permalink / raw)
To: Borah, Chaitanya Kumar; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 97001 bytes --]
== Series Details ==
Series: drm: Color pipeline teardown and follow-up fixes/improvements (rev3)
URL : https://patchwork.freedesktop.org/series/159261/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_17813_full -> Patchwork_159261v3_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 9)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in Patchwork_159261v3_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@device_reset@cold-reset-bound:
- shard-rkl: NOTRUN -> [SKIP][1] ([i915#11078])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-3/igt@device_reset@cold-reset-bound.html
* igt@gem_ccs@ctrl-surf-copy:
- shard-rkl: NOTRUN -> [SKIP][2] ([i915#3555] / [i915#9323])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-5/igt@gem_ccs@ctrl-surf-copy.html
* igt@gem_ccs@suspend-resume:
- shard-dg1: NOTRUN -> [SKIP][3] ([i915#9323])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@gem_ccs@suspend-resume.html
* igt@gem_ccs@suspend-resume@tile64-compressed-compfmt0-lmem0-lmem0:
- shard-dg2: NOTRUN -> [INCOMPLETE][4] ([i915#12392] / [i915#13356])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-1/igt@gem_ccs@suspend-resume@tile64-compressed-compfmt0-lmem0-lmem0.html
* igt@gem_close_race@multigpu-basic-process:
- shard-tglu-1: NOTRUN -> [SKIP][5] ([i915#7697])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@gem_close_race@multigpu-basic-process.html
* igt@gem_create@create-ext-cpu-access-sanity-check:
- shard-tglu: NOTRUN -> [SKIP][6] ([i915#6335])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@gem_create@create-ext-cpu-access-sanity-check.html
* igt@gem_eio@hibernate:
- shard-rkl: [PASS][7] -> [ABORT][8] ([i915#7975])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@gem_eio@hibernate.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@gem_eio@hibernate.html
* igt@gem_exec_balancer@parallel-balancer:
- shard-rkl: NOTRUN -> [SKIP][9] ([i915#4525]) +3 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-5/igt@gem_exec_balancer@parallel-balancer.html
* igt@gem_exec_balancer@parallel-bb-first:
- shard-tglu: NOTRUN -> [SKIP][10] ([i915#4525])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@gem_exec_balancer@parallel-bb-first.html
* igt@gem_exec_balancer@parallel-keep-submit-fence:
- shard-tglu-1: NOTRUN -> [SKIP][11] ([i915#4525])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@gem_exec_balancer@parallel-keep-submit-fence.html
* igt@gem_exec_capture@capture-invisible@smem0:
- shard-glk: NOTRUN -> [SKIP][12] ([i915#6334]) +1 other test skip
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk9/igt@gem_exec_capture@capture-invisible@smem0.html
* igt@gem_exec_reloc@basic-active:
- shard-dg1: NOTRUN -> [SKIP][13] ([i915#3281]) +2 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@gem_exec_reloc@basic-active.html
* igt@gem_exec_reloc@basic-range:
- shard-dg2: NOTRUN -> [SKIP][14] ([i915#3281])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@gem_exec_reloc@basic-range.html
* igt@gem_exec_reloc@basic-wc-read-noreloc:
- shard-rkl: NOTRUN -> [SKIP][15] ([i915#3281]) +5 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@gem_exec_reloc@basic-wc-read-noreloc.html
* igt@gem_exec_schedule@preempt-queue:
- shard-dg1: NOTRUN -> [SKIP][16] ([i915#4812])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@gem_exec_schedule@preempt-queue.html
* igt@gem_exec_suspend@basic-s0@smem:
- shard-rkl: [PASS][17] -> [INCOMPLETE][18] ([i915#13356]) +1 other test incomplete
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-5/igt@gem_exec_suspend@basic-s0@smem.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-4/igt@gem_exec_suspend@basic-s0@smem.html
* igt@gem_fenced_exec_thrash@no-spare-fences-busy:
- shard-dg1: NOTRUN -> [SKIP][19] ([i915#4860])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@gem_fenced_exec_thrash@no-spare-fences-busy.html
* igt@gem_lmem_swapping@heavy-random:
- shard-glk: NOTRUN -> [SKIP][20] ([i915#4613]) +4 other tests skip
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk6/igt@gem_lmem_swapping@heavy-random.html
* igt@gem_lmem_swapping@massive:
- shard-tglu: NOTRUN -> [SKIP][21] ([i915#4613]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@gem_lmem_swapping@massive.html
* igt@gem_lmem_swapping@parallel-random-verify:
- shard-rkl: NOTRUN -> [SKIP][22] ([i915#4613]) +2 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-3/igt@gem_lmem_swapping@parallel-random-verify.html
* igt@gem_lmem_swapping@parallel-random-verify-ccs:
- shard-tglu-1: NOTRUN -> [SKIP][23] ([i915#4613]) +2 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
* igt@gem_mmap_gtt@coherency:
- shard-dg2: NOTRUN -> [SKIP][24] ([i915#4077])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@gem_mmap_gtt@coherency.html
* igt@gem_mmap_wc@write-prefaulted:
- shard-dg1: NOTRUN -> [SKIP][25] ([i915#4083]) +2 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@gem_mmap_wc@write-prefaulted.html
* igt@gem_pread@exhaustion:
- shard-glk: NOTRUN -> [WARN][26] ([i915#2658])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk3/igt@gem_pread@exhaustion.html
* igt@gem_pwrite@basic-exhaustion:
- shard-tglu-1: NOTRUN -> [WARN][27] ([i915#2658])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@gem_pwrite@basic-exhaustion.html
* igt@gem_pwrite@basic-random:
- shard-rkl: NOTRUN -> [SKIP][28] ([i915#3282]) +2 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@gem_pwrite@basic-random.html
* igt@gem_pxp@protected-raw-src-copy-not-readible:
- shard-dg1: NOTRUN -> [SKIP][29] ([i915#4270])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@gem_pxp@protected-raw-src-copy-not-readible.html
* igt@gem_set_tiling_vs_blt@untiled-to-tiled:
- shard-dg1: NOTRUN -> [SKIP][30] ([i915#4079])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html
* igt@gem_tiled_fence_blits@basic:
- shard-dg1: NOTRUN -> [SKIP][31] ([i915#4077])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@gem_tiled_fence_blits@basic.html
* igt@gem_userptr_blits@create-destroy-unsync:
- shard-tglu: NOTRUN -> [SKIP][32] ([i915#3297])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@gem_userptr_blits@create-destroy-unsync.html
* igt@gem_userptr_blits@forbidden-operations:
- shard-rkl: NOTRUN -> [SKIP][33] ([i915#3282] / [i915#3297])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@gem_userptr_blits@forbidden-operations.html
* igt@gem_userptr_blits@relocations:
- shard-rkl: NOTRUN -> [SKIP][34] ([i915#3281] / [i915#3297])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@gem_userptr_blits@relocations.html
* igt@gem_userptr_blits@unsync-unmap-after-close:
- shard-rkl: NOTRUN -> [SKIP][35] ([i915#3297])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@gem_userptr_blits@unsync-unmap-after-close.html
* igt@gen9_exec_parse@allowed-all:
- shard-glk: NOTRUN -> [ABORT][36] ([i915#5566])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk5/igt@gen9_exec_parse@allowed-all.html
* igt@gen9_exec_parse@bb-oversize:
- shard-rkl: NOTRUN -> [SKIP][37] ([i915#2527]) +2 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@gen9_exec_parse@bb-oversize.html
* igt@gen9_exec_parse@bb-start-cmd:
- shard-tglu-1: NOTRUN -> [SKIP][38] ([i915#2527] / [i915#2856])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@gen9_exec_parse@bb-start-cmd.html
* igt@gen9_exec_parse@bb-start-out:
- shard-dg1: NOTRUN -> [SKIP][39] ([i915#2527]) +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@gen9_exec_parse@bb-start-out.html
* igt@gen9_exec_parse@shadow-peek:
- shard-tglu: NOTRUN -> [SKIP][40] ([i915#2527] / [i915#2856])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@gen9_exec_parse@shadow-peek.html
* igt@i915_module_load@fault-injection:
- shard-dg1: NOTRUN -> [ABORT][41] ([i915#11815] / [i915#15481]) +1 other test abort
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@i915_module_load@fault-injection.html
- shard-glk10: NOTRUN -> [ABORT][42] ([i915#15342] / [i915#15481])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk10/igt@i915_module_load@fault-injection.html
* igt@i915_module_load@fault-injection@i915_driver_hw_probe:
- shard-glk10: NOTRUN -> [ABORT][43] ([i915#15481])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk10/igt@i915_module_load@fault-injection@i915_driver_hw_probe.html
* igt@i915_module_load@fault-injection@i915_driver_mmio_probe:
- shard-dg1: NOTRUN -> [INCOMPLETE][44] ([i915#15481])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@i915_module_load@fault-injection@i915_driver_mmio_probe.html
* igt@i915_module_load@fault-injection@intel_connector_register:
- shard-glk10: NOTRUN -> [DMESG-WARN][45] ([i915#15342])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk10/igt@i915_module_load@fault-injection@intel_connector_register.html
* igt@i915_module_load@fault-injection@intel_gt_init-enodev:
- shard-glk10: NOTRUN -> [SKIP][46] +170 other tests skip
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk10/igt@i915_module_load@fault-injection@intel_gt_init-enodev.html
* igt@i915_pm_freq_api@freq-reset-multiple:
- shard-tglu-1: NOTRUN -> [SKIP][47] ([i915#8399])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@i915_pm_freq_api@freq-reset-multiple.html
* igt@i915_pm_freq_api@freq-suspend:
- shard-rkl: NOTRUN -> [SKIP][48] ([i915#8399])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@i915_pm_freq_api@freq-suspend.html
* igt@i915_pm_sseu@full-enable:
- shard-rkl: NOTRUN -> [SKIP][49] ([i915#4387])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@i915_pm_sseu@full-enable.html
* igt@i915_query@query-topology-unsupported:
- shard-rkl: NOTRUN -> [SKIP][50] +14 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@i915_query@query-topology-unsupported.html
* igt@i915_suspend@basic-s3-without-i915:
- shard-tglu: NOTRUN -> [INCOMPLETE][51] ([i915#4817] / [i915#7443])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@i915_suspend@basic-s3-without-i915.html
* igt@i915_suspend@fence-restore-tiled2untiled:
- shard-glk: NOTRUN -> [INCOMPLETE][52] ([i915#4817])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk9/igt@i915_suspend@fence-restore-tiled2untiled.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
- shard-glk10: NOTRUN -> [SKIP][53] ([i915#1769])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk10/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
* igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
- shard-glk: NOTRUN -> [SKIP][54] ([i915#1769])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk3/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-270:
- shard-tglu-1: NOTRUN -> [SKIP][55] ([i915#5286]) +2 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-90:
- shard-rkl: NOTRUN -> [SKIP][56] ([i915#5286]) +3 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-tglu: NOTRUN -> [SKIP][57] ([i915#5286]) +2 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@linear-32bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][58] ([i915#3638])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_big_fb@linear-32bpp-rotate-270.html
* igt@kms_big_fb@linear-8bpp-rotate-90:
- shard-dg2: NOTRUN -> [SKIP][59]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@kms_big_fb@linear-8bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-90:
- shard-dg2: NOTRUN -> [SKIP][60] ([i915#4538] / [i915#5190])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-270:
- shard-rkl: NOTRUN -> [SKIP][61] ([i915#3638])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-3/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][62] ([i915#4538]) +1 other test skip
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
- shard-tglu: NOTRUN -> [SKIP][63] +33 other tests skip
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][64] ([i915#10307] / [i915#10434] / [i915#6095]) +2 other tests skip
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-4/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1.html
* igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [SKIP][65] ([i915#6095]) +24 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-1.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][66] ([i915#14098] / [i915#6095]) +40 other tests skip
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-4/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2.html
* igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2:
- shard-glk: NOTRUN -> [SKIP][67] +304 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk9/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2.html
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-mc-ccs@pipe-d-dp-3:
- shard-dg2: NOTRUN -> [SKIP][68] ([i915#6095]) +43 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-11/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-mc-ccs@pipe-d-dp-3.html
* igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs@pipe-a-dp-3:
- shard-dg2: NOTRUN -> [SKIP][69] ([i915#10307] / [i915#6095]) +105 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-11/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs@pipe-a-dp-3.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs:
- shard-tglu-1: NOTRUN -> [SKIP][70] ([i915#12313]) +2 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-mc-ccs:
- shard-tglu: NOTRUN -> [SKIP][71] ([i915#6095]) +34 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-mc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][72] ([i915#14544] / [i915#6095])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][73] ([i915#6095]) +64 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][74] ([i915#14098] / [i915#14544] / [i915#6095])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
- shard-glk: NOTRUN -> [INCOMPLETE][75] ([i915#12796] / [i915#14694]) +1 other test incomplete
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk1/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-tglu: NOTRUN -> [SKIP][76] ([i915#12313])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
* igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-a-hdmi-a-3:
- shard-dg1: NOTRUN -> [SKIP][77] ([i915#6095]) +220 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-13/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-a-hdmi-a-3.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-rkl: NOTRUN -> [SKIP][78] ([i915#3742])
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][79] ([i915#13781]) +3 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-4/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1.html
* igt@kms_chamelium_audio@dp-audio-edid:
- shard-tglu: NOTRUN -> [SKIP][80] ([i915#11151] / [i915#7828]) +3 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_chamelium_audio@dp-audio-edid.html
* igt@kms_chamelium_edid@dp-edid-stress-resolution-4k:
- shard-dg1: NOTRUN -> [SKIP][81] ([i915#11151] / [i915#7828])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_chamelium_edid@dp-edid-stress-resolution-4k.html
* igt@kms_chamelium_frames@hdmi-crc-single:
- shard-rkl: NOTRUN -> [SKIP][82] ([i915#11151] / [i915#7828]) +6 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_chamelium_frames@hdmi-crc-single.html
* igt@kms_chamelium_hpd@dp-hpd-storm-disable:
- shard-tglu-1: NOTRUN -> [SKIP][83] ([i915#11151] / [i915#7828]) +2 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_chamelium_hpd@dp-hpd-storm-disable.html
* igt@kms_color_pipeline@plane-lut3d-green-only:
- shard-tglu: NOTRUN -> [SKIP][84] ([i915#15523]) +4 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_color_pipeline@plane-lut3d-green-only.html
* igt@kms_content_protection@dp-mst-lic-type-0-hdcp14:
- shard-tglu: NOTRUN -> [SKIP][85] ([i915#15330])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-tglu-1: NOTRUN -> [SKIP][86] ([i915#15330] / [i915#3116] / [i915#3299]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@legacy@pipe-a-dp-3:
- shard-dg2: NOTRUN -> [FAIL][87] ([i915#7173]) +1 other test fail
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-11/igt@kms_content_protection@legacy@pipe-a-dp-3.html
* igt@kms_content_protection@lic-type-0-hdcp14:
- shard-dg1: NOTRUN -> [SKIP][88] ([i915#6944])
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_content_protection@lic-type-0-hdcp14.html
* igt@kms_content_protection@lic-type-1:
- shard-rkl: NOTRUN -> [SKIP][89] ([i915#6944] / [i915#9424])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_content_protection@lic-type-1.html
* igt@kms_content_protection@mei-interface:
- shard-tglu: NOTRUN -> [SKIP][90] ([i915#6944] / [i915#9424])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_content_protection@mei-interface.html
* igt@kms_content_protection@uevent@pipe-a-dp-3:
- shard-dg2: NOTRUN -> [FAIL][91] ([i915#1339] / [i915#7173])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-11/igt@kms_content_protection@uevent@pipe-a-dp-3.html
* igt@kms_cursor_crc@cursor-offscreen-32x32:
- shard-tglu-1: NOTRUN -> [SKIP][92] ([i915#3555]) +3 other tests skip
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_cursor_crc@cursor-offscreen-32x32.html
* igt@kms_cursor_crc@cursor-offscreen-512x170:
- shard-dg1: NOTRUN -> [SKIP][93] ([i915#13049])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_cursor_crc@cursor-offscreen-512x170.html
* igt@kms_cursor_crc@cursor-offscreen-max-size:
- shard-tglu: NOTRUN -> [SKIP][94] ([i915#3555]) +2 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_cursor_crc@cursor-offscreen-max-size.html
* igt@kms_cursor_crc@cursor-random-256x85:
- shard-rkl: NOTRUN -> [FAIL][95] ([i915#13566]) +1 other test fail
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-3/igt@kms_cursor_crc@cursor-random-256x85.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-tglu-1: NOTRUN -> [SKIP][96] ([i915#13049]) +1 other test skip
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_crc@cursor-random-512x512:
- shard-tglu: NOTRUN -> [SKIP][97] ([i915#13049])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_cursor_crc@cursor-random-512x512.html
* igt@kms_cursor_crc@cursor-rapid-movement-max-size:
- shard-rkl: NOTRUN -> [SKIP][98] ([i915#3555]) +2 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html
* igt@kms_cursor_crc@cursor-sliding-256x256:
- shard-dg1: [PASS][99] -> [DMESG-WARN][100] ([i915#4423]) +1 other test dmesg-warn
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg1-16/igt@kms_cursor_crc@cursor-sliding-256x256.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-12/igt@kms_cursor_crc@cursor-sliding-256x256.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic:
- shard-snb: [PASS][101] -> [SKIP][102]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-snb5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-snb6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-dg2: NOTRUN -> [SKIP][103] ([i915#4103] / [i915#4213])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc:
- shard-rkl: NOTRUN -> [SKIP][104] ([i915#3555] / [i915#3804])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][105] ([i915#3804])
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html
* igt@kms_dp_aux_dev:
- shard-dg2: [PASS][106] -> [SKIP][107] ([i915#1257])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-11/igt@kms_dp_aux_dev.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-8/igt@kms_dp_aux_dev.html
- shard-rkl: NOTRUN -> [SKIP][108] ([i915#1257])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-7/igt@kms_dp_aux_dev.html
* igt@kms_dp_link_training@non-uhbr-mst:
- shard-tglu: NOTRUN -> [SKIP][109] ([i915#13749])
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_dp_link_training@non-uhbr-mst.html
* igt@kms_dp_link_training@uhbr-sst:
- shard-dg1: NOTRUN -> [SKIP][110] ([i915#13748])
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_dp_link_training@uhbr-sst.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-rkl: NOTRUN -> [SKIP][111] ([i915#3840])
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-3/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-with-formats:
- shard-tglu: NOTRUN -> [SKIP][112] ([i915#3555] / [i915#3840])
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_dsc@dsc-with-formats.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-rkl: NOTRUN -> [INCOMPLETE][113] ([i915#9878])
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-3/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_fbcon_fbt@psr-suspend:
- shard-tglu-1: NOTRUN -> [SKIP][114] ([i915#3469])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_feature_discovery@chamelium:
- shard-tglu-1: NOTRUN -> [SKIP][115] ([i915#2065] / [i915#4854])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@display-3x:
- shard-rkl: NOTRUN -> [SKIP][116] ([i915#1839])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_feature_discovery@display-3x.html
* igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
- shard-dg1: NOTRUN -> [SKIP][117] ([i915#9934]) +1 other test skip
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_flip@2x-flip-vs-dpms-on-nop:
- shard-tglu: NOTRUN -> [SKIP][118] ([i915#9934])
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_flip@2x-flip-vs-dpms-on-nop.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2:
- shard-glk: NOTRUN -> [FAIL][119] ([i915#13027]) +1 other test fail
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk3/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2.html
* igt@kms_flip@2x-flip-vs-fences:
- shard-tglu-1: NOTRUN -> [SKIP][120] ([i915#3637] / [i915#9934]) +2 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_flip@2x-flip-vs-fences.html
* igt@kms_flip@2x-flip-vs-modeset:
- shard-tglu: NOTRUN -> [SKIP][121] ([i915#3637] / [i915#9934]) +3 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_flip@2x-flip-vs-modeset.html
* igt@kms_flip@2x-plain-flip-interruptible:
- shard-rkl: NOTRUN -> [SKIP][122] ([i915#9934]) +4 other tests skip
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-3/igt@kms_flip@2x-plain-flip-interruptible.html
* igt@kms_flip@flip-vs-fences-interruptible:
- shard-dg1: NOTRUN -> [SKIP][123] ([i915#8381])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_flip@flip-vs-fences-interruptible.html
* igt@kms_flip@flip-vs-suspend:
- shard-glk: NOTRUN -> [INCOMPLETE][124] ([i915#12745] / [i915#4839])
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk9/igt@kms_flip@flip-vs-suspend.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-rkl: [PASS][125] -> [INCOMPLETE][126] ([i915#6113])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-5/igt@kms_flip@flip-vs-suspend-interruptible.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a2:
- shard-rkl: NOTRUN -> [INCOMPLETE][127] ([i915#6113])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a2.html
* igt@kms_flip@flip-vs-suspend@a-hdmi-a1:
- shard-glk: NOTRUN -> [INCOMPLETE][128] ([i915#12745])
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk9/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
- shard-tglu-1: NOTRUN -> [SKIP][129] ([i915#2587] / [i915#2672]) +1 other test skip
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling:
- shard-tglu-1: NOTRUN -> [SKIP][130] ([i915#2672] / [i915#3555]) +1 other test skip
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
- shard-rkl: NOTRUN -> [SKIP][131] ([i915#2672] / [i915#3555])
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-5/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][132] ([i915#2672])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-5/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
- shard-dg1: NOTRUN -> [SKIP][133] ([i915#2587] / [i915#2672] / [i915#3555])
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode:
- shard-dg1: NOTRUN -> [SKIP][134] ([i915#2587] / [i915#2672])
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling:
- shard-tglu: NOTRUN -> [SKIP][135] ([i915#2672] / [i915#3555]) +1 other test skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][136] ([i915#2587] / [i915#2672]) +1 other test skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-mmap-wc:
- shard-dg1: NOTRUN -> [SKIP][137] ([i915#15104])
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt:
- shard-dg1: NOTRUN -> [SKIP][138] +11 other tests skip
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-tglu-1: NOTRUN -> [SKIP][139] +27 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-glk: NOTRUN -> [INCOMPLETE][140] ([i915#10056])
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk5/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][141] ([i915#8708]) +1 other test skip
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-blt:
- shard-tglu: NOTRUN -> [SKIP][142] ([i915#15102]) +9 other tests skip
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt:
- shard-dg1: NOTRUN -> [SKIP][143] ([i915#15102] / [i915#3458])
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][144] ([i915#8708])
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt:
- shard-rkl: NOTRUN -> [SKIP][145] ([i915#1825]) +31 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite:
- shard-dg2: NOTRUN -> [SKIP][146] ([i915#15102] / [i915#3458]) +1 other test skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html
* igt@kms_frontbuffer_tracking@pipe-fbc-rte:
- shard-rkl: NOTRUN -> [SKIP][147] ([i915#9766])
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
* igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-blt:
- shard-rkl: NOTRUN -> [SKIP][148] ([i915#15102]) +3 other tests skip
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-cpu:
- shard-dg1: NOTRUN -> [SKIP][149] ([i915#15102])
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite:
- shard-rkl: NOTRUN -> [SKIP][150] ([i915#15102] / [i915#3023]) +10 other tests skip
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-rgb565-draw-pwrite:
- shard-tglu-1: NOTRUN -> [SKIP][151] ([i915#15102]) +12 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-rgb565-draw-pwrite.html
* igt@kms_hdr@invalid-hdr:
- shard-tglu: NOTRUN -> [SKIP][152] ([i915#3555] / [i915#8228]) +1 other test skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_hdr@invalid-hdr.html
* igt@kms_hdr@static-toggle:
- shard-tglu-1: NOTRUN -> [SKIP][153] ([i915#3555] / [i915#8228])
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_hdr@static-toggle.html
* igt@kms_hdr@static-toggle-suspend:
- shard-dg2: [PASS][154] -> [SKIP][155] ([i915#3555] / [i915#8228]) +1 other test skip
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-11/igt@kms_hdr@static-toggle-suspend.html
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-6/igt@kms_hdr@static-toggle-suspend.html
- shard-rkl: NOTRUN -> [SKIP][156] ([i915#3555] / [i915#8228])
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-5/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_joiner@basic-big-joiner:
- shard-rkl: NOTRUN -> [SKIP][157] ([i915#15460])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_joiner@basic-big-joiner.html
* igt@kms_joiner@basic-force-big-joiner:
- shard-dg2: [PASS][158] -> [SKIP][159] ([i915#15459])
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-11/igt@kms_joiner@basic-force-big-joiner.html
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-8/igt@kms_joiner@basic-force-big-joiner.html
* igt@kms_joiner@basic-force-ultra-joiner:
- shard-rkl: NOTRUN -> [SKIP][160] ([i915#15458])
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-5/igt@kms_joiner@basic-force-ultra-joiner.html
* igt@kms_joiner@invalid-modeset-ultra-joiner:
- shard-dg2: NOTRUN -> [SKIP][161] ([i915#15458])
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@kms_joiner@invalid-modeset-ultra-joiner.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-rkl: NOTRUN -> [SKIP][162] ([i915#1839] / [i915#4816])
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- shard-glk: NOTRUN -> [INCOMPLETE][163] ([i915#12756] / [i915#13409] / [i915#13476])
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk3/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_pipe_crc_basic@suspend-read-crc@pipe-b-hdmi-a-2:
- shard-glk: NOTRUN -> [INCOMPLETE][164] ([i915#13409] / [i915#13476])
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk3/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-b-hdmi-a-2.html
* igt@kms_plane_alpha_blend@alpha-opaque-fb:
- shard-glk: NOTRUN -> [FAIL][165] ([i915#10647] / [i915#12169])
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk5/igt@kms_plane_alpha_blend@alpha-opaque-fb.html
* igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1:
- shard-glk: NOTRUN -> [FAIL][166] ([i915#10647]) +1 other test fail
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk5/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1.html
* igt@kms_plane_alpha_blend@constant-alpha-max:
- shard-glk10: NOTRUN -> [FAIL][167] ([i915#10647] / [i915#12169])
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk10/igt@kms_plane_alpha_blend@constant-alpha-max.html
* igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1:
- shard-glk10: NOTRUN -> [FAIL][168] ([i915#10647]) +1 other test fail
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk10/igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1.html
* igt@kms_plane_multiple@2x-tiling-none:
- shard-rkl: NOTRUN -> [SKIP][169] ([i915#13958])
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_plane_multiple@2x-tiling-none.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-tglu-1: NOTRUN -> [SKIP][170] ([i915#13958]) +1 other test skip
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_plane_scaling@intel-max-src-size:
- shard-rkl: NOTRUN -> [SKIP][171] ([i915#6953])
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_plane_scaling@intel-max-src-size.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-a:
- shard-rkl: NOTRUN -> [SKIP][172] ([i915#15329]) +11 other tests skip
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-5/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-a.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation:
- shard-tglu: NOTRUN -> [SKIP][173] ([i915#15329] / [i915#3555])
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b:
- shard-tglu: NOTRUN -> [SKIP][174] ([i915#15329]) +3 other tests skip
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html
* igt@kms_pm_backlight@brightness-with-dpms:
- shard-dg2: NOTRUN -> [SKIP][175] ([i915#12343])
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@kms_pm_backlight@brightness-with-dpms.html
* igt@kms_pm_backlight@fade-with-dpms:
- shard-tglu-1: NOTRUN -> [SKIP][176] ([i915#9812])
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_pm_backlight@fade-with-dpms.html
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-tglu-1: NOTRUN -> [SKIP][177] ([i915#9685])
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_pm_dc@dc3co-vpb-simulation.html
* igt@kms_pm_dc@dc6-dpms:
- shard-rkl: NOTRUN -> [FAIL][178] ([i915#9295])
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-dg1: NOTRUN -> [SKIP][179] ([i915#9340])
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-rkl: [PASS][180] -> [SKIP][181] ([i915#15073]) +1 other test skip
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-dg1: [PASS][182] -> [SKIP][183] ([i915#15073]) +1 other test skip
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg1-14/igt@kms_pm_rpm@modeset-lpsp.html
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-19/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress:
- shard-dg2: [PASS][184] -> [SKIP][185] ([i915#15073]) +1 other test skip
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-8/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-4/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-rkl: NOTRUN -> [SKIP][186] ([i915#15073])
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@kms_pm_rpm@system-suspend-modeset:
- shard-rkl: NOTRUN -> [ABORT][187] ([i915#15132])
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_pm_rpm@system-suspend-modeset.html
* igt@kms_prime@basic-modeset-hybrid:
- shard-tglu: NOTRUN -> [SKIP][188] ([i915#6524])
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_prime@basic-modeset-hybrid.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
- shard-tglu-1: NOTRUN -> [SKIP][189] ([i915#11520]) +5 other tests skip
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
- shard-rkl: NOTRUN -> [SKIP][190] ([i915#11520]) +5 other tests skip
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
- shard-tglu: NOTRUN -> [SKIP][191] ([i915#11520]) +3 other tests skip
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area:
- shard-dg2: NOTRUN -> [SKIP][192] ([i915#11520])
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf:
- shard-glk10: NOTRUN -> [SKIP][193] ([i915#11520]) +3 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk10/igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf.html
- shard-dg1: NOTRUN -> [SKIP][194] ([i915#11520]) +1 other test skip
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area:
- shard-glk: NOTRUN -> [SKIP][195] ([i915#11520]) +7 other tests skip
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk1/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr@fbc-pr-cursor-plane-onoff:
- shard-tglu-1: NOTRUN -> [SKIP][196] ([i915#9732]) +9 other tests skip
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_psr@fbc-pr-cursor-plane-onoff.html
* igt@kms_psr@fbc-psr2-sprite-render:
- shard-rkl: NOTRUN -> [SKIP][197] ([i915#1072] / [i915#9732]) +14 other tests skip
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_psr@fbc-psr2-sprite-render.html
* igt@kms_psr@pr-cursor-plane-onoff:
- shard-dg1: NOTRUN -> [SKIP][198] ([i915#1072] / [i915#9732]) +4 other tests skip
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_psr@pr-cursor-plane-onoff.html
* igt@kms_psr@psr-primary-render:
- shard-tglu: NOTRUN -> [SKIP][199] ([i915#9732]) +10 other tests skip
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_psr@psr-primary-render.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-rkl: NOTRUN -> [SKIP][200] ([i915#9685])
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_rotation_crc@multiplane-rotation:
- shard-glk: NOTRUN -> [INCOMPLETE][201] ([i915#15492])
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk6/igt@kms_rotation_crc@multiplane-rotation.html
* igt@kms_rotation_crc@primary-4-tiled-reflect-x-0:
- shard-tglu: NOTRUN -> [SKIP][202] ([i915#5289])
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_rotation_crc@primary-4-tiled-reflect-x-0.html
* igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free:
- shard-glk10: NOTRUN -> [ABORT][203] ([i915#13179]) +1 other test abort
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk10/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free.html
* igt@kms_setmode@invalid-clone-single-crtc-stealing:
- shard-dg1: NOTRUN -> [SKIP][204] ([i915#3555]) +1 other test skip
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-17/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-tglu-1: NOTRUN -> [SKIP][205] ([i915#8623])
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-tglu: NOTRUN -> [SKIP][206] ([i915#8623])
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_vblank@ts-continuation-suspend:
- shard-glk: NOTRUN -> [INCOMPLETE][207] ([i915#12276]) +1 other test incomplete
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-glk3/igt@kms_vblank@ts-continuation-suspend.html
* igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2:
- shard-rkl: [PASS][208] -> [INCOMPLETE][209] ([i915#12276]) +1 other test incomplete
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-3/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2.html
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2.html
* igt@kms_vrr@flipline:
- shard-rkl: NOTRUN -> [SKIP][210] ([i915#15243] / [i915#3555])
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_vrr@flipline.html
* igt@kms_vrr@max-min:
- shard-tglu: NOTRUN -> [SKIP][211] ([i915#9906])
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@kms_vrr@max-min.html
* igt@kms_vrr@seamless-rr-switch-vrr:
- shard-tglu-1: NOTRUN -> [SKIP][212] ([i915#9906])
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@kms_vrr@seamless-rr-switch-vrr.html
* igt@perf_pmu@module-unload:
- shard-tglu: NOTRUN -> [FAIL][213] ([i915#14433])
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@perf_pmu@module-unload.html
* igt@perf_pmu@rc6@other-idle-gt0:
- shard-tglu: NOTRUN -> [SKIP][214] ([i915#8516])
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-7/igt@perf_pmu@rc6@other-idle-gt0.html
* igt@sriov_basic@enable-vfs-autoprobe-on@numvfs-5:
- shard-tglu-1: NOTRUN -> [FAIL][215] ([i915#12910]) +9 other tests fail
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-1/igt@sriov_basic@enable-vfs-autoprobe-on@numvfs-5.html
#### Possible fixes ####
* igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0:
- shard-dg2: [INCOMPLETE][216] ([i915#13356]) -> [PASS][217]
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-1/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-1/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html
* igt@gem_ctx_isolation@preservation-s3@rcs0:
- shard-snb: [DMESG-WARN][218] ([i915#13899]) -> [PASS][219] +1 other test pass
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-snb7/igt@gem_ctx_isolation@preservation-s3@rcs0.html
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-snb5/igt@gem_ctx_isolation@preservation-s3@rcs0.html
* igt@gem_exec_big@single:
- shard-tglu: [ABORT][220] ([i915#11713]) -> [PASS][221]
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-tglu-2/igt@gem_exec_big@single.html
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-tglu-6/igt@gem_exec_big@single.html
* igt@gem_softpin@noreloc-s3:
- shard-rkl: [ABORT][222] ([i915#15131]) -> [PASS][223]
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-1/igt@gem_softpin@noreloc-s3.html
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-5/igt@gem_softpin@noreloc-s3.html
* igt@i915_pm_freq_api@freq-suspend@gt0:
- shard-dg2: [INCOMPLETE][224] ([i915#13356] / [i915#13820]) -> [PASS][225] +1 other test pass
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-3/igt@i915_pm_freq_api@freq-suspend@gt0.html
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@i915_pm_freq_api@freq-suspend@gt0.html
* igt@i915_pm_rpm@reg-read-ioctl:
- shard-dg1: [DMESG-WARN][226] ([i915#4391] / [i915#4423]) -> [PASS][227]
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg1-13/igt@i915_pm_rpm@reg-read-ioctl.html
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-14/igt@i915_pm_rpm@reg-read-ioctl.html
* igt@i915_pm_rpm@system-suspend:
- shard-rkl: [INCOMPLETE][228] ([i915#13356]) -> [PASS][229]
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@i915_pm_rpm@system-suspend.html
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@i915_pm_rpm@system-suspend.html
* igt@i915_power@sanity:
- shard-mtlp: [SKIP][230] ([i915#7984]) -> [PASS][231]
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-mtlp-2/igt@i915_power@sanity.html
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-mtlp-7/igt@i915_power@sanity.html
* igt@i915_suspend@sysfs-reader:
- shard-rkl: [ABORT][232] ([i915#15140]) -> [PASS][233]
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-1/igt@i915_suspend@sysfs-reader.html
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-3/igt@i915_suspend@sysfs-reader.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc:
- shard-rkl: [INCOMPLETE][234] ([i915#12796]) -> [PASS][235]
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_color@deep-color:
- shard-dg2: [SKIP][236] ([i915#12655] / [i915#3555]) -> [PASS][237]
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-4/igt@kms_color@deep-color.html
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-11/igt@kms_color@deep-color.html
* igt@kms_dp_linktrain_fallback@dp-fallback:
- shard-dg2: [SKIP][238] ([i915#13707]) -> [PASS][239]
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-8/igt@kms_dp_linktrain_fallback@dp-fallback.html
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-11/igt@kms_dp_linktrain_fallback@dp-fallback.html
* igt@kms_hdr@bpc-switch:
- shard-rkl: [SKIP][240] ([i915#3555] / [i915#8228]) -> [PASS][241]
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_hdr@bpc-switch.html
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_hdr@bpc-switch.html
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-dg2: [SKIP][242] ([i915#15459]) -> [PASS][243]
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-11/igt@kms_joiner@invalid-modeset-force-big-joiner.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- shard-rkl: [INCOMPLETE][244] ([i915#12756] / [i915#13476]) -> [PASS][245]
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-4/igt@kms_pipe_crc_basic@suspend-read-crc.html
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-7/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-2:
- shard-rkl: [INCOMPLETE][246] ([i915#13476]) -> [PASS][247]
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-4/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-2.html
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-7/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-2.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20:
- shard-dg1: [DMESG-WARN][248] ([i915#4423]) -> [PASS][249]
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg1-13/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20.html
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-14/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20.html
* igt@kms_pm_rpm@dpms-non-lpsp:
- shard-dg1: [SKIP][250] ([i915#15073]) -> [PASS][251]
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg1-14/igt@kms_pm_rpm@dpms-non-lpsp.html
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-12/igt@kms_pm_rpm@dpms-non-lpsp.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-rkl: [SKIP][252] ([i915#15073]) -> [PASS][253] +1 other test pass
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp.html
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-3/igt@kms_pm_rpm@modeset-non-lpsp.html
* igt@kms_pm_rpm@system-suspend-idle:
- shard-dg2: [INCOMPLETE][254] ([i915#14419]) -> [PASS][255]
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-5/igt@kms_pm_rpm@system-suspend-idle.html
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-7/igt@kms_pm_rpm@system-suspend-idle.html
#### Warnings ####
* igt@gem_ccs@ctrl-surf-copy-new-ctx:
- shard-rkl: [SKIP][256] ([i915#9323]) -> [SKIP][257] ([i915#14544] / [i915#9323])
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
* igt@gem_exec_reloc@basic-wc:
- shard-rkl: [SKIP][258] ([i915#14544] / [i915#3281]) -> [SKIP][259] ([i915#3281]) +1 other test skip
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@gem_exec_reloc@basic-wc.html
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@gem_exec_reloc@basic-wc.html
* igt@gem_exec_reloc@basic-write-wc:
- shard-rkl: [SKIP][260] ([i915#3281]) -> [SKIP][261] ([i915#14544] / [i915#3281]) +2 other tests skip
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@gem_exec_reloc@basic-write-wc.html
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@gem_exec_reloc@basic-write-wc.html
* igt@gem_lmem_swapping@heavy-random:
- shard-rkl: [SKIP][262] ([i915#4613]) -> [SKIP][263] ([i915#14544] / [i915#4613])
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@gem_lmem_swapping@heavy-random.html
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@gem_lmem_swapping@heavy-random.html
* igt@gem_lmem_swapping@massive:
- shard-rkl: [SKIP][264] ([i915#14544] / [i915#4613]) -> [SKIP][265] ([i915#4613])
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@gem_lmem_swapping@massive.html
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@gem_lmem_swapping@massive.html
* igt@gem_media_vme:
- shard-rkl: [SKIP][266] ([i915#284]) -> [SKIP][267] ([i915#14544] / [i915#284])
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@gem_media_vme.html
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@gem_media_vme.html
* igt@gem_tiled_partial_pwrite_pread@writes:
- shard-rkl: [SKIP][268] ([i915#3282]) -> [SKIP][269] ([i915#14544] / [i915#3282]) +2 other tests skip
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@gem_tiled_partial_pwrite_pread@writes.html
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@gem_tiled_partial_pwrite_pread@writes.html
* igt@gem_userptr_blits@access-control:
- shard-rkl: [SKIP][270] ([i915#3297]) -> [SKIP][271] ([i915#14544] / [i915#3297])
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@gem_userptr_blits@access-control.html
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@gem_userptr_blits@access-control.html
* igt@gen7_exec_parse@bitmasks:
- shard-rkl: [SKIP][272] ([i915#14544]) -> [SKIP][273] +3 other tests skip
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@gen7_exec_parse@bitmasks.html
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@gen7_exec_parse@bitmasks.html
* igt@gen9_exec_parse@secure-batches:
- shard-rkl: [SKIP][274] ([i915#2527]) -> [SKIP][275] ([i915#14544] / [i915#2527])
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@gen9_exec_parse@secure-batches.html
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@gen9_exec_parse@secure-batches.html
* igt@i915_query@hwconfig_table:
- shard-rkl: [SKIP][276] ([i915#6245]) -> [SKIP][277] ([i915#14544] / [i915#6245])
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@i915_query@hwconfig_table.html
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@i915_query@hwconfig_table.html
* igt@intel_hwmon@hwmon-read:
- shard-rkl: [SKIP][278] ([i915#7707]) -> [SKIP][279] ([i915#14544] / [i915#7707])
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@intel_hwmon@hwmon-read.html
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@intel_hwmon@hwmon-read.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-rkl: [SKIP][280] ([i915#5286]) -> [SKIP][281] ([i915#14544] / [i915#5286]) +1 other test skip
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
- shard-rkl: [SKIP][282] ([i915#14544] / [i915#5286]) -> [SKIP][283] ([i915#5286])
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
* igt@kms_big_fb@linear-64bpp-rotate-90:
- shard-rkl: [SKIP][284] ([i915#14544] / [i915#3638]) -> [SKIP][285] ([i915#3638])
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_big_fb@linear-64bpp-rotate-90.html
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_big_fb@linear-64bpp-rotate-90.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs:
- shard-rkl: [SKIP][286] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][287] ([i915#14098] / [i915#6095]) +1 other test skip
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs.html
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2:
- shard-rkl: [SKIP][288] ([i915#6095]) -> [SKIP][289] ([i915#14544] / [i915#6095]) +4 other tests skip
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2.html
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2:
- shard-rkl: [SKIP][290] ([i915#14098] / [i915#6095]) -> [SKIP][291] ([i915#14098] / [i915#14544] / [i915#6095]) +6 other tests skip
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2.html
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2.html
* igt@kms_cdclk@mode-transition:
- shard-rkl: [SKIP][292] ([i915#3742]) -> [SKIP][293] ([i915#14544] / [i915#3742])
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_cdclk@mode-transition.html
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_cdclk@mode-transition.html
* igt@kms_chamelium_hpd@hdmi-hpd-after-suspend:
- shard-rkl: [SKIP][294] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][295] ([i915#11151] / [i915#7828]) +1 other test skip
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html
* igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe:
- shard-rkl: [SKIP][296] ([i915#11151] / [i915#7828]) -> [SKIP][297] ([i915#11151] / [i915#14544] / [i915#7828]) +3 other tests skip
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe.html
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe.html
* igt@kms_content_protection@atomic-dpms:
- shard-dg2: [SKIP][298] ([i915#6944] / [i915#7118] / [i915#9424]) -> [FAIL][299] ([i915#7173]) +1 other test fail
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-6/igt@kms_content_protection@atomic-dpms.html
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-11/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@srm:
- shard-rkl: [SKIP][300] ([i915#6944] / [i915#7118]) -> [SKIP][301] ([i915#14544] / [i915#6944] / [i915#7118])
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_content_protection@srm.html
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_content_protection@srm.html
* igt@kms_content_protection@uevent:
- shard-dg2: [SKIP][302] ([i915#6944] / [i915#7118] / [i915#9424]) -> [FAIL][303] ([i915#1339] / [i915#7173])
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-8/igt@kms_content_protection@uevent.html
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-11/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-rkl: [SKIP][304] ([i915#13049]) -> [SKIP][305] ([i915#13049] / [i915#14544])
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_cursor_crc@cursor-onscreen-512x512.html
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-rkl: [SKIP][306] ([i915#13049] / [i915#14544]) -> [SKIP][307] ([i915#13049])
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_cursor_crc@cursor-random-512x170.html
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_crc@cursor-rapid-movement-32x32:
- shard-rkl: [SKIP][308] ([i915#3555]) -> [SKIP][309] ([i915#14544] / [i915#3555])
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- shard-rkl: [SKIP][310] ([i915#4103]) -> [SKIP][311] ([i915#14544] / [i915#4103])
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_feature_discovery@chamelium:
- shard-rkl: [SKIP][312] ([i915#14544] / [i915#4854]) -> [SKIP][313] ([i915#4854])
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_feature_discovery@chamelium.html
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_feature_discovery@chamelium.html
* igt@kms_flip@2x-flip-vs-dpms:
- shard-rkl: [SKIP][314] ([i915#9934]) -> [SKIP][315] ([i915#14544] / [i915#9934]) +3 other tests skip
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-5/igt@kms_flip@2x-flip-vs-dpms.html
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_flip@2x-flip-vs-dpms.html
* igt@kms_flip@2x-modeset-vs-vblank-race:
- shard-rkl: [SKIP][316] ([i915#14544] / [i915#9934]) -> [SKIP][317] ([i915#9934])
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_flip@2x-modeset-vs-vblank-race.html
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_flip@2x-modeset-vs-vblank-race.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling:
- shard-rkl: [SKIP][318] ([i915#2672] / [i915#3555]) -> [SKIP][319] ([i915#14544] / [i915#2672] / [i915#3555]) +1 other test skip
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-valid-mode:
- shard-rkl: [SKIP][320] ([i915#2672]) -> [SKIP][321] ([i915#14544] / [i915#2672]) +1 other test skip
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-valid-mode.html
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render:
- shard-rkl: [SKIP][322] ([i915#1825]) -> [SKIP][323] ([i915#14544] / [i915#1825]) +14 other tests skip
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-cpu:
- shard-rkl: [SKIP][324] ([i915#14544] / [i915#15102]) -> [SKIP][325] ([i915#15102])
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-cpu.html
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt:
- shard-dg1: [SKIP][326] ([i915#15102] / [i915#3458]) -> [SKIP][327] ([i915#15102] / [i915#3458] / [i915#4423])
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt.html
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-19/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
- shard-rkl: [SKIP][328] ([i915#15102] / [i915#3023]) -> [SKIP][329] ([i915#14544] / [i915#15102] / [i915#3023]) +5 other tests skip
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-rkl: [SKIP][330] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][331] ([i915#15102] / [i915#3023]) +2 other tests skip
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt.html
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-onoff:
- shard-rkl: [SKIP][332] ([i915#14544] / [i915#1825]) -> [SKIP][333] ([i915#1825]) +2 other tests skip
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-onoff.html
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
- shard-dg2: [SKIP][334] ([i915#15102] / [i915#3458]) -> [SKIP][335] ([i915#10433] / [i915#15102] / [i915#3458]) +2 other tests skip
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg2-8/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html
* igt@kms_hdr@invalid-hdr:
- shard-rkl: [SKIP][336] ([i915#14544] / [i915#3555] / [i915#8228]) -> [SKIP][337] ([i915#3555] / [i915#8228])
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_hdr@invalid-hdr.html
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_hdr@invalid-hdr.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-rkl: [SKIP][338] ([i915#13958] / [i915#14544]) -> [SKIP][339] ([i915#13958])
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-yf.html
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_pm_backlight@fade-with-suspend:
- shard-rkl: [SKIP][340] ([i915#5354]) -> [SKIP][341] ([i915#14544] / [i915#5354])
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_pm_backlight@fade-with-suspend.html
[341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_pm_backlight@fade-with-suspend.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-rkl: [SKIP][342] ([i915#9340]) -> [SKIP][343] ([i915#3828])
[342]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-3/igt@kms_pm_lpsp@kms-lpsp.html
[343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-2/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area:
- shard-dg1: [SKIP][344] ([i915#11520]) -> [SKIP][345] ([i915#11520] / [i915#4423])
[344]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg1-17/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html
[345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-13/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
- shard-rkl: [SKIP][346] ([i915#11520] / [i915#14544]) -> [SKIP][347] ([i915#11520]) +1 other test skip
[346]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
[347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-1/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area:
- shard-rkl: [SKIP][348] ([i915#11520]) -> [SKIP][349] ([i915#11520] / [i915#14544]) +1 other test skip
[348]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html
[349]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html
* igt@kms_psr@fbc-psr-primary-mmap-cpu:
- shard-rkl: [SKIP][350] ([i915#1072] / [i915#9732]) -> [SKIP][351] ([i915#1072] / [i915#14544] / [i915#9732]) +6 other tests skip
[350]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_psr@fbc-psr-primary-mmap-cpu.html
[351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_psr@fbc-psr-primary-mmap-cpu.html
* igt@kms_psr@fbc-psr-suspend:
- shard-rkl: [SKIP][352] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][353] ([i915#1072] / [i915#9732]) +2 other tests skip
[352]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_psr@fbc-psr-suspend.html
[353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_psr@fbc-psr-suspend.html
* igt@kms_psr@fbc-psr2-dpms:
- shard-dg1: [SKIP][354] ([i915#1072] / [i915#4423] / [i915#9732]) -> [SKIP][355] ([i915#1072] / [i915#9732])
[354]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-dg1-17/igt@kms_psr@fbc-psr2-dpms.html
[355]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-dg1-19/igt@kms_psr@fbc-psr2-dpms.html
* igt@kms_rotation_crc@primary-4-tiled-reflect-x-0:
- shard-rkl: [SKIP][356] ([i915#14544] / [i915#5289]) -> [SKIP][357] ([i915#5289])
[356]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-6/igt@kms_rotation_crc@primary-4-tiled-reflect-x-0.html
[357]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-8/igt@kms_rotation_crc@primary-4-tiled-reflect-x-0.html
* igt@kms_vrr@lobf:
- shard-rkl: [SKIP][358] ([i915#11920]) -> [SKIP][359] ([i915#11920] / [i915#14544])
[358]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@kms_vrr@lobf.html
[359]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@kms_vrr@lobf.html
* igt@perf@per-context-mode-unprivileged:
- shard-rkl: [SKIP][360] ([i915#2435]) -> [SKIP][361] ([i915#14544] / [i915#2435])
[360]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@perf@per-context-mode-unprivileged.html
[361]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@perf@per-context-mode-unprivileged.html
* igt@perf_pmu@rc6-all-gts:
- shard-rkl: [SKIP][362] ([i915#8516]) -> [SKIP][363] ([i915#14544] / [i915#8516])
[362]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@perf_pmu@rc6-all-gts.html
[363]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@perf_pmu@rc6-all-gts.html
* igt@prime_vgem@coherency-gtt:
- shard-rkl: [SKIP][364] ([i915#3708]) -> [SKIP][365] ([i915#14544] / [i915#3708])
[364]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@prime_vgem@coherency-gtt.html
[365]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@prime_vgem@coherency-gtt.html
* igt@tools_test@sysfs_l3_parity:
- shard-rkl: [SKIP][366] -> [SKIP][367] ([i915#14544]) +3 other tests skip
[366]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17813/shard-rkl-7/igt@tools_test@sysfs_l3_parity.html
[367]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/shard-rkl-6/igt@tools_test@sysfs_l3_parity.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10056
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
[i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11713
[i915#11815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11815
[i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920
[i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169
[i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276
[i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
[i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343
[i915#12392]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12392
[i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257
[i915#12655]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12655
[i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
[i915#12756]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12756
[i915#12796]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12796
[i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910
[i915#13027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13027
[i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
[i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
[i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
[i915#1339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1339
[i915#13409]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13409
[i915#13476]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13476
[i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
[i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
[i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
[i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
[i915#13781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13781
[i915#13820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13820
[i915#13899]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13899
[i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
[i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
[i915#14419]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14419
[i915#14433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14433
[i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
[i915#14694]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14694
[i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
[i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
[i915#15104]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15104
[i915#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131
[i915#15132]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15132
[i915#15140]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15140
[i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243
[i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329
[i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
[i915#15342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15342
[i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458
[i915#15459]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15459
[i915#15460]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15460
[i915#15481]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15481
[i915#15492]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15492
[i915#15523]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15523
[i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
[i915#2065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2065
[i915#2435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2435
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
[i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
[i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
[i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
[i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4387
[i915#4391]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4391
[i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4816
[i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
[i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
[i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854
[i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#5566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5566
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113
[i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245
[i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
[i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
[i915#7443]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7443
[i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
[i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#7975]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7975
[i915#7984]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7984
[i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
[i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
[i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
[i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
[i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#9295]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9295
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
[i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766
[i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
[i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
[i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
Build changes
-------------
* Linux: CI_DRM_17813 -> Patchwork_159261v3
CI-20190529: 20190529
CI_DRM_17813: f7424dfbcb8f05a13bb1da2bed8e2212d2b7a082 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8699: 0b67ab25f2eb58b296872c8c34474b79353727d5 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_159261v3: f7424dfbcb8f05a13bb1da2bed8e2212d2b7a082 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_159261v3/index.html
[-- Attachment #2: Type: text/html, Size: 128789 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements
2026-01-13 10:22 [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Chaitanya Kumar Borah
` (14 preceding siblings ...)
2026-01-13 16:49 ` ✓ i915.CI.Full: " Patchwork
@ 2026-01-21 13:51 ` Jani Nikula
2026-01-22 9:57 ` Maarten Lankhorst
15 siblings, 1 reply; 21+ messages in thread
From: Jani Nikula @ 2026-01-21 13:51 UTC (permalink / raw)
To: Chaitanya Kumar Borah, dri-devel, intel-gfx, intel-xe, amd-gfx
Cc: harry.wentland, louis.chauvet, mwen, contact, alex.hung, daniels,
uma.shankar, suraj.kandpal, nfraprado, ville.syrjala,
matthew.d.roper
On Tue, 13 Jan 2026, Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> wrote:
> 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
> - Fixes enum name lifetime leaks in color pipeline init in i915, amdgpu_dm, and vkms
> - Corrects the ordering of the 3D LUT block in the i915 plane color pipeline
> - Refactors i915 plane color pipeline initialization to reliably clean
> up partially constructed pipelines on failure.
>
> Thanks for taking a look. Feedback is welcome.
I did not do detailed review, but
Acked-by: Jani Nikula <jani.nikula@intel.com>
for merging via drm-misc.
Please coordinate with drm and drm-misc maintainers on which branch
these should merged through. IIUC there are memory leak fixes for
changes heading to v6.19, which speaks for drm-misc-fixes. But is it too
much at this stage? Up to drm and drm-misc maintainers I think.
BR,
Jani.
>
> [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)
>
> Chaitanya Kumar Borah (13):
> drm/i915/color: Place 3D LUT after CSC in plane color pipeline
> drm/amd/display: Fix color pipeline enum name leak
> drm/vkms: Fix color pipeline enum name leak
> drm/i915/display: Fix color pipeline enum name leak
> 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 | 31 ++-
> .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 13 +-
> drivers/gpu/drm/drm_colorop.c | 49 +++--
> drivers/gpu/drm/drm_mode_config.c | 6 +
> .../drm/i915/display/intel_color_pipeline.c | 179 +++++++++++++-----
> 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 | 31 +--
> drivers/gpu/drm/vkms/vkms_drv.c | 1 -
> include/drm/drm_colorop.h | 32 +++-
> 10 files changed, 259 insertions(+), 90 deletions(-)
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements
2026-01-21 13:51 ` [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements Jani Nikula
@ 2026-01-22 9:57 ` Maarten Lankhorst
2026-01-27 6:00 ` Borah, Chaitanya Kumar
0 siblings, 1 reply; 21+ messages in thread
From: Maarten Lankhorst @ 2026-01-22 9:57 UTC (permalink / raw)
To: Jani Nikula, Chaitanya Kumar Borah, dri-devel, intel-gfx,
intel-xe, amd-gfx, Deucher, Alexander
Cc: harry.wentland, louis.chauvet, mwen, contact, alex.hung, daniels,
uma.shankar, suraj.kandpal, nfraprado, ville.syrjala,
matthew.d.roper
Hey,
Den 2026-01-21 kl. 14:51, skrev Jani Nikula:
> On Tue, 13 Jan 2026, Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> wrote:
>> 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
>> - Fixes enum name lifetime leaks in color pipeline init in i915, amdgpu_dm, and vkms
>> - Corrects the ordering of the 3D LUT block in the i915 plane color pipeline
>> - Refactors i915 plane color pipeline initialization to reliably clean
>> up partially constructed pipelines on failure.
>>
>> Thanks for taking a look. Feedback is welcome.
>
> I did not do detailed review, but
>
> Acked-by: Jani Nikula <jani.nikula@intel.com>
>
> for merging via drm-misc.
>
> Please coordinate with drm and drm-misc maintainers on which branch
> these should merged through. IIUC there are memory leak fixes for
> changes heading to v6.19, which speaks for drm-misc-fixes. But is it too
> much at this stage? Up to drm and drm-misc maintainers I think.
I pushed the first 4 patches from this series as they have to be
addressed most urgently. It's a leak affecting each system and
incorrect UAPI being presented for intel/display colorops.
We need to discuss on how to merge patches 5-13. Should we put
it in a topic branch or push it to drm-misc-next-fixes?
Kind regards,
~Maarten Lankhorst
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v3 00/13] drm: Color pipeline teardown and follow-up fixes/improvements
2026-01-22 9:57 ` Maarten Lankhorst
@ 2026-01-27 6:00 ` Borah, Chaitanya Kumar
0 siblings, 0 replies; 21+ messages in thread
From: Borah, Chaitanya Kumar @ 2026-01-27 6:00 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, dri-devel, intel-gfx, intel-xe,
amd-gfx, Deucher, Alexander
Cc: harry.wentland, louis.chauvet, mwen, contact, alex.hung, daniels,
uma.shankar, suraj.kandpal, nfraprado, ville.syrjala,
matthew.d.roper
On 1/22/2026 3:27 PM, Maarten Lankhorst wrote:
> Hey,
>
> Den 2026-01-21 kl. 14:51, skrev Jani Nikula:
>> On Tue, 13 Jan 2026, Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> wrote:
>>> 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
>>> - Fixes enum name lifetime leaks in color pipeline init in i915, amdgpu_dm, and vkms
>>> - Corrects the ordering of the 3D LUT block in the i915 plane color pipeline
>>> - Refactors i915 plane color pipeline initialization to reliably clean
>>> up partially constructed pipelines on failure.
>>>
>>> Thanks for taking a look. Feedback is welcome.
>>
>> I did not do detailed review, but
>>
>> Acked-by: Jani Nikula <jani.nikula@intel.com>
>>
>> for merging via drm-misc.
>>
>> Please coordinate with drm and drm-misc maintainers on which branch
>> these should merged through. IIUC there are memory leak fixes for
>> changes heading to v6.19, which speaks for drm-misc-fixes. But is it too
>> much at this stage? Up to drm and drm-misc maintainers I think.
>
> I pushed the first 4 patches from this series as they have to be
> addressed most urgently. It's a leak affecting each system and
> incorrect UAPI being presented for intel/display colorops.
>
> We need to discuss on how to merge patches 5-13. Should we put
> it in a topic branch or push it to drm-misc-next-fixes?
>
Thank you very much, Maarten, for merging the patches.
In case the "Fixes" tag is mandatory to push through
drm-misc-next-fixes/drm-misc-fixes, the best approach I see would be to
add the following tags on the drm core patches. (i.e the first patches
that added colorop for respective drivers)
Fixes: ef105316819d ("drm/i915/color: Create a transfer function color
pipeline")
Fixes: c1e578bd08da ("drm/vkms: Add enumerated 1D curve colorop")
Fixes: 9ba25915efba ("drm/amd/display: Add support for sRGB EOTF in
DEGAM block")
and then add the corresponding Fixes tag to the indivisual
driver-specific patches.
This won't be totally accurate for vkms as it was already cleaning up
the colorops but the patches are too intertwined to isolate it.
Please let me know if this sounds reasonable.
Thanks also to Jani for the ack.
==
Chaitanya
> Kind regards,
> ~Maarten Lankhorst
^ permalink raw reply [flat|nested] 21+ messages in thread