From mboxrd@z Thu Jan 1 00:00:00 1970 From: arnd@arndb.de (Arnd Bergmann) Date: Tue, 21 Sep 2010 14:30:00 +0200 Subject: [PATCH v2 2/3] [ARM] tegra: add PCI Express support In-Reply-To: References: Message-ID: <201009211430.00325.arnd@arndb.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org > Signed-off-by: Mike Rapoport > CC: Arnd Bergmann > CC: Russell King > CC: Colin Cross > CC: Gary King Acked-by: Arnd Bergmann On Tuesday 21 September 2010, Mike Rapoport wrote: > > /* On TEGRA, many peripherals are very closely packed in > * two 256MB io windows (that actually only use about 64KB > @@ -67,10 +67,20 @@ void tegra_iounmap(volatile void __iomem *addr); > > #define IO_ADDRESS(n) ((void __iomem *) IO_TO_VIRT(n)) > > +#ifdef CONFIG_TEGRA_PCI > +extern void __iomem *tegra_pcie_io_base; > + > +static inline void __iomem *__io(unsigned long addr) > +{ > + return tegra_pcie_io_base + (addr & IO_SPACE_LIMIT); > +} > +#else > static inline void __iomem *__io(unsigned long addr) > { > return (void __iomem *)addr; > } > +#endif > + > #define __io(a) __io(a) > #define __mem_pci(a) (a) I wonder what the #else path is for. If you don't have PCI, who would call __io? And wouldn't that result in a NULL pointer dereference? Arnd