[PATCH v8 7/9] pci: of: Parse and map the IRQ when adding the PCI device.
From: Rob Herring <hidden>
Date: 2014-07-05 19:05:06
Also in:
linux-devicetree, linux-pci, lkml
From: Rob Herring <hidden>
Date: 2014-07-05 19:05:06
Also in:
linux-devicetree, linux-pci, lkml
On Wed, Jul 2, 2014 at 6:17 AM, Will Deacon [off-list ref] wrote:
On Tue, Jul 01, 2014 at 07:43:32PM +0100, Liviu Dudau wrote:quoted
Enhance the default implementation of pcibios_add_device() to parse and map the IRQ of the device if a DT binding is available. Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> --- drivers/pci/pci.c | 4 ++++ 1 file changed, 4 insertions(+)diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 63a54a3..8e65dc3 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c@@ -17,6 +17,7 @@ #include <linux/spinlock.h> #include <linux/string.h> #include <linux/log2.h> +#include <linux/of_pci.h> #include <linux/pci-aspm.h> #include <linux/pm_wakeup.h> #include <linux/interrupt.h>@@ -1453,6 +1454,9 @@ EXPORT_SYMBOL(pcim_pin_device); */ int __weak pcibios_add_device(struct pci_dev *dev) { +#ifdef CONFIG_OF + dev->irq = of_irq_parse_and_map_pci(dev, 0, 0); +#endifYou could avoid the #ifdef by only assigning dev->irq if of_irq_parse_and_map_pci returned something > 0.
Perhaps it could just be unconditional always. Presumably, dev->irq is not already set to something valid and setting it to <= 0 should not have any consequences. Rob