mbox series

[00/13] drm/i915: Use DSB for plane/color management commits

Message ID 20240902135342.1050-1-ville.syrjala@linux.intel.com (mailing list archive)
Headers show
Series drm/i915: Use DSB for plane/color management commits | expand

Message

Ville Syrjälä Sept. 2, 2024, 1:53 p.m. UTC
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)

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    | 201 ++++++------
 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  | 198 +++++++++---
 .../drm/i915/display/intel_display_types.h    |  23 +-
 drivers/gpu/drm/i915/display/intel_dsb.c      | 135 ++++++--
 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, 739 insertions(+), 419 deletions(-)

Comments

Manna, Animesh Sept. 17, 2024, 7 a.m. UTC | #1
> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Monday, September 2, 2024 7:23 PM
> To: intel-gfx@lists.freedesktop.org
> Subject: [PATCH 00/13] drm/i915: Use DSB for plane/color management
> commits
> 
> 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)
> 
> 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

Considering this patch series is an initial patch series and many things will be fixed later which is added as TODO/FIXME, the above changes looks good to me.
For the whole patch series,

Reviewed-by: Animesh Manna <animesh.manna@intel.com>
 
> 
>  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    | 201 ++++++------
>  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  | 198 +++++++++---
>  .../drm/i915/display/intel_display_types.h    |  23 +-
>  drivers/gpu/drm/i915/display/intel_dsb.c      | 135 ++++++--
>  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, 739 insertions(+), 419 deletions(-)
> 
> --
> 2.44.2