From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Another attempt at re-enabling DSB based LUT loads. The main change from the last attempt is that we now use the DSB's DEwake mechanism to combat PkgC latency which was causing the LUT to not always load correctly (due to the anti-collision logic not working correctly for DSB LUT accesses). I also got the non-posted writes working correctly which lets us load the legacy LUT without the "write each entry twice" trick I used previously. Ville Syrjälä (19): drm/i915: Constify LUT entries in checker drm/i915/dsb: Use non-locked register access drm/i915/dsb: Dump the DSB command buffer when DSB fails drm/i915/dsb: Define more DSB bits drm/i915/dsb: Define the contents of some intstructions bit better drm/i915/dsb: Avoid corrupting the first register write drm/i915/dsb: Don't use indexed writes when byte enables are not all set drm/i915/dsb: Introduce intel_dsb_noop() drm/i915/dsb: Introduce intel_dsb_reg_write_masked() drm/i915/dsb: Add support for non-posted DSB registers writes drm/i915/dsb: Don't use DSB to load the LUTs during full modeset drm/i915/dsb: Load LUTs using the DSB during vblank drm/i915/dsb: Use non-posted register writes for legacy LUT drm/i915/dsb: Evade transcoder undelayed vblank when using DSB drm/i915: Introduce skl_watermark_max_latency() drm/i915: Introudce intel_crtc_scanline_to_hw() drm/i915/dsb: Use DEwake to combat PkgC latency drm/i915/dsb: Re-instate DSB for LUT updates drm/i915: Do state check for color management changes drivers/gpu/drm/i915/display/intel_color.c | 58 +++-- drivers/gpu/drm/i915/display/intel_color.h | 2 + drivers/gpu/drm/i915/display/intel_crtc.c | 10 +- drivers/gpu/drm/i915/display/intel_display.c | 3 + drivers/gpu/drm/i915/display/intel_dsb.c | 217 +++++++++++++++--- drivers/gpu/drm/i915/display/intel_dsb.h | 9 +- drivers/gpu/drm/i915/display/intel_dsb_regs.h | 31 +++ .../drm/i915/display/intel_modeset_verify.c | 2 + drivers/gpu/drm/i915/display/intel_vblank.c | 14 ++ drivers/gpu/drm/i915/display/intel_vblank.h | 1 + drivers/gpu/drm/i915/display/skl_watermark.c | 14 ++ drivers/gpu/drm/i915/display/skl_watermark.h | 2 + 12 files changed, 317 insertions(+), 46 deletions(-) -- 2.39.3