Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ACPI: pci_link: Clear the dependencies after probe

RISC-V platforms need to use dependencies between PCI host bridge, Link
devices and the interrupt controllers to ensure probe order. The
dependency is like below.

Interrupt controller <-- Link Device <-- PCI Host bridge.

If there is no dependency between Link device and PCI Host Bridge,
then PCI devices may be probed prior to Link devices. If a PCI
device is probed before its Link device, we won't be able to find
its INTx mapping.

So, add the link device's HID to dependency honor list and clear the
dependency after probe is done so that the dependent devices are
unblocked to probe.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Tested-by: Björn Töpel <bjorn@rivosinc.com>
Link: https://patch.msgid.link/20240812005929.113499-9-sunilvl@ventanamicro.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Sunil V L and committed by
Rafael J. Wysocki
2cb9155d 21734d29

+3
+2
drivers/acpi/pci_link.c
··· 748 748 if (result) 749 749 kfree(link); 750 750 751 + acpi_dev_clear_dependencies(device); 752 + 751 753 return result < 0 ? result : 1; 752 754 } 753 755
+1
drivers/acpi/scan.c
··· 863 863 "INTC10CF", /* IVSC (MTL) driver must be loaded to allow i2c access to camera sensors */ 864 864 "RSCV0001", /* RISC-V PLIC */ 865 865 "RSCV0002", /* RISC-V APLIC */ 866 + "PNP0C0F", /* PCI Link Device */ 866 867 NULL 867 868 }; 868 869