Message ID | 56685BE5.3000909@arm.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
> -----Original Message----- > From: Marc Zyngier [mailto:marc.zyngier@arm.com] > Sent: Wednesday, December 9, 2015 8:51 AM > To: Jake Oshins <jakeo@microsoft.com>; gregkh@linuxfoundation.org; KY > Srinivasan <kys@microsoft.com>; linux-kernel@vger.kernel.org; > devel@linuxdriverproject.org; olaf@aepfle.de; apw@canonical.com; > vkuznets@redhat.com; tglx@linutronix.de; Haiyang Zhang > <haiyangz@microsoft.com>; bhelgaas@google.com; linux- > pci@vger.kernel.org > Subject: Re: [PATCH v7 4/7] PCI: Add fwnode_handle to pci_sysdata > > On 05/12/15 00:36, jakeo@microsoft.com wrote: > > From: Jake Oshins <jakeo@microsoft.com> > > > > This patch adds an fwnode_handle to struct pci_sysdata, which is > > used by the next patch in the series when trying to locate an > > IRQ domain associated with a root PCI bus. > > > > Signed-off-by: Jake Oshins <jakeo@microsoft.com> > > --- > > arch/x86/include/asm/pci.h | 15 +++++++++++++++ > > include/asm-generic/pci.h | 4 ++++ > > 2 files changed, 19 insertions(+) > > > > [...] > > > diff --git a/include/asm-generic/pci.h b/include/asm-generic/pci.h > > index f24bc51..4092886 100644 > > --- a/include/asm-generic/pci.h > > +++ b/include/asm-generic/pci.h > > @@ -21,4 +21,8 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev > *dev, int channel) > > #define PCI_DMA_BUS_IS_PHYS (1) > > #endif > > > > +#ifndef pci_root_bus_fwnode > > +#define pci_root_bus_fwnode(bus) ((void)(bus), NULL) > > +#endif > > + > > #endif /* _ASM_GENERIC_PCI_H */ > > > > This breaks at least arm64 (as you can see from the reply to patch #5, > because it does have its own asm/pci.h. Instead, how about moving this > to linux/pci.h, just after the include of asm/pci.h? I just gave it a > go, and it seems to work nicely (the first hunk fixes the rest of the > arm64 compile issue): Thank you. I was just working through how to do that. I lost a couple of days trying to figure out how to cross-compile for arm64 to check that any fix that I made actually worked. (In the process, I've completely messed up my development machine. Any pointers to the right strategy would be appreciated.) -- Jake Oshins -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 09/12/15 16:54, Jake Oshins wrote: >> -----Original Message----- >> From: Marc Zyngier [mailto:marc.zyngier@arm.com] >> Sent: Wednesday, December 9, 2015 8:51 AM >> To: Jake Oshins <jakeo@microsoft.com>; gregkh@linuxfoundation.org; KY >> Srinivasan <kys@microsoft.com>; linux-kernel@vger.kernel.org; >> devel@linuxdriverproject.org; olaf@aepfle.de; apw@canonical.com; >> vkuznets@redhat.com; tglx@linutronix.de; Haiyang Zhang >> <haiyangz@microsoft.com>; bhelgaas@google.com; linux- >> pci@vger.kernel.org >> Subject: Re: [PATCH v7 4/7] PCI: Add fwnode_handle to pci_sysdata >> >> On 05/12/15 00:36, jakeo@microsoft.com wrote: >>> From: Jake Oshins <jakeo@microsoft.com> >>> >>> This patch adds an fwnode_handle to struct pci_sysdata, which is >>> used by the next patch in the series when trying to locate an >>> IRQ domain associated with a root PCI bus. >>> >>> Signed-off-by: Jake Oshins <jakeo@microsoft.com> >>> --- >>> arch/x86/include/asm/pci.h | 15 +++++++++++++++ >>> include/asm-generic/pci.h | 4 ++++ >>> 2 files changed, 19 insertions(+) >>> >> >> [...] >> >>> diff --git a/include/asm-generic/pci.h b/include/asm-generic/pci.h >>> index f24bc51..4092886 100644 >>> --- a/include/asm-generic/pci.h >>> +++ b/include/asm-generic/pci.h >>> @@ -21,4 +21,8 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev >> *dev, int channel) >>> #define PCI_DMA_BUS_IS_PHYS (1) >>> #endif >>> >>> +#ifndef pci_root_bus_fwnode >>> +#define pci_root_bus_fwnode(bus) ((void)(bus), NULL) >>> +#endif >>> + >>> #endif /* _ASM_GENERIC_PCI_H */ >>> >> >> This breaks at least arm64 (as you can see from the reply to patch #5, >> because it does have its own asm/pci.h. Instead, how about moving this >> to linux/pci.h, just after the include of asm/pci.h? I just gave it a >> go, and it seems to work nicely (the first hunk fixes the rest of the >> arm64 compile issue): > > Thank you. I was just working through how to do that. I lost a > couple of days trying to figure out how to cross-compile for arm64 to > check that any fix that I made actually worked. (In the process, > I've completely messed up my development machine. Any pointers to > the right strategy would be appreciated.) My own strategy is pretty simple. It involves: - downloading a binary toolchain ([1] for example) - untar this somewhere, putting the gcc-linaro-5.2-2015.11-x86_64_aarch64-linux-gnu/bin directory in your PATH - and then the usual "make ARCH=arm64 defconfig && make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- all" That's of course assuming you're using a Linux x86-64 box for cross-compiling. I also cross-compile from 32bit ARM, but I doubt you'd be interested... ;-) Cheers, M. [1] https://releases.linaro.org/components/toolchain/binaries/5.2-2015.11/aarch64-linux-gnu/gcc-linaro-5.2-2015.11-x86_64_aarch64-linux-gnu.tar.xz
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 8f3d056..c6369dd 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -15,6 +15,7 @@ #include <linux/pci-aspm.h> #include <linux/aer.h> #include <linux/acpi.h> +#include <linux/irqdomain.h> #include <asm-generic/pci-bridge.h> #include "pci.h" diff --git a/include/asm-generic/pci.h b/include/asm-generic/pci.h index 4092886..f24bc51 100644 --- a/include/asm-generic/pci.h +++ b/include/asm-generic/pci.h @@ -21,8 +21,4 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) #define PCI_DMA_BUS_IS_PHYS (1) #endif -#ifndef pci_root_bus_fwnode -#define pci_root_bus_fwnode(bus) ((void)(bus), NULL) -#endif - #endif /* _ASM_GENERIC_PCI_H */ diff --git a/include/linux/pci.h b/include/linux/pci.h index 6ae25aa..b4144228 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -1517,6 +1517,10 @@ static inline int pci_get_new_domain_nr(void) { return -ENOSYS; } #include <asm/pci.h> +#ifndef pci_root_bus_fwnode +#define pci_root_bus_fwnode(bus) ((void)(bus), NULL) +#endif + /* these helpers provide future and backwards compatibility * for accessing popular PCI BAR info */ #define pci_resource_start(dev, bar) ((dev)->resource[(bar)].start)