drm/i915/dsb: Allow DSB based updates without planes
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 18 Feb 2025 20:58:47 +0000 (22:58 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 27 Feb 2025 20:44:39 +0000 (22:44 +0200)
We don't actually need any planes to get updated in order
to perform the commit on the DSB. Allow DSB based updates
even when we don't touch planes. The main benefit here
is that pure LUT updates will now go through the DSB path
and therefore we don't have to do vblank evasion/etc. on
the CPU.

I think the reason I had this excluded was that I was
originally contemplating using frame/flip timestamps as
a way to complete the commits. But I had to scrap that
idea when it turned out that those timestamp get
corrupted when DSB is poking at random registers.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250218205850.1422-2-ville.syrjala@linux.intel.com
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
drivers/gpu/drm/i915/display/intel_display.c

index ecc39ffd8dd03826688ffdbb526a2a2c3bc89cef..4843ad19899e0fcb4e73a630934bfdb3a73cf872 100644 (file)
@@ -7175,7 +7175,6 @@ static void intel_atomic_dsb_prepare(struct intel_atomic_state *state,
 
        /* FIXME deal with everything */
        new_crtc_state->use_dsb =
-               new_crtc_state->update_planes &&
                !new_crtc_state->do_async_flip &&
                (DISPLAY_VER(display) >= 20 || !new_crtc_state->has_psr) &&
                !new_crtc_state->scaler_state.scaler_users &&