{ 3503, "Xe3p_HPM", &media_xelpmp },
};
+#define MULTI_LRC_MASK \
+ .multi_lrc_mask = BIT(XE_ENGINE_CLASS_VIDEO_DECODE) | \
+ BIT(XE_ENGINE_CLASS_VIDEO_ENHANCE)
+
static const struct xe_device_desc tgl_desc = {
.pre_gmdid_graphics_ip = &graphics_ip_xelp,
.pre_gmdid_media_ip = &media_ip_xem,
.has_llc = true,
.has_sriov = true,
.max_gt_per_tile = 1,
+ MULTI_LRC_MASK,
.require_force_probe = true,
.va_bits = 48,
.vm_max_level = 3,
.has_display = true,
.has_llc = true,
.max_gt_per_tile = 1,
+ MULTI_LRC_MASK,
.require_force_probe = true,
.va_bits = 48,
.vm_max_level = 3,
.has_llc = true,
.has_sriov = true,
.max_gt_per_tile = 1,
+ MULTI_LRC_MASK,
.require_force_probe = true,
.subplatforms = (const struct xe_subplatform_desc[]) {
{ XE_SUBPLATFORM_ALDERLAKE_S_RPLS, "RPLS", adls_rpls_ids },
.has_llc = true,
.has_sriov = true,
.max_gt_per_tile = 1,
+ MULTI_LRC_MASK,
.require_force_probe = true,
.subplatforms = (const struct xe_subplatform_desc[]) {
{ XE_SUBPLATFORM_ALDERLAKE_P_RPLU, "RPLU", adlp_rplu_ids },
.has_llc = true,
.has_sriov = true,
.max_gt_per_tile = 1,
+ MULTI_LRC_MASK,
.require_force_probe = true,
.va_bits = 48,
.vm_max_level = 3,
.has_gsc_nvm = 1,
.has_heci_gscfi = 1,
.max_gt_per_tile = 1,
+ MULTI_LRC_MASK,
.require_force_probe = true,
.va_bits = 48,
.vm_max_level = 3,
.pre_gmdid_media_ip = &media_ip_xehpm,
.dma_mask_size = 46,
.max_gt_per_tile = 1,
+ MULTI_LRC_MASK,
.require_force_probe = true,
DG2_FEATURES,
.pre_gmdid_media_ip = &media_ip_xehpm,
.dma_mask_size = 46,
.max_gt_per_tile = 1,
+ MULTI_LRC_MASK,
.require_force_probe = true,
DG2_FEATURES,
.has_heci_gscfi = 1,
.max_gt_per_tile = 1,
.max_remote_tiles = 1,
+ MULTI_LRC_MASK,
.require_force_probe = true,
.va_bits = 57,
.vm_max_level = 4,
.has_display = true,
.has_pxp = true,
.max_gt_per_tile = 2,
+ MULTI_LRC_MASK,
.va_bits = 48,
.vm_max_level = 3,
};
.has_flat_ccs = 1,
.has_pxp = true,
.max_gt_per_tile = 2,
+ MULTI_LRC_MASK,
.needs_scratch = true,
.va_bits = 48,
.vm_max_level = 4,
.has_soc_remapper_telem = true,
.has_sriov = true,
.max_gt_per_tile = 2,
+ MULTI_LRC_MASK,
.needs_scratch = true,
.subplatforms = (const struct xe_subplatform_desc[]) {
{ XE_SUBPLATFORM_BATTLEMAGE_G21, "G21", bmg_g21_ids },
.has_pre_prod_wa = 1,
.has_pxp = true,
.max_gt_per_tile = 2,
+ MULTI_LRC_MASK,
.needs_scratch = true,
.needs_shared_vf_gt_wq = true,
.va_bits = 48,
.has_flat_ccs = 1,
.has_pre_prod_wa = 1,
.max_gt_per_tile = 2,
+ MULTI_LRC_MASK,
.require_force_probe = true,
.va_bits = 48,
.vm_max_level = 4,
.has_soc_remapper_telem = true,
.has_sriov = true,
.max_gt_per_tile = 2,
+ MULTI_LRC_MASK,
.require_force_probe = true,
.va_bits = 57,
.vm_max_level = 4,
.has_page_reclaim_hw_assist = true,
.has_pre_prod_wa = true,
.max_gt_per_tile = 2,
+ MULTI_LRC_MASK,
.require_force_probe = true,
.va_bits = 48,
.vm_max_level = 4,
xe->info.skip_pcode = desc->skip_pcode;
xe->info.needs_scratch = desc->needs_scratch;
xe->info.needs_shared_vf_gt_wq = desc->needs_shared_vf_gt_wq;
+ xe->info.multi_lrc_mask = desc->multi_lrc_mask;
xe->info.probe_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
xe_modparam.probe_display &&