[PATCH 00/14] drm/xe: Fix flickering when inheriting BIOS fb.
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Fri Sep 27 14:13:50 UTC 2024
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
Maarten Lankhorst (14):
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: 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 | 34 ++---
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 | 140 +++++++++++++++++-
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, 243 insertions(+), 130 deletions(-)
--
2.45.2
More information about the Intel-xe
mailing list