Commit 79cb005c authored by Lukasz Laguna's avatar Lukasz Laguna Committed by Michal Wajdeczko
Browse files

drm/xe: Add device flag to indicate standalone MERT



The MERT subsystem manages memory accesses between host and device. On
the Crescent Island platform, it requires direct management by the
driver.

Introduce a device flag and corresponding helpers to identify platforms
with standalone MERT, enabling proper initialization and handling.

Signed-off-by: default avatarLukasz Laguna <lukasz.laguna@intel.com>
Reviewed-by: default avatarAshutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://patch.msgid.link/20251124190237.20503-2-lukasz.laguna@intel.com
parent 69ef30d6
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -172,6 +172,11 @@ static inline bool xe_device_has_lmtt(struct xe_device *xe)
	return IS_DGFX(xe);
}

static inline bool xe_device_has_mert(struct xe_device *xe)
{
	return xe->info.has_mert;
}

u32 xe_device_ccs_bytes(struct xe_device *xe, u64 size);

void xe_device_snapshot_print(struct xe_device *xe, struct drm_printer *p);
+2 −0
Original line number Diff line number Diff line
@@ -303,6 +303,8 @@ struct xe_device {
		u8 has_mbx_power_limits:1;
		/** @info.has_mem_copy_instr: Device supports MEM_COPY instruction */
		u8 has_mem_copy_instr:1;
		/** @info.has_mert: Device has standalone MERT */
		u8 has_mert:1;
		/** @info.has_pxp: Device has PXP support */
		u8 has_pxp:1;
		/** @info.has_range_tlb_inval: Has range based TLB invalidations */
+2 −0
Original line number Diff line number Diff line
@@ -407,6 +407,7 @@ static const struct xe_device_desc cri_desc = {
	.has_display = false,
	.has_flat_ccs = false,
	.has_mbx_power_limits = true,
	.has_mert = true,
	.has_sriov = true,
	.max_gt_per_tile = 2,
	.require_force_probe = true,
@@ -671,6 +672,7 @@ static int xe_info_init_early(struct xe_device *xe,
	xe->info.has_heci_cscfi = desc->has_heci_cscfi;
	xe->info.has_late_bind = desc->has_late_bind;
	xe->info.has_llc = desc->has_llc;
	xe->info.has_mert = desc->has_mert;
	xe->info.has_pxp = desc->has_pxp;
	xe->info.has_sriov = xe_configfs_primary_gt_allowed(to_pci_dev(xe->drm.dev)) &&
		desc->has_sriov;
+1 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ struct xe_device_desc {
	u8 has_llc:1;
	u8 has_mbx_power_limits:1;
	u8 has_mem_copy_instr:1;
	u8 has_mert:1;
	u8 has_pxp:1;
	u8 has_sriov:1;
	u8 needs_scratch:1;