• Thomas Petazzoni's avatar
    PCI: aardvark: Move to struct pci_host_bridge IRQ mapping functions · 407dae1e
    Thomas Petazzoni authored
    struct pci_host_bridge gained hooks to map/swizzle IRQs, so that the IRQ
    mapping can be done automatically by PCI core code through the
    pci_assign_irq() function instead of resorting to arch-specific
    implementation callbacks to carry out the same task which force PCI host
    bridge drivers implementation to implement per-arch kludges to carry out a
    task that is inherently architecture agnostic.
    
    Commit 769b461f ("arm64: PCI: Drop DT IRQ allocation from
    pcibios_alloc_irq()") was assuming all PCI host controller drivers had been
    converted to use ->map_irq(), but that wasn't the case: pci-aardvark had
    not been converted. Due to this, it broke the support for legacy PCI
    interrupts when using the pci-aardvark driver (used on Marvell Armada 3720
    platforms).
    
    In order to fix this, we make sure the ->map_irq and ->swizzle_irq fields
    of pci_host_bridge are properly filled in.
    
    Fixes: 769b461f ("arm64: PCI: Drop DT IRQ allocation from pcibios_alloc_irq()")
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Cc: stable@vger.kernel.org	# v4.13+
    407dae1e
pci-aardvark.c 26.8 KB