]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
PCI: iproc: Restore .map_irq() for the platform bus driver
authorMark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Thu, 30 Apr 2026 02:16:28 +0000 (14:16 +1200)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 18 Jun 2026 15:16:57 +0000 (10:16 -0500)
commit3c2e6cc6affa8acdb99a580be1f8f297edf54204
tree24b10d835faf6b563f3576cc7a965d9680a6f87d
parent254f49634ee16a731174d2ae34bc50bd5f45e731
PCI: iproc: Restore .map_irq() for the platform bus driver

Commit b64aa11eb2dd ("PCI: Set bridge map_irq and swizzle_irq to default
functions") moved the assignment of default .map_irq() callback to
devm_of_pci_bridge_init() and removed the initialization of
'iproc_pcie::map_irq' in platform bus driver.  This led to the callback
getting assigned the NULL pointer for platform bus driver, thereby breaking
the INTx functionality, since 'iproc_pcie::map_irq' overrides the
'pci_host_bridge::map_irq' callback in iproc_pcie_setup().

This issue only affected the iproc platform bus driver as this driver
relies on the default callback for non-PAXC controllers. iproc-brcm driver
was already providing the custom mapping function, so it was unaffected.

Restore the original (and intended) behaviour to use the default map_irq
function by removing the local 'iproc_pcie::map_irq' pointer and directly
assigning the 'pci_host_bridge::map_irq' callback in iproc-bcma driver.
This ensures that the default 'map_irq' callback is used for platform bus
driver and only iproc-brcm driver overrides it with a custom one.

Fixes: b64aa11eb2dd ("PCI: Set bridge map_irq and swizzle_irq to default functions")
Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
[mani: commit log]
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Ray Jui <ray.jui@broadcom.com>
Link: https://patch.msgid.link/20260430021628.1343154-1-mark.tomlinson@alliedtelesis.co.nz
drivers/pci/controller/pcie-iproc-bcma.c
drivers/pci/controller/pcie-iproc-platform.c
drivers/pci/controller/pcie-iproc.c
drivers/pci/controller/pcie-iproc.h