Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Borah, Chaitanya Kumar" <chaitanya.kumar.borah@intel.com>
To: "Kandpal, Suraj" <suraj.kandpal@intel.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>
Cc: "harry.wentland@amd.com" <harry.wentland@amd.com>,
	"jani.nikula@linux.intel.com" <jani.nikula@linux.intel.com>,
	"louis.chauvet@bootlin.com" <louis.chauvet@bootlin.com>,
	"mwen@igalia.com" <mwen@igalia.com>,
	"contact@emersion.fr" <contact@emersion.fr>,
	"alex.hung@amd.com" <alex.hung@amd.com>,
	"daniels@collabora.com" <daniels@collabora.com>,
	"Shankar, Uma" <uma.shankar@intel.com>,
	"nfraprado@collabora.com" <nfraprado@collabora.com>,
	"ville.syrjala@linux.intel.com" <ville.syrjala@linux.intel.com>,
	"Roper, Matthew D" <matthew.d.roper@intel.com>
Subject: Re: [PATCH v3 06/13] drm: Allow driver-managed destruction of colorop objects
Date: Wed, 14 Jan 2026 13:21:59 +0530	[thread overview]
Message-ID: <1a8affb5-84fc-44f8-9e82-7383c70bdd0c@intel.com> (raw)
In-Reply-To: <DM3PPF208195D8DEC7C0B5F2A05CE68ACB2E38FA@DM3PPF208195D8D.namprd11.prod.outlook.com>



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
> 


  reply	other threads:[~2026-01-14  7:52 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 ` [PATCH v3 03/13] drm/vkms: " Chaitanya Kumar Borah
2026-01-13 10:22 ` [PATCH v3 04/13] drm/i915/display: " Chaitanya Kumar Borah
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 ` [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 [this message]
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 ` [PATCH v3 08/13] drm/vkms: " Chaitanya Kumar Borah
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 ` [PATCH v3 10/13] drm: Clean up colorop objects during mode_config cleanup 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
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 ` [PATCH v3 13/13] drm/i915/color: Add failure handling in plane color pipeline init Chaitanya Kumar Borah
2026-01-13 11:18 ` ✗ CI.checkpatch: warning for drm: Color pipeline teardown and follow-up fixes/improvements (rev3) Patchwork
2026-01-13 11:19 ` ✓ CI.KUnit: success " Patchwork
2026-01-13 11:38 ` ✗ CI.checksparse: warning " Patchwork
2026-01-13 12:06 ` ✓ Xe.CI.BAT: success " Patchwork
2026-01-13 19:20 ` ✗ Xe.CI.Full: failure " Patchwork
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1a8affb5-84fc-44f8-9e82-7383c70bdd0c@intel.com \
    --to=chaitanya.kumar.borah@intel.com \
    --cc=alex.hung@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=contact@emersion.fr \
    --cc=daniels@collabora.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=harry.wentland@amd.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=louis.chauvet@bootlin.com \
    --cc=matthew.d.roper@intel.com \
    --cc=mwen@igalia.com \
    --cc=nfraprado@collabora.com \
    --cc=suraj.kandpal@intel.com \
    --cc=uma.shankar@intel.com \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox