summaryrefslogtreecommitdiffstats
path: root/target/linux/gemini/patches/000-ARM-gemini-get-platform-to-build-again.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/gemini/patches/000-ARM-gemini-get-platform-to-build-again.patch')
-rw-r--r--target/linux/gemini/patches/000-ARM-gemini-get-platform-to-build-again.patch348
1 files changed, 0 insertions, 348 deletions
diff --git a/target/linux/gemini/patches/000-ARM-gemini-get-platform-to-build-again.patch b/target/linux/gemini/patches/000-ARM-gemini-get-platform-to-build-again.patch
deleted file mode 100644
index 25ed5f2609..0000000000
--- a/target/linux/gemini/patches/000-ARM-gemini-get-platform-to-build-again.patch
+++ /dev/null
@@ -1,348 +0,0 @@
-From patchwork Fri Jan 4 15:30:38 2013
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [RFC,1/3] ARM: gemini: get platform to build again
-Date: Fri, 04 Jan 2013 15:30:38 -0000
-From: Arnd Bergmann <arnd@arndb.de>
-X-Patchwork-Id: 1933501
-Message-Id: <1357313440-20092-1-git-send-email-arnd@arndb.de>
-To: Hans Ulli Kroll <ulli.kroll@googlemail.com>
-Cc: Russell King <rmk+kernel@arm.linux.org.uk>, Arnd Bergmann <arnd@arndb.de>,
- Florian Fainelli <florian@openwrt.org>,
- linux-arm-kernel@lists.infradead.org
-
-There is no defconfig file for gemini, which has lead to a lot
-of bitrot. This makes the broken board files, the gpio implementation
-and the reset logic work again, and fixes the build warnings
-that got introduced with the changes to the readl/writel prototypes.
-
-Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-
----
-(retransmitted because the original was rejected by linux-arm-kernel)
-
- arch/arm/Kconfig | 1 +
- arch/arm/mach-gemini/Makefile | 2 +-
- arch/arm/mach-gemini/board-nas4220b.c | 1 +
- arch/arm/mach-gemini/board-rut1xx.c | 2 ++
- arch/arm/mach-gemini/board-wbd111.c | 1 +
- arch/arm/mach-gemini/board-wbd222.c | 1 +
- arch/arm/mach-gemini/common.h | 2 ++
- arch/arm/mach-gemini/gpio.c | 19 ++++++++++---------
- arch/arm/mach-gemini/include/mach/hardware.h | 2 +-
- arch/arm/mach-gemini/include/mach/system.h | 23 -----------------------
- arch/arm/mach-gemini/irq.c | 4 ++--
- arch/arm/mach-gemini/mm.c | 22 +++++++++++-----------
- arch/arm/mach-gemini/reset.c | 23 +++++++++++++++++++++++
- 13 files changed, 56 insertions(+), 47 deletions(-)
- delete mode 100644 arch/arm/mach-gemini/include/mach/system.h
- create mode 100644 arch/arm/mach-gemini/reset.c
-
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -410,6 +410,7 @@ config ARCH_GEMINI
- bool "Cortina Systems Gemini"
- select ARCH_REQUIRE_GPIOLIB
- select ARCH_USES_GETTIMEOFFSET
-+ select NEED_MACH_GPIO_H
- select CPU_FA526
- help
- Support for the Cortina Systems Gemini family SoCs
---- a/arch/arm/mach-gemini/Makefile
-+++ b/arch/arm/mach-gemini/Makefile
-@@ -4,7 +4,7 @@
-
- # Object file lists.
-
--obj-y := irq.o mm.o time.o devices.o gpio.o idle.o
-+obj-y := irq.o mm.o time.o devices.o gpio.o idle.o reset.o
-
- # Board-specific support
- obj-$(CONFIG_MACH_NAS4220B) += board-nas4220b.o
---- a/arch/arm/mach-gemini/board-nas4220b.c
-+++ b/arch/arm/mach-gemini/board-nas4220b.c
-@@ -103,4 +103,5 @@ MACHINE_START(NAS4220B, "Raidsonic NAS I
- .init_irq = gemini_init_irq,
- .init_time = gemini_timer_init,
- .init_machine = ib4220b_init,
-+ .restart = gemini_restart,
- MACHINE_END
---- a/arch/arm/mach-gemini/board-rut1xx.c
-+++ b/arch/arm/mach-gemini/board-rut1xx.c
-@@ -14,6 +14,7 @@
- #include <linux/leds.h>
- #include <linux/input.h>
- #include <linux/gpio_keys.h>
-+#include <linux/sizes.h>
-
- #include <asm/mach-types.h>
- #include <asm/mach/arch.h>
-@@ -87,4 +88,5 @@ MACHINE_START(RUT100, "Teltonika RUT100"
- .init_irq = gemini_init_irq,
- .init_time = gemini_timer_init,
- .init_machine = rut1xx_init,
-+ .restart = gemini_restart,
- MACHINE_END
---- a/arch/arm/mach-gemini/board-wbd111.c
-+++ b/arch/arm/mach-gemini/board-wbd111.c
-@@ -130,4 +130,5 @@ MACHINE_START(WBD111, "Wiliboard WBD-111
- .init_irq = gemini_init_irq,
- .init_time = gemini_timer_init,
- .init_machine = wbd111_init,
-+ .restart = gemini_restart,
- MACHINE_END
---- a/arch/arm/mach-gemini/board-wbd222.c
-+++ b/arch/arm/mach-gemini/board-wbd222.c
-@@ -130,4 +130,5 @@ MACHINE_START(WBD222, "Wiliboard WBD-222
- .init_irq = gemini_init_irq,
- .init_time = gemini_timer_init,
- .init_machine = wbd222_init,
-+ .restart = gemini_restart,
- MACHINE_END
---- a/arch/arm/mach-gemini/common.h
-+++ b/arch/arm/mach-gemini/common.h
-@@ -26,4 +26,6 @@ extern int platform_register_pflash(unsi
- struct mtd_partition *parts,
- unsigned int nr_parts);
-
-+extern void gemini_restart(char mode, const char *cmd);
-+
- #endif /* __GEMINI_COMMON_H__ */
---- a/arch/arm/mach-gemini/gpio.c
-+++ b/arch/arm/mach-gemini/gpio.c
-@@ -21,6 +21,7 @@
-
- #include <mach/hardware.h>
- #include <mach/irqs.h>
-+#include <mach/gpio.h>
-
- #define GPIO_BASE(x) IO_ADDRESS(GEMINI_GPIO_BASE(x))
-
-@@ -44,7 +45,7 @@
-
- #define GPIO_PORT_NUM 3
-
--static void _set_gpio_irqenable(unsigned int base, unsigned int index,
-+static void _set_gpio_irqenable(void __iomem *base, unsigned int index,
- int enable)
- {
- unsigned int reg;
-@@ -57,7 +58,7 @@ static void _set_gpio_irqenable(unsigned
- static void gpio_ack_irq(struct irq_data *d)
- {
- unsigned int gpio = irq_to_gpio(d->irq);
-- unsigned int base = GPIO_BASE(gpio / 32);
-+ void __iomem *base = GPIO_BASE(gpio / 32);
-
- __raw_writel(1 << (gpio % 32), base + GPIO_INT_CLR);
- }
-@@ -65,7 +66,7 @@ static void gpio_ack_irq(struct irq_data
- static void gpio_mask_irq(struct irq_data *d)
- {
- unsigned int gpio = irq_to_gpio(d->irq);
-- unsigned int base = GPIO_BASE(gpio / 32);
-+ void __iomem *base = GPIO_BASE(gpio / 32);
-
- _set_gpio_irqenable(base, gpio % 32, 0);
- }
-@@ -73,7 +74,7 @@ static void gpio_mask_irq(struct irq_dat
- static void gpio_unmask_irq(struct irq_data *d)
- {
- unsigned int gpio = irq_to_gpio(d->irq);
-- unsigned int base = GPIO_BASE(gpio / 32);
-+ void __iomem *base = GPIO_BASE(gpio / 32);
-
- _set_gpio_irqenable(base, gpio % 32, 1);
- }
-@@ -82,7 +83,7 @@ static int gpio_set_irq_type(struct irq_
- {
- unsigned int gpio = irq_to_gpio(d->irq);
- unsigned int gpio_mask = 1 << (gpio % 32);
-- unsigned int base = GPIO_BASE(gpio / 32);
-+ void __iomem *base = GPIO_BASE(gpio / 32);
- unsigned int reg_both, reg_level, reg_type;
-
- reg_type = __raw_readl(base + GPIO_INT_TYPE);
-@@ -120,7 +121,7 @@ static int gpio_set_irq_type(struct irq_
- __raw_writel(reg_level, base + GPIO_INT_LEVEL);
- __raw_writel(reg_both, base + GPIO_INT_BOTH_EDGE);
-
-- gpio_ack_irq(d->irq);
-+ gpio_ack_irq(d);
-
- return 0;
- }
-@@ -153,7 +154,7 @@ static struct irq_chip gpio_irq_chip = {
- static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
- int dir)
- {
-- unsigned int base = GPIO_BASE(offset / 32);
-+ void __iomem *base = GPIO_BASE(offset / 32);
- unsigned int reg;
-
- reg = __raw_readl(base + GPIO_DIR);
-@@ -166,7 +167,7 @@ static void _set_gpio_direction(struct g
-
- static void gemini_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
- {
-- unsigned int base = GPIO_BASE(offset / 32);
-+ void __iomem *base = GPIO_BASE(offset / 32);
-
- if (value)
- __raw_writel(1 << (offset % 32), base + GPIO_DATA_SET);
-@@ -176,7 +177,7 @@ static void gemini_gpio_set(struct gpio_
-
- static int gemini_gpio_get(struct gpio_chip *chip, unsigned offset)
- {
-- unsigned int base = GPIO_BASE(offset / 32);
-+ void __iomem *base = GPIO_BASE(offset / 32);
-
- return (__raw_readl(base + GPIO_DATA_IN) >> (offset % 32)) & 1;
- }
---- a/arch/arm/mach-gemini/include/mach/hardware.h
-+++ b/arch/arm/mach-gemini/include/mach/hardware.h
-@@ -69,6 +69,6 @@
- /*
- * macro to get at IO space when running virtually
- */
--#define IO_ADDRESS(x) ((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
-+#define IO_ADDRESS(x) IOMEM((((x) & 0xFFF00000) >> 4) | ((x) & 0x000FFFFF) | 0xF0000000)
-
- #endif
---- a/arch/arm/mach-gemini/include/mach/system.h
-+++ /dev/null
-@@ -1,23 +0,0 @@
--/*
-- * Copyright (C) 2001-2006 Storlink, Corp.
-- * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
-- *
-- * This program is free software; you can redistribute it and/or modify
-- * it under the terms of the GNU General Public License as published by
-- * the Free Software Foundation; either version 2 of the License, or
-- * (at your option) any later version.
-- */
--#ifndef __MACH_SYSTEM_H
--#define __MACH_SYSTEM_H
--
--#include <linux/io.h>
--#include <mach/hardware.h>
--#include <mach/global_reg.h>
--
--static inline void arch_reset(char mode, const char *cmd)
--{
-- __raw_writel(RESET_GLOBAL | RESET_CPU1,
-- IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
--}
--
--#endif /* __MACH_SYSTEM_H */
---- a/arch/arm/mach-gemini/irq.c
-+++ b/arch/arm/mach-gemini/irq.c
-@@ -65,8 +65,8 @@ static struct irq_chip gemini_irq_chip =
-
- static struct resource irq_resource = {
- .name = "irq_handler",
-- .start = IO_ADDRESS(GEMINI_INTERRUPT_BASE),
-- .end = IO_ADDRESS(FIQ_STATUS(GEMINI_INTERRUPT_BASE)) + 4,
-+ .start = GEMINI_INTERRUPT_BASE,
-+ .end = FIQ_STATUS(GEMINI_INTERRUPT_BASE) + 4,
- };
-
- void __init gemini_init_irq(void)
---- a/arch/arm/mach-gemini/mm.c
-+++ b/arch/arm/mach-gemini/mm.c
-@@ -19,57 +19,57 @@
- /* Page table mapping for I/O region */
- static struct map_desc gemini_io_desc[] __initdata = {
- {
-- .virtual = IO_ADDRESS(GEMINI_GLOBAL_BASE),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_GLOBAL_BASE),
- .pfn =__phys_to_pfn(GEMINI_GLOBAL_BASE),
- .length = SZ_512K,
- .type = MT_DEVICE,
- }, {
-- .virtual = IO_ADDRESS(GEMINI_UART_BASE),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_UART_BASE),
- .pfn = __phys_to_pfn(GEMINI_UART_BASE),
- .length = SZ_512K,
- .type = MT_DEVICE,
- }, {
-- .virtual = IO_ADDRESS(GEMINI_TIMER_BASE),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_TIMER_BASE),
- .pfn = __phys_to_pfn(GEMINI_TIMER_BASE),
- .length = SZ_512K,
- .type = MT_DEVICE,
- }, {
-- .virtual = IO_ADDRESS(GEMINI_INTERRUPT_BASE),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_INTERRUPT_BASE),
- .pfn = __phys_to_pfn(GEMINI_INTERRUPT_BASE),
- .length = SZ_512K,
- .type = MT_DEVICE,
- }, {
-- .virtual = IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
- .pfn = __phys_to_pfn(GEMINI_POWER_CTRL_BASE),
- .length = SZ_512K,
- .type = MT_DEVICE,
- }, {
-- .virtual = IO_ADDRESS(GEMINI_GPIO_BASE(0)),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(0)),
- .pfn = __phys_to_pfn(GEMINI_GPIO_BASE(0)),
- .length = SZ_512K,
- .type = MT_DEVICE,
- }, {
-- .virtual = IO_ADDRESS(GEMINI_GPIO_BASE(1)),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(1)),
- .pfn = __phys_to_pfn(GEMINI_GPIO_BASE(1)),
- .length = SZ_512K,
- .type = MT_DEVICE,
- }, {
-- .virtual = IO_ADDRESS(GEMINI_GPIO_BASE(2)),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_GPIO_BASE(2)),
- .pfn = __phys_to_pfn(GEMINI_GPIO_BASE(2)),
- .length = SZ_512K,
- .type = MT_DEVICE,
- }, {
-- .virtual = IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
- .pfn = __phys_to_pfn(GEMINI_FLASH_CTRL_BASE),
- .length = SZ_512K,
- .type = MT_DEVICE,
- }, {
-- .virtual = IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
- .pfn = __phys_to_pfn(GEMINI_DRAM_CTRL_BASE),
- .length = SZ_512K,
- .type = MT_DEVICE,
- }, {
-- .virtual = IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
-+ .virtual = (unsigned long)IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
- .pfn = __phys_to_pfn(GEMINI_GENERAL_DMA_BASE),
- .length = SZ_512K,
- .type = MT_DEVICE,
---- /dev/null
-+++ b/arch/arm/mach-gemini/reset.c
-@@ -0,0 +1,23 @@
-+/*
-+ * Copyright (C) 2001-2006 Storlink, Corp.
-+ * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ */
-+#ifndef __MACH_SYSTEM_H
-+#define __MACH_SYSTEM_H
-+
-+#include <linux/io.h>
-+#include <mach/hardware.h>
-+#include <mach/global_reg.h>
-+
-+void gemini_restart(char mode, const char *cmd)
-+{
-+ __raw_writel(RESET_GLOBAL | RESET_CPU1,
-+ IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET);
-+}
-+
-+#endif /* __MACH_SYSTEM_H */