On Tue, 12 May 2026, Ville Syrjala <[email protected]> wrote: > From: Ville Syrjälä <[email protected]> > > Add a few helpers that allow us to abstract the xe initial FB PTE > check a bit. Still very ad-hoc compared to the nicely abstracted > i915 counterpart, but whatever. > > Signed-off-by: Ville Syrjälä <[email protected]> > --- > drivers/gpu/drm/xe/display/xe_initial_plane.c | 17 ++++++++++++++--- > 1 file changed, 14 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/xe/display/xe_initial_plane.c > b/drivers/gpu/drm/xe/display/xe_initial_plane.c > index b7e0685351bb..0dabc5709d01 100644 > --- a/drivers/gpu/drm/xe/display/xe_initial_plane.c > +++ b/drivers/gpu/drm/xe/display/xe_initial_plane.c > @@ -18,8 +18,19 @@ > #include "xe_fb_pin.h" > #include "xe_ggtt.h" > #include "xe_mmio.h" > +#include "xe_ttm_stolen_mgr.h"
Not sure how this is related to the changes here. Reviewed-by: Jani Nikula <[email protected]> > #include "xe_vram_types.h" > > +static bool is_pte_local(u64 pte) > +{ > + return pte & XE_GGTT_PTE_DM; > +} > + > +static bool need_pte_local(struct xe_device *xe) > +{ > + return IS_DGFX(xe); > +} > + > static struct xe_bo * > initial_plane_bo(struct xe_device *xe, > struct intel_initial_plane_config *plane_config) > @@ -43,13 +54,13 @@ initial_plane_bo(struct xe_device *xe, > if (IS_DGFX(xe)) { > u64 pte = xe_ggtt_read_pte(tile0->mem.ggtt, base); > > - if (!(pte & XE_GGTT_PTE_DM)) { > - drm_err(&xe->drm, > - "Initial plane programming missing DM bit\n"); > + if (is_pte_local(pte) != need_pte_local(xe)) { > + drm_err(&xe->drm, "Initial plane PTE has bad local > memory bit\n"); > return NULL; > } > > phys_base = pte & ~(page_size - 1); > + > flags |= XE_BO_FLAG_VRAM0; > > /* -- Jani Nikula, Intel
