Skip to contentSkip to conversation

Patch "PCI: aardvark: Move to struct pci_host_bridge IRQ mapping functions" has been added to the 4.13-stable tree

PATCH [email protected] 1 participant 1 message Oct 15, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

PCI: aardvark: Move to struct pci_host_bridge IRQ mapping functions

to the 4.13-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
pci-aardvark-move-to-struct-pci_host_bridge-irq-mapping-functions.patch
and it can be found in the queue-4.13 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 407dae1e4415acde2d9f48bb76361893c4653756 Mon Sep 17 00:00:00 2001

From: Thomas Petazzoni <[email protected]>
Date: Mon, 9 Oct 2017 09:00:49 +0200
Subject: PCI: aardvark: Move to struct pci_host_bridge IRQ mapping functions

From: Thomas Petazzoni <[email protected]>

commit 407dae1e4415acde2d9f48bb76361893c4653756 upstream.

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 769b461fc0c0 ("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 769b461fc0c0 ("arm64: PCI: Drop DT IRQ allocation from pcibios_alloc_irq()")
---
 drivers/pci/host/pci-aardvark.c |    2 ++
 1 file changed, 2 insertions(+)
drivers/pci/host/pci-aardvark.c +2 -0
@@ -936,6 +936,8 @@ static int advk_pcie_probe(struct platfo
 	bridge->sysdata = pcie;
 	bridge->busnr = 0;
 	bridge->ops = &advk_pcie_ops;
+	bridge->map_irq = of_irq_parse_and_map_pci;
+	bridge->swizzle_irq = pci_common_swizzle;
 
 	ret = pci_scan_root_bus_bridge(bridge);
 	if (ret < 0) {

Patches currently in stable-queue which might be from [email protected] are

queue-4.13/pci-aardvark-move-to-struct-pci_host_bridge-irq-mapping-functions.patch