struct xe_probed_info {
u16 devid;
u8 revid;
+ struct xe_step_info step;
};
/*
* Probe from the hardware the info required by xe_info_init_early().
*/
static int xe_probe_info_early(struct xe_device *xe,
+ const struct xe_device_desc *desc,
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;
+ xe_step_platform_get(desc->platform, probed_info->revid, &probed_info->step);
+
return 0;
}
xe->info.devid = probed_info->devid;
xe->info.revid = probed_info->revid;
+ xe->info.step.platform = probed_info->step.platform;
xe->info.platform_name = desc->platform_name;
xe->info.platform = desc->platform;
xe->info.max_gt_per_tile = desc->max_gt_per_tile;
xe->info.tile_count = 1 + desc->max_remote_tiles;
- xe_step_platform_get(xe->info.platform, xe->info.revid, &xe->info.step);
-
err = xe_tile_init_early(xe_device_get_root_tile(xe), xe, 0);
if (err)
return err;
pci_set_master(pdev);
- err = xe_probe_info_early(xe, &probed_info);
+ err = xe_probe_info_early(xe, desc, &probed_info);
if (err)
return err;