amdgpu needs to know the bus number the platform assigned a device to
be able to match firmware images against the right device.
This was previously adjusted to be a soft filter due to
commit 11c141672045f ("drm/amdgpu: Fix VFCT bus number matching with
soft filter") where if everything but the number matched to take a device.
This however fails when there are two identical devices. Instead save the
initial bus number to the PCI device structure and then match that.
Link:
https://lore.kernel.org/linux-pci/[email protected]/
Link:
https://lore.kernel.org/amd-gfx/[email protected]/
Signed-off-by: Mario Limonciello <[email protected]>
---
Changes in v2:
- pci_alloc_dev(NULL) remains safe.
- For buses behind a reassigned bridge, the PCI core now saves the firmware
secondary bus
number before clearing the bridge configuration and carries it into the newly
allocated bus.
Devices discovered there inherit that original number.
- Add changes for radeon too.
- Link to v1:
https://patch.msgid.link/[email protected]
---
Mario Limonciello (3):
PCI: Preserve the initial bus number in pci_dev
drm/amdgpu: Match VFCT using initial PCI bus number
drm/radeon: Match VFCT using initial PCI bus number
drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 17 +++--------------
drivers/gpu/drm/radeon/radeon_bios.c | 17 +++--------------
drivers/pci/probe.c | 9 +++++++++
include/linux/pci.h | 3 +++
4 files changed, 18 insertions(+), 28 deletions(-)
---
base-commit: c03c1a14507dfaf8b856c2608f9ac216021fc222
change-id: 20261019-vfct-regression-2142fc52852a
Best regards,
--
Mario Limonciello <[email protected]>