drm/xe: Reinstate media GT support
Now that tiles and GTs are handled separately and other prerequisite changes are in place, we're ready to re-enable the media GT. Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Link: https://lore.kernel.org/r/20230601215244.678611-31-matthew.d.roper@intel.com Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
1bc728dcb8
commit
7bfbad97d3
@ -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)
|
||||
|
@ -545,7 +545,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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user