drm/i915/color: fix broken gamma state-checker during boot
authorSwati Sharma <swati2.sharma@intel.com>
Wed, 9 Oct 2019 06:55:39 +0000 (12:25 +0530)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 9 Oct 2019 14:13:14 +0000 (17:13 +0300)
commit9b000b47cc18fa3b078ce080cbcf84f1a8a497ad
tree99f22ff62686a3b256b0866a927caae56170a975
parentd46e137c44974938bc08700000a4b1231491ca8a
drm/i915/color: fix broken gamma state-checker during boot

Premature gamma lut prepration and loading which was getting
reflected in first modeset causing different colors on
screen during boot.

Issue: In BIOS, gamma is disabled by default. However, legacy read_luts()
was setting crtc_state->base.gamma_lut and gamma_lut was programmed
with junk values which led to visual artifacts (different
colored screens instead of usual black during boot).

Fix: Calling read_luts() only when gamma is enabled which will happen
after first modeset.

This fix is independent from the revert 1b8588741fdc ("Revert
"drm/i915/color: Extract icl_read_luts()"") and should fix different colors
on screen in legacy platforms too.

v2:
-Added gamma_enable checks inside read_luts() [Ville/Jani N]
-Corrected gamma enable check for CHV [Ville]

v3:
-Added check in ilk_read_luts() [Ville]
-Simplified gamma enable check for CHV [Ville]

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111809
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111885
Tested-by: Jani Saarinen <jani.saarinen@intel.com>
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191009065542.27415-2-swati2.sharma@intel.com
drivers/gpu/drm/i915/display/intel_color.c