> -----Original Message-----
> From: Borah, Chaitanya Kumar <[email protected]>
> Sent: Friday, December 19, 2025 12:26 PM
> To: [email protected]; [email protected]; intel-
> [email protected]; [email protected]
> Cc: [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; Shankar, Uma
> <[email protected]>; Kandpal, Suraj <[email protected]>;
> [email protected]; [email protected]; Roper, Matthew D
> <[email protected]>
> Subject: [PATCH 08/13] drm/vkms: Hook up colorop destroy helper for plane
> pipelines
>
> Provide a drm_colorop_funcs instance for vkms color pipeline objects and hook
> up
> the common drm_colorop_destroy() helper as the destroy callback.
Looks Good to me.
Reviewed-by: Uma Shankar <[email protected]>
> Signed-off-by: Chaitanya Kumar Borah <[email protected]>
> ---
> 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