mbox series

[0/9] drm/i915: Split plane updates to noarm+arm phases

Message ID 20211018115030.3547-1-ville.syrjala@linux.intel.com (mailing list archive)
Headers show
Series drm/i915: Split plane updates to noarm+arm phases | expand

Message

Ville Syrjälä Oct. 18, 2021, 11:50 a.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Write all non-arming double buffered plane registers ahead of
the vblank evade critical section. This reduces the amount of
work we have to inside the critical section and thus should
speed it up a bit.

I didn't convert cursors yet because IIRC they had some
intersting double buffering behaviours. Similar story with
skl+ scalers. Need to do further studies on those topics
to do this safely. For now we're left with a few TODOs.

Also tossed in a few async flip fixes at the start.

Ville Syrjälä (9):
  drm/i915: Reject planar formats when doing async flips
  drm/i915: Fix async flip with decryption and/or DPT
  drm/i915: Fix up the sprite namespacing
  drm/i915: Split update_plane() into update_noarm() + update_arm()
  drm/i915: Split skl+ plane update into noarm+arm pair
  drm/i915: Split pre-skl primary plane update into noarm+arm pair
  drm/i915: Split g4x+ sprite plane update into noarm+arm pair
  drm/i915: Split ivb+ sprite plane update into noarm+arm pair
  drm/i915: Split vlv/chv sprite plane update into noarm+arm pair

 drivers/gpu/drm/i915/display/i9xx_plane.c     |  72 +++---
 .../gpu/drm/i915/display/intel_atomic_plane.c |  88 +++++--
 .../gpu/drm/i915/display/intel_atomic_plane.h |  23 +-
 drivers/gpu/drm/i915/display/intel_cursor.c   |  44 ++--
 drivers/gpu/drm/i915/display/intel_display.c  |  18 +-
 .../drm/i915/display/intel_display_types.h    |  12 +-
 drivers/gpu/drm/i915/display/intel_sprite.c   | 214 +++++++++++-------
 .../drm/i915/display/skl_universal_plane.c    | 150 +++++++-----
 drivers/gpu/drm/i915/i915_trace.h             |  33 ++-
 9 files changed, 431 insertions(+), 223 deletions(-)