drm/i915: Fix readout degamma_lut mismatch on ilk/snb
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 10 Jul 2024 12:41:37 +0000 (15:41 +0300)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Mon, 2 Sep 2024 10:25:18 +0000 (13:25 +0300)
commite8705632435ae2f2253b65d3786da389982e8813
treebbcd012498a656237e1e1e56f6813e0eb630512b
parent59d3cfdd7f9655a0400ac453bf92199204f8b2a1
drm/i915: Fix readout degamma_lut mismatch on ilk/snb

On ilk/snb the pipe may be configured to place the LUT before or
after the CSC depending on various factors, but as there is only
one LUT (no split mode like on IVB+) we only advertise a gamma_lut
and no degamma_lut in the uapi to avoid confusing userspace.

This can cause a problem during readout if the VBIOS/GOP enabled
the LUT in the pre CSC configuration. The current code blindly
assigns the results of the readout to the degamma_lut, which will
cause a failure during the next atomic_check() as we aren't expecting
anything to be in degamma_lut since it's not visible to userspace.

Fix the problem by assigning whatever LUT we read out from the
hardware into gamma_lut.

Cc: stable@vger.kernel.org
Fixes: d2559299d339 ("drm/i915: Make ilk_read_luts() capable of degamma readout")
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11608
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240710124137.16773-1-ville.syrjala@linux.intel.com
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
(cherry picked from commit 33eca84db6e31091cef63584158ab64704f78462)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/display/intel_modeset_setup.c