[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