[Intel-xe] [PATCH v2 29/30] drm/xe: Reinstate media GT support

Lucas De Marchi lucas.demarchi at intel.com
Fri May 26 22:46:06 UTC 2023


On Fri, May 19, 2023 at 04:18:26PM -0700, Matt Roper wrote:
>Now that tiles and GTs are handled separately and other prerequisite
>changes are in place, we're ready to re-enable the media GT.
>
>Signed-off-by: Matt Roper <matthew.d.roper at intel.com>


Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>

Lucas De Marchi

>---
> drivers/gpu/drm/xe/regs/xe_gt_regs.h |  8 ++++++++
> drivers/gpu/drm/xe/xe_pci.c          | 26 +++++++++++++++++++++++++-
> 2 files changed, 33 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>index 4d87f1fe010d..26247725e0d8 100644
>--- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>+++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>@@ -8,6 +8,14 @@
>
> #include "regs/xe_reg_defs.h"
>
>+/*
>+ * The GSI register range [0x0 - 0x40000) is replicated at a higher offset
>+ * for the media GT.  xe_mmio and xe_gt_mcr functions will automatically
>+ * translate offsets by MEDIA_GT_GSI_OFFSET when operating on the media GT.
>+ */
>+#define MEDIA_GT_GSI_OFFSET				0x380000
>+#define MEDIA_GT_GSI_LENGTH				0x40000
>+
> /* RPM unit config (Gen8+) */
> #define RPM_CONFIG0					XE_REG(0xd00)
> #define   RPM_CONFIG0_CRYSTAL_CLOCK_FREQ_MASK		REG_GENMASK(5, 3)
>diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>index bc0ed2a0e44f..890625598209 100644
>--- a/drivers/gpu/drm/xe/xe_pci.c
>+++ b/drivers/gpu/drm/xe/xe_pci.c
>@@ -552,7 +552,31 @@ static int xe_info_init(struct xe_device *xe,
> 		if (MEDIA_VER(xe) < 13 && media_desc)
> 			gt->info.__engine_mask |= media_desc->hw_engine_mask;
>
>-		/* TODO: Init media GT, if present */
>+		if (MEDIA_VER(xe) < 13 || !media_desc)
>+			continue;
>+
>+		/*
>+		 * Allocate and setup media GT for platforms with standalone
>+		 * media.
>+		 */
>+		tile->media_gt = xe_gt_alloc(tile);
>+		if (IS_ERR(tile->media_gt))
>+			return PTR_ERR(tile->media_gt);
>+
>+		gt = tile->media_gt;
>+		gt->info.type = XE_GT_TYPE_MEDIA;
>+		gt->info.__engine_mask = media_desc->hw_engine_mask;
>+		gt->mmio.adj_offset = MEDIA_GT_GSI_OFFSET;
>+		gt->mmio.adj_limit = MEDIA_GT_GSI_LENGTH;
>+
>+		/*
>+		 * FIXME: At the moment multi-tile and standalone media are
>+		 * mutually exclusive on current platforms.  We'll need to
>+		 * come up with a better way to number GTs if we ever wind
>+		 * up with platforms that support both together.
>+		 */
>+		drm_WARN_ON(&xe->drm, id != 0);
>+		gt->info.id = 1;
> 	}
>
> 	return 0;
>-- 
>2.40.0
>


More information about the Intel-xe mailing list