mbox series

[v2,0/3] drm/i915: Unpin cursor fb only after vblank.

Message ID 20240305142714.5298-1-maarten.lankhorst@linux.intel.com (mailing list archive)
Headers show
Series drm/i915: Unpin cursor fb only after vblank. | expand

Message

Maarten Lankhorst March 5, 2024, 2:27 p.m. UTC
Fix legacy cursor updates on xe by enforcing wait between updating
registers and unpin.

In comparison with previous version, there was a small bug in the
atomic unpin path. In intel_plane_cleanup_fb we tried to deference
plane_state after calling vblank schedule. Remove plane from atomic
state immediately after scheduling to prevent this issue. It's unsafe
to deference plane_state as soon as schedule occured.

Maarten Lankhorst (2):
  drm: Add drm_vblank_work_flush_all().
  drm/i915: Use the same vblank worker for atomic unpin

Ville Syrjälä (1):
  drm/i915: Use vblank worker to unpin old legacy cursor fb safely

 drivers/gpu/drm/drm_vblank_work.c             | 22 +++++++++++++
 .../gpu/drm/i915/display/intel_atomic_plane.c | 13 +++++++-
 .../gpu/drm/i915/display/intel_atomic_plane.h |  2 ++
 drivers/gpu/drm/i915/display/intel_crtc.c     | 31 +++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_cursor.c   | 26 ++++++++++++++--
 drivers/gpu/drm/i915/display/intel_cursor.h   |  3 ++
 drivers/gpu/drm/i915/display/intel_display.c  |  3 ++
 .../drm/i915/display/intel_display_types.h    |  3 ++
 include/drm/drm_vblank_work.h                 |  2 ++
 9 files changed, 102 insertions(+), 3 deletions(-)