From: Gustavo Sousa Date: Tue, 9 Jun 2026 20:17:35 +0000 (-0300) Subject: drm/xe: Add devid and revid to xe_probed_info X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70b85cb2b590da3325310f0bb50bbe3312f18687;p=linux drm/xe: Add devid and revid to xe_probed_info 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 Reviewed-by: Violet Monti Link: https://patch.msgid.link/20260609-xe-probe-info-v1-3-21e83e188e60@intel.com Signed-off-by: Gustavo Sousa --- diff --git a/drivers/gpu/drm/xe/tests/xe_pci.c b/drivers/gpu/drm/xe/tests/xe_pci.c index 51d032a9e01a2..1baf3cd0d3815 100644 --- a/drivers/gpu/drm/xe/tests/xe_pci.c +++ b/drivers/gpu/drm/xe/tests/xe_pci.c @@ -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); diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c index c4f7ffd039872..c767cf00607dd 100644 --- a/drivers/gpu/drm/xe/xe_pci.c +++ b/drivers/gpu/drm/xe/xe_pci.c @@ -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;