]> git.hungrycats.org Git - linux/commitdiff
drm/xe: Add devid and revid to xe_probed_info
authorGustavo Sousa <gustavo.sousa@intel.com>
Tue, 9 Jun 2026 20:17:35 +0000 (17:17 -0300)
committerGustavo Sousa <gustavo.sousa@intel.com>
Thu, 2 Jul 2026 21:41:50 +0000 (18:41 -0300)
The PCI devid and revid fields are info that we probe from the
hardware (indirectly via the PCI subsystem).  Add them to
xe_probed_info and set them via xe_probe_info_early(), since the
respective fields in xe->info are updated in xe_info_init_early().

Reviewed-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Reviewed-by: Violet Monti <violet.monti@intel.com>
Link: https://patch.msgid.link/20260609-xe-probe-info-v1-3-21e83e188e60@intel.com
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
drivers/gpu/drm/xe/tests/xe_pci.c
drivers/gpu/drm/xe/xe_pci.c

index 51d032a9e01a225113465c60572e66d6d6bed712..1baf3cd0d38158819a73df90eaf02e98049552a1 100644 (file)
@@ -311,11 +311,6 @@ const void *xe_pci_id_gen_param(struct kunit *test, const void *prev, char *desc
 }
 EXPORT_SYMBOL_IF_KUNIT(xe_pci_id_gen_param);
 
-static void fake_init_devid(struct xe_device *xe)
-{
-       /* Nothing to do, just keep zero. */
-}
-
 static int fake_read_gmdid(struct xe_device *xe, enum xe_gmdid_type type,
                           u32 *ver, u32 *revid)
 {
@@ -382,7 +377,6 @@ done:
        xe->sriov.__mode = data && data->sriov_mode ?
                           data->sriov_mode : XE_SRIOV_MODE_NONE;
 
-       kunit_activate_static_stub(test, init_devid, fake_init_devid);
        kunit_activate_static_stub(test, read_gmdid, fake_read_gmdid);
        kunit_activate_static_stub(test, xe_info_probe_tile_count,
                                   fake_xe_info_probe_tile_count);
index c4f7ffd039872b6f98a1e396a89381cdb8841636..c767cf00607dd6abc93702454318194252e1d7b3 100644 (file)
@@ -729,18 +729,9 @@ static int handle_gmdid(struct xe_device *xe,
        return 0;
 }
 
-static void init_devid(struct xe_device *xe)
-{
-       struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
-
-       KUNIT_STATIC_STUB_REDIRECT(init_devid, xe);
-
-       xe->info.devid = pdev->device;
-       xe->info.revid = pdev->revision;
-}
-
 struct xe_probed_info {
-       /* Nothing for now. */
+       u16 devid;
+       u8 revid;
 };
 
 /*
@@ -749,6 +740,11 @@ struct xe_probed_info {
 static int xe_probe_info_early(struct xe_device *xe,
                               struct xe_probed_info *probed_info)
 {
+       struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+
+       probed_info->devid = pdev->device;
+       probed_info->revid = pdev->revision;
+
        return 0;
 }
 
@@ -763,13 +759,14 @@ static int xe_info_init_early(struct xe_device *xe,
 {
        int err;
 
+       xe->info.devid = probed_info->devid;
+       xe->info.revid = probed_info->revid;
+
        xe->info.platform_name = desc->platform_name;
        xe->info.platform = desc->platform;
        xe->info.subplatform = subplatform_desc ?
                subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
 
-       init_devid(xe);
-
        xe->info.dma_mask_size = desc->dma_mask_size;
        xe->info.va_bits = desc->va_bits;
        xe->info.vm_max_level = desc->vm_max_level;