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

arm64: PCI: Drop DT IRQ allocation from pcibios_alloc_irq()

With the introduction of struct pci_host_bridge.map_irq pointer it is
possible to assign IRQs for all devices originating from a PCI host bridge
at probe time; this is implemented through pci_assign_irq() that relies on
the struct pci_host_bridge.map_irq pointer to map IRQ for a given device.

The benefits this brings are twofold:

- the IRQ for a device is assigned once at probe time
- the IRQ assignment works also for hotplugged devices

With all DT based PCI host bridges converted to the struct
pci_host_bridge.{map/swizzle}_irq hooks mechanism the DT IRQ allocation in
ARM64 pcibios_alloc_irq() is now redundant and can be removed.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Will Deacon <will.deacon@arm.com>

authored by

Lorenzo Pieralisi and committed by
Bjorn Helgaas
769b461f 1ee4d93d

+4 -6
+4 -6
arch/arm64/kernel/pci.c
··· 39 39 return res->start; 40 40 } 41 41 42 + #ifdef CONFIG_ACPI 42 43 /* 43 44 * Try to assign the IRQ number when probing a new device 44 45 */ 45 46 int pcibios_alloc_irq(struct pci_dev *dev) 46 47 { 47 - if (acpi_disabled) 48 - dev->irq = of_irq_parse_and_map_pci(dev, 0, 0); 49 - #ifdef CONFIG_ACPI 50 - else 51 - return acpi_pci_irq_enable(dev); 52 - #endif 48 + if (!acpi_disabled) 49 + acpi_pci_irq_enable(dev); 53 50 54 51 return 0; 55 52 } 53 + #endif 56 54 57 55 /* 58 56 * raw_pci_read/write - Platform-specific PCI config space access.