|
|
Re: [Patchv2] ARM: Orion5x - Restore parts of io.h, with rework |
On 06/20/2012 02:09 PM, Andrew Lunn wrote:
> Commit 4d5fc58dbe34b78157c05b319669bb3e064ba8bd (ARM: remove bunch of
> now unused mach/io.h files) removed the orion5x io.h. Unfortunetely,
typo: Unfortunately
> this is still needed for the definition of IO_SPACE_LIMIT which
> overrides the default 64K. All Orion based systems have 1Mbyte of IO
> space per PCI[e] bus, and try to request_resource() this size. Orion5x
> has two such PCI busses.
typo: buses
>
> It is likely that the origional, removed version, was broken. This
typo: original
> version might be less broken. However, it has not been tested on
> hardware with a PCI card, let alone hardware with a PCI card with IO
> capabilities.
>
> Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
> ---
> arch/arm/Kconfig | 1 +
> arch/arm/mach-orion5x/include/mach/io.h | 22 ++++++++++++++++++++++
> 2 files changed, 23 insertions(+)
> create mode 100644 arch/arm/mach-orion5x/include/mach/io.h
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 84449dd..8fb7e4a 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -588,6 +588,7 @@ config ARCH_ORION5X
> select PCI
> select ARCH_REQUIRE_GPIOLIB
> select GENERIC_CLOCKEVENTS
> + select NEED_MACH_IO_H
> select PLAT_ORION
> help
> Support for the following Marvell Orion 5x series SoCs:
> diff --git a/arch/arm/mach-orion5x/include/mach/io.h b/arch/arm/mach-orion5x/include/mach/io.h
> new file mode 100644
> index 0000000..9f22ae6
> --- /dev/null
> +++ b/arch/arm/mach-orion5x/include/mach/io.h
> @@ -0,0 +1,22 @@
> +/*
> + * arch/arm/mach-orion5x/include/mach/io.h
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> + */
> +
> +#ifndef __ASM_ARCH_IO_H
> +#define __ASM_ARCH_IO_H
> +
> +#include <mach/orion5x.h>
> +#include <asm/sizes.h>
> +
> +#define IO_SPACE_LIMIT SZ_2M
> +static inline void __iomem *__io(unsigned long addr)
> +{
> + return (void __iomem *)(addr + ORION5X_PCI_IO_VIRT_BASE);
You need to use the first i/o range here which is PCIe.
Rob
> +}
> +
> +#define __io(a) __io(a)
> +#endif
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
[Linux ARM (vger)] [Linux ARM MSM] [Linux Omap] [Linux Arm] [Linux Tegra] [Fedora ARM] [eCos] [Linux Fastboot] [Gcc Help] [Git] [DCCP] [IETF Announce] [Security] [PDAs] [Linux] [Linux MIPS] [Yosemite Campsites] [Photos]
![]() |
![]() |