> -----Original Message-----
> From: Intel-gfx <[email protected]> On Behalf Of
> Chaitanya Kumar Borah
> Sent: Monday, February 23, 2026 12:17 PM
> To: [email protected]; [email protected]
> Cc: Shankar, Uma <[email protected]>; Borah, Chaitanya Kumar
> <[email protected]>
> Subject: [PATCH] drm/i915: Fix color blob reference handling in
> intel_plane_state
> 
> Take proper references for hw color blobs (degamma_lut, gamma_lut, ctm,
> lut_3d) in intel_plane_duplicate_state() and drop them in
> intel_plane_destroy_state().
> 
> Fixes: 3b7476e786c2 ("drm/i915/color: Add framework to program PRE/POST
> CSC LUT")
> Fixes: a78f1b6baf4d ("drm/i915/color: Add framework to program CSC")
> Fixes: 65db7a1f9cf7 ("drm/i915/color: Add 3D LUT to color pipeline")
> Signed-off-by: Chaitanya Kumar Borah <[email protected]>

LGTM.
Reviewed-by: Pranay Samala <[email protected]>

> ---
>  drivers/gpu/drm/i915/display/intel_plane.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_plane.c
> b/drivers/gpu/drm/i915/display/intel_plane.c
> index 3dc2ed52147f..171cb5e32609 100644
> --- a/drivers/gpu/drm/i915/display/intel_plane.c
> +++ b/drivers/gpu/drm/i915/display/intel_plane.c
> @@ -144,6 +144,15 @@ intel_plane_duplicate_state(struct drm_plane
> *plane)
>       if (intel_state->hw.fb)
>               drm_framebuffer_get(intel_state->hw.fb);
> 
> +     if (intel_state->hw.degamma_lut)
> +             drm_property_blob_get(intel_state->hw.degamma_lut);
> +     if (intel_state->hw.gamma_lut)
> +             drm_property_blob_get(intel_state->hw.gamma_lut);
> +     if (intel_state->hw.ctm)
> +             drm_property_blob_get(intel_state->hw.ctm);
> +     if (intel_state->hw.lut_3d)
> +             drm_property_blob_get(intel_state->hw.lut_3d);
> +
>       return &intel_state->uapi;
>  }
> 
> @@ -167,6 +176,16 @@ intel_plane_destroy_state(struct drm_plane *plane,
>       __drm_atomic_helper_plane_destroy_state(&plane_state->uapi);
>       if (plane_state->hw.fb)
>               drm_framebuffer_put(plane_state->hw.fb);
> +
> +     if (plane_state->hw.degamma_lut)
> +             drm_property_blob_put(plane_state->hw.degamma_lut);
> +     if (plane_state->hw.gamma_lut)
> +             drm_property_blob_put(plane_state->hw.gamma_lut);
> +     if (plane_state->hw.ctm)
> +             drm_property_blob_put(plane_state->hw.ctm);
> +     if (plane_state->hw.lut_3d)
> +             drm_property_blob_put(plane_state->hw.lut_3d);
> +
>       kfree(plane_state);
>  }
> 
> --
> 2.25.1

Reply via email to