Message ID | 1404240214-9804-8-git-send-email-Liviu.Dudau@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 01, 2014 at 07:43:32PM +0100, Liviu Dudau wrote: > 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); > +#endif You could avoid the #ifdef by only assigning dev->irq if of_irq_parse_and_map_pci returned something > 0. Will
On Wed, Jul 2, 2014 at 6:17 AM, Will Deacon <will.deacon@arm.com> wrote: > On Tue, Jul 01, 2014 at 07:43:32PM +0100, Liviu Dudau wrote: >> 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); >> +#endif > > You 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
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); +#endif return 0; }
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(+)