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