]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe/xe_pci: Enable System Controller support on CRI platform
authorAnoop Vijay <anoop.c.vijay@intel.com>
Fri, 27 Mar 2026 13:18:44 +0000 (06:18 -0700)
committerUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Mon, 30 Mar 2026 17:06:55 +0000 (10:06 -0700)
Enable System Controller support on CRI by setting has_sysctrl capability
flag in device descriptor and runtime device information.

This allows sysctrl subsystem and mailbox communication to be initialized
on CRI platforms.

Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://patch.msgid.link/20260327131837.2192929-16-anoop.c.vijay@intel.com
drivers/gpu/drm/xe/xe_pci.c

index 01673d2b2464989124d687b6280ad1f8904ab06c..26eb58e110566dff86f2df7cbe1f75c61c80f62a 100644 (file)
@@ -465,6 +465,7 @@ static const struct xe_device_desc cri_desc = {
        .has_soc_remapper_sysctrl = true,
        .has_soc_remapper_telem = true,
        .has_sriov = true,
+       .has_sysctrl = true,
        .max_gt_per_tile = 2,
        MULTI_LRC_MASK,
        .require_force_probe = true,
@@ -763,6 +764,7 @@ static int xe_info_init_early(struct xe_device *xe,
        xe->info.has_soc_remapper_telem = desc->has_soc_remapper_telem;
        xe->info.has_sriov = xe_configfs_primary_gt_allowed(to_pci_dev(xe->drm.dev)) &&
                desc->has_sriov;
+       xe->info.has_sysctrl = desc->has_sysctrl;
        xe->info.skip_guc_pc = desc->skip_guc_pc;
        xe->info.skip_mtcfg = desc->skip_mtcfg;
        xe->info.skip_pcode = desc->skip_pcode;
@@ -959,6 +961,12 @@ static int xe_info_init(struct xe_device *xe,
        xe->info.has_64bit_timestamp = graphics_desc->has_64bit_timestamp;
        xe->info.has_mem_copy_instr = GRAPHICS_VER(xe) >= 20;
 
+       if (IS_SRIOV_VF(xe)) {
+               xe->info.has_sysctrl = 0;
+               xe->info.has_soc_remapper_sysctrl = 0;
+               xe->info.has_soc_remapper_telem = 0;
+       }
+
        xe_info_probe_tile_count(xe);
 
        for_each_remote_tile(tile, xe, id) {