Message ID | 20241003154421.33805-2-maarten.lankhorst@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/xe: Reduce flickering when inheriting BIOS fb. | expand |
On Thu, Oct 03, 2024 at 05:44:10PM +0200, Maarten Lankhorst wrote: >i915 already does this, we should do the same for Xe. > >Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >--- > drivers/gpu/drm/xe/display/xe_plane_initial.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > >diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c b/drivers/gpu/drm/xe/display/xe_plane_initial.c >index 1b10ea499d8c8..cf139921e7817 100644 >--- a/drivers/gpu/drm/xe/display/xe_plane_initial.c >+++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c >@@ -69,7 +69,7 @@ initial_plane_bo(struct xe_device *xe, > flags = XE_BO_FLAG_PINNED | XE_BO_FLAG_SCANOUT | XE_BO_FLAG_GGTT; > > base = round_down(plane_config->base, page_size); >- if (IS_DGFX(xe)) { >+ if (IS_DGFX(xe) || GRAPHICS_VERx100(xe) >= 1270) { and with this you just dropped Wa 22019338487 from e.g. LNL. Also, making igfx going through this path is very odd when it has checks like phys_base >= mem.vram.usable_size Lucas De Marchi > u64 __iomem *gte = tile0->mem.ggtt->gsm; > u64 pte; > >@@ -83,7 +83,6 @@ initial_plane_bo(struct xe_device *xe, > } > > phys_base = pte & ~(page_size - 1); >- flags |= XE_BO_FLAG_VRAM0; > > /* > * We don't currently expect this to ever be placed in the >@@ -105,7 +104,6 @@ initial_plane_bo(struct xe_device *xe, > if (!stolen) > return NULL; > phys_base = base; >- flags |= XE_BO_FLAG_STOLEN; > > if (XE_WA(xe_root_mmio_gt(xe), 22019338487_display)) > return NULL; >@@ -120,6 +118,11 @@ initial_plane_bo(struct xe_device *xe, > return NULL; > } > >+ if (IS_DGFX(xe)) >+ flags |= XE_BO_FLAG_VRAM0; >+ else >+ flags |= XE_BO_FLAG_STOLEN; >+ > size = round_up(plane_config->base + plane_config->size, > page_size); > size -= base; >-- >2.45.2 >
diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c b/drivers/gpu/drm/xe/display/xe_plane_initial.c index 1b10ea499d8c8..cf139921e7817 100644 --- a/drivers/gpu/drm/xe/display/xe_plane_initial.c +++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c @@ -69,7 +69,7 @@ initial_plane_bo(struct xe_device *xe, flags = XE_BO_FLAG_PINNED | XE_BO_FLAG_SCANOUT | XE_BO_FLAG_GGTT; base = round_down(plane_config->base, page_size); - if (IS_DGFX(xe)) { + if (IS_DGFX(xe) || GRAPHICS_VERx100(xe) >= 1270) { u64 __iomem *gte = tile0->mem.ggtt->gsm; u64 pte; @@ -83,7 +83,6 @@ initial_plane_bo(struct xe_device *xe, } phys_base = pte & ~(page_size - 1); - flags |= XE_BO_FLAG_VRAM0; /* * We don't currently expect this to ever be placed in the @@ -105,7 +104,6 @@ initial_plane_bo(struct xe_device *xe, if (!stolen) return NULL; phys_base = base; - flags |= XE_BO_FLAG_STOLEN; if (XE_WA(xe_root_mmio_gt(xe), 22019338487_display)) return NULL; @@ -120,6 +118,11 @@ initial_plane_bo(struct xe_device *xe, return NULL; } + if (IS_DGFX(xe)) + flags |= XE_BO_FLAG_VRAM0; + else + flags |= XE_BO_FLAG_STOLEN; + size = round_up(plane_config->base + plane_config->size, page_size); size -= base;
i915 already does this, we should do the same for Xe. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/xe/display/xe_plane_initial.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)