Re: [PATCH 2/2] drm/i915/color: For MTL convert 24 bit lut values to 16 bit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 26 Jun 2023, Chaitanya Kumar Borah <chaitanya.kumar.borah@xxxxxxxxx> wrote:
> For MTL and beyond, convert back the 24 bit lut values
> read from HW to 16 bit values to maintain parity with
> userspace values. This way we avoid pipe config mismatch
> for pre-csc lut values.
>
> Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@xxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/display/intel_color.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c
> index 25c73e2e6fa3..856191640e71 100644
> --- a/drivers/gpu/drm/i915/display/intel_color.c
> +++ b/drivers/gpu/drm/i915/display/intel_color.c
> @@ -3477,6 +3477,14 @@ static struct drm_property_blob *glk_read_degamma_lut(struct intel_crtc *crtc)
>  	for (i = 0; i < lut_size; i++) {
>  		u32 val = intel_de_read_fw(dev_priv, PRE_CSC_GAMC_DATA(pipe));
>  
> +		/*
> +		 * For MTL and beyond, convert back the 24 bit lut values
> +		 * read from HW to 16 bit values to maintain parity with
> +		 * userspace values
> +		 */
> +		if (DISPLAY_VER(dev_priv) >= 14)
> +			val = mul_u32_u32(val, (1 << 16)) / (1 << 24);
> +

Here too please add a small helper for the conversion.

BR,
Jani.

>  		lut[i].red = val;
>  		lut[i].green = val;
>  		lut[i].blue = val;

-- 
Jani Nikula, Intel Open Source Graphics Center



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux