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]>

Reply via email to