Re: [PATCH v3 01/12] drm/xe/display: Handle stolen bar readout in the same way as lmem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxx>
---
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




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux