Message ID | 20240930170415.23841-1-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
Headers | show |
Series | drm/i915: Use DSB for plane/color management commits | expand |
On Mon, Sep 30, 2024 at 08:04:02PM +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Use the DSB to perform simple plane/color management commits. > Anything more complicatd (modesets and fastsets) are still > punted to the mmio path. > > Also DSB won't be used when any of these are in use: > - scalers (scaler code needs more work) > - VRR (need to figure out a race free commit completion scheme) > - PSR (zero thoughts given for PSR interactions so far) > - async flips (no real though given here either) > > v2: rebase > > Ville Syrjälä (13): > drm/i915/dsb: Avoid reads of the DSB buffer for indexed register > writes > drm/i915: Prepare clear color before wait_for_dependencies() > drm/i915/dsb: Generate the DSB buffer in commit_tail() > drm/i915/dsb: Enable programmable DSB interrupt > drm/i915/dsb: Introduce intel_dsb_vblank_evade() > drm/i915/dsb: Introduce intel_dsb_wait_usec() > drm/i915/dsb: Introduce intel_dsb_wait_vblanks() > drm/i915: Introduce intel_scanlines_to_usecs() > drm/i915/dsb: Introduce intel_dsb_wait_vblank_delay() > drm/i915: Extract intel_crtc_prepare_vblank_event() > drm/i915: Plumb 'dsb' all way to the plane hooks > drm/i915: Plumb 'dsb' all way to the color commit hooks > drm/i915/dsb: Use DSB for plane/color management updates Pushed to drm-intel-next. Thanks for the reviews. If the world catches fire you know who to blame. > > drivers/gpu/drm/i915/display/i9xx_plane.c | 22 +- > drivers/gpu/drm/i915/display/intel_atomic.c | 5 +- > .../gpu/drm/i915/display/intel_atomic_plane.c | 49 +-- > .../gpu/drm/i915/display/intel_atomic_plane.h | 19 +- > drivers/gpu/drm/i915/display/intel_color.c | 207 ++++++------ > drivers/gpu/drm/i915/display/intel_color.h | 7 +- > drivers/gpu/drm/i915/display/intel_crtc.c | 37 ++- > drivers/gpu/drm/i915/display/intel_crtc.h | 5 + > drivers/gpu/drm/i915/display/intel_cursor.c | 101 +++--- > drivers/gpu/drm/i915/display/intel_de.h | 11 + > drivers/gpu/drm/i915/display/intel_display.c | 180 ++++++++--- > .../drm/i915/display/intel_display_types.h | 23 +- > drivers/gpu/drm/i915/display/intel_dsb.c | 137 ++++++-- > drivers/gpu/drm/i915/display/intel_dsb.h | 7 + > .../drm/i915/display/intel_modeset_setup.c | 4 +- > drivers/gpu/drm/i915/display/intel_sprite.c | 27 +- > .../drm/i915/display/skl_universal_plane.c | 305 ++++++++++-------- > drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +- > 18 files changed, 735 insertions(+), 413 deletions(-) > > -- > 2.45.2
From: Ville Syrjälä <ville.syrjala@linux.intel.com> Use the DSB to perform simple plane/color management commits. Anything more complicatd (modesets and fastsets) are still punted to the mmio path. Also DSB won't be used when any of these are in use: - scalers (scaler code needs more work) - VRR (need to figure out a race free commit completion scheme) - PSR (zero thoughts given for PSR interactions so far) - async flips (no real though given here either) v2: rebase Ville Syrjälä (13): drm/i915/dsb: Avoid reads of the DSB buffer for indexed register writes drm/i915: Prepare clear color before wait_for_dependencies() drm/i915/dsb: Generate the DSB buffer in commit_tail() drm/i915/dsb: Enable programmable DSB interrupt drm/i915/dsb: Introduce intel_dsb_vblank_evade() drm/i915/dsb: Introduce intel_dsb_wait_usec() drm/i915/dsb: Introduce intel_dsb_wait_vblanks() drm/i915: Introduce intel_scanlines_to_usecs() drm/i915/dsb: Introduce intel_dsb_wait_vblank_delay() drm/i915: Extract intel_crtc_prepare_vblank_event() drm/i915: Plumb 'dsb' all way to the plane hooks drm/i915: Plumb 'dsb' all way to the color commit hooks drm/i915/dsb: Use DSB for plane/color management updates drivers/gpu/drm/i915/display/i9xx_plane.c | 22 +- drivers/gpu/drm/i915/display/intel_atomic.c | 5 +- .../gpu/drm/i915/display/intel_atomic_plane.c | 49 +-- .../gpu/drm/i915/display/intel_atomic_plane.h | 19 +- drivers/gpu/drm/i915/display/intel_color.c | 207 ++++++------ drivers/gpu/drm/i915/display/intel_color.h | 7 +- drivers/gpu/drm/i915/display/intel_crtc.c | 37 ++- drivers/gpu/drm/i915/display/intel_crtc.h | 5 + drivers/gpu/drm/i915/display/intel_cursor.c | 101 +++--- drivers/gpu/drm/i915/display/intel_de.h | 11 + drivers/gpu/drm/i915/display/intel_display.c | 180 ++++++++--- .../drm/i915/display/intel_display_types.h | 23 +- drivers/gpu/drm/i915/display/intel_dsb.c | 137 ++++++-- drivers/gpu/drm/i915/display/intel_dsb.h | 7 + .../drm/i915/display/intel_modeset_setup.c | 4 +- drivers/gpu/drm/i915/display/intel_sprite.c | 27 +- .../drm/i915/display/skl_universal_plane.c | 305 ++++++++++-------- drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +- 18 files changed, 735 insertions(+), 413 deletions(-)