intel-xe.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/15] drm/xe: Fix flickering when inheriting BIOS fb.
@ 2024-09-30 19:57 Maarten Lankhorst
  2024-09-30 19:57 ` [PATCH v2 01/15] drm/xe/display: Handle stolen bar readout in the same way as lmem Maarten Lankhorst
                   ` (22 more replies)
  0 siblings, 23 replies; 26+ messages in thread
From: Maarten Lankhorst @ 2024-09-30 19:57 UTC (permalink / raw)
  To: intel-xe; +Cc: Maarten Lankhorst

We accidentally overwrite the GGTT very early on, because we have put in many allocations
between the first xe display prototype and the current version.

First some generic fixes where we were handling things slightly different,
then a major GGTT rework with 3 goals:
1. Reorder init to move all allocations after xe_display_init_noaccel.
2. Hide all details of GGTT, so we can ensure that nobody is looking
   at it before it's initialised.
3. Prevent this from happening again by moving early GGTT init until right before
   xe_display_init_noaccel now that we know nobody requires GGTT.

Hopefully I didn't miss allocations, but it boots on my ADL without flickering again. :-)
References: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2775

Changes since v1:
- Small fixes for UC ordering, and documentation.
- Add wait for SURFLIVE

Maarten Lankhorst (15):
  drm/xe/display: Handle stolen bar readout in the same way as lmem
  drm/xe: Remove double pageflip
  drm/xe: Move suballocator init to after display init
  drm/xe: Initialize UC after xe_display_init_noaccel.
  drm/xe: Use xe_ggtt_map_bo_unlocked for resume
  drm/xe: Add xe_ggtt_might_lock
  drm/xe: Add xe_ggtt_alloc
  drm/xe/display: Abstract read/write functions for GGTT PTEs
  drm/xe: Make xe_ggtt_pt_ops private
  drm/xe/display: Stop dereferencing ggtt in xe_fb_pin
  drm/xe/display: Stop dereferencing ggtt in xe_fb_pin
  drm/xe: Move struct xe_ggtt to xe_ggtt.c
  drm/xe/display: Use async flip for flipping initial fb.
  drm/xe: Move interrupt initialisation until after
    xe_display_init_noaccel
  drm/xe: Initialise GGTT later

 drivers/gpu/drm/xe/display/xe_fb_pin.c        |  36 ++---
 drivers/gpu/drm/xe/display/xe_plane_initial.c |  38 +++--
 drivers/gpu/drm/xe/xe_bo.c                    |   2 +-
 drivers/gpu/drm/xe/xe_bo_evict.c              |   9 +-
 drivers/gpu/drm/xe/xe_device.c                |  34 +++--
 drivers/gpu/drm/xe/xe_ggtt.c                  | 141 +++++++++++++++++-
 drivers/gpu/drm/xe/xe_ggtt.h                  |  22 ++-
 drivers/gpu/drm/xe/xe_ggtt_types.h            |  50 +------
 drivers/gpu/drm/xe/xe_gt.c                    |  27 ++--
 drivers/gpu/drm/xe/xe_gt.h                    |   2 +-
 drivers/gpu/drm/xe/xe_tile.c                  |  16 +-
 drivers/gpu/drm/xe/xe_tile.h                  |   1 +
 12 files changed, 248 insertions(+), 130 deletions(-)

-- 
2.45.2


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2024-10-01 13:59 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-30 19:57 [PATCH v2 00/15] drm/xe: Fix flickering when inheriting BIOS fb Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 01/15] drm/xe/display: Handle stolen bar readout in the same way as lmem Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 02/15] drm/xe: Remove double pageflip Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 03/15] drm/xe: Move suballocator init to after display init Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 04/15] drm/xe: Initialize UC after xe_display_init_noaccel Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 05/15] drm/xe: Use xe_ggtt_map_bo_unlocked for resume Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 06/15] drm/xe: Add xe_ggtt_might_lock Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 07/15] drm/xe: Add xe_ggtt_alloc Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 08/15] drm/xe/display: Abstract read/write functions for GGTT PTEs Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 09/15] drm/xe: Make xe_ggtt_pt_ops private Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 10/15] drm/xe/display: Stop dereferencing ggtt in xe_fb_pin Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 11/15] " Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 12/15] drm/xe: Move struct xe_ggtt to xe_ggtt.c Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 13/15] drm/xe/display: Use async flip for flipping initial fb Maarten Lankhorst
2024-10-01  9:09   ` Jani Nikula
2024-10-01 13:59   ` Ville Syrjälä
2024-09-30 19:57 ` [PATCH v2 14/15] drm/xe: Move interrupt initialisation until after xe_display_init_noaccel Maarten Lankhorst
2024-09-30 19:57 ` [PATCH v2 15/15] drm/xe: Initialise GGTT later Maarten Lankhorst
2024-10-01  0:05 ` ✓ CI.Patch_applied: success for drm/xe: Fix flickering when inheriting BIOS fb. (rev2) Patchwork
2024-10-01  0:05 ` ✗ CI.checkpatch: warning " Patchwork
2024-10-01  0:06 ` ✓ CI.KUnit: success " Patchwork
2024-10-01  0:18 ` ✓ CI.Build: " Patchwork
2024-10-01  0:20 ` ✗ CI.Hooks: failure " Patchwork
2024-10-01  0:22 ` ✓ CI.checksparse: success " Patchwork
2024-10-01  0:42 ` ✗ CI.BAT: failure " Patchwork
2024-10-01 10:35 ` ✓ CI.FULL: success " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).