diff options
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.patch | 348 |
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 25ed5f2..0000000 --- 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 */ |