#
-# Copyright (C) 2009-2011 OpenWrt.org
+# Copyright (C) 2009-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
ARCH:=arm
BOARD:=gemini
BOARDNAME:=Cortina Systems CS351x
-FEATURES:=squashfs broken
+FEATURES:=squashfs pci
CFLAGS:=-Os -pipe -march=armv4 -mtune=fa526 -fno-caller-saves
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.8.3
+LINUX_VERSION:=3.9-rc4
include $(INCLUDE_DIR)/target.mk
CONFIG_KTIME_SCALAR=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
-CONFIG_MACH_NAS4220B=y
-CONFIG_MACH_RUT100=y
+# CONFIG_MACH_NAS4220B is not set
+# CONFIG_MACH_RUT100 is not set
CONFIG_MACH_WBD111=y
CONFIG_MACH_WBD222=y
CONFIG_MDIO_BITBANG=y
CONFIG_MIGHT_HAVE_PCI=y
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_REDBOOT_PARTS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_PER_CPU_KM=y
CONFIG_NLS=m
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -386,6 +386,7 @@ config ARCH_GEMINI
+@@ -410,6 +410,7 @@ config ARCH_GEMINI
bool "Cortina Systems Gemini"
select ARCH_REQUIRE_GPIOLIB
select ARCH_USES_GETTIMEOFFSET
obj-$(CONFIG_MACH_NAS4220B) += board-nas4220b.o
--- a/arch/arm/mach-gemini/board-nas4220b.c
+++ b/arch/arm/mach-gemini/board-nas4220b.c
-@@ -107,4 +107,5 @@ MACHINE_START(NAS4220B, "Raidsonic NAS I
+@@ -103,4 +103,5 @@ MACHINE_START(NAS4220B, "Raidsonic NAS I
.init_irq = gemini_init_irq,
- .timer = &ib4220b_timer,
+ .init_time = gemini_timer_init,
.init_machine = ib4220b_init,
+ .restart = gemini_restart,
MACHINE_END
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
-@@ -91,4 +92,5 @@ MACHINE_START(RUT100, "Teltonika RUT100"
+@@ -87,4 +88,5 @@ MACHINE_START(RUT100, "Teltonika RUT100"
.init_irq = gemini_init_irq,
- .timer = &rut1xx_timer,
+ .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
-@@ -134,4 +134,5 @@ MACHINE_START(WBD111, "Wiliboard WBD-111
+@@ -130,4 +130,5 @@ MACHINE_START(WBD111, "Wiliboard WBD-111
.init_irq = gemini_init_irq,
- .timer = &wbd111_timer,
+ .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
-@@ -134,4 +134,5 @@ MACHINE_START(WBD222, "Wiliboard WBD-222
+@@ -130,4 +130,5 @@ MACHINE_START(WBD222, "Wiliboard WBD-222
.init_irq = gemini_init_irq,
- .timer = &wbd222_timer,
+ .init_time = gemini_timer_init,
.init_machine = wbd222_init,
+ .restart = gemini_restart,
MACHINE_END
+MODULE_ALIAS("platform:gemini-wdt");
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
-@@ -152,6 +152,16 @@ config 977_WATCHDOG
+@@ -154,6 +154,16 @@ config 977_WATCHDOG
Not sure? It's safe to say N.
--- a/arch/arm/mach-gemini/board-nas4220b.c
+++ b/arch/arm/mach-gemini/board-nas4220b.c
-@@ -99,6 +99,7 @@ static void __init ib4220b_init(void)
+@@ -95,6 +95,7 @@ static void __init ib4220b_init(void)
platform_device_register(&ib4220b_led_device);
platform_device_register(&ib4220b_key_device);
platform_register_rtc();
MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B")
--- a/arch/arm/mach-gemini/board-wbd111.c
+++ b/arch/arm/mach-gemini/board-wbd111.c
-@@ -126,6 +126,7 @@ static void __init wbd111_init(void)
+@@ -122,6 +122,7 @@ static void __init wbd111_init(void)
platform_device_register(&wbd111_leds_device);
platform_device_register(&wbd111_keys_device);
platform_register_rtc();
MACHINE_START(WBD111, "Wiliboard WBD-111")
--- a/arch/arm/mach-gemini/board-wbd222.c
+++ b/arch/arm/mach-gemini/board-wbd222.c
-@@ -126,6 +126,7 @@ static void __init wbd222_init(void)
+@@ -122,6 +122,7 @@ static void __init wbd222_init(void)
platform_device_register(&wbd222_leds_device);
platform_device_register(&wbd222_keys_device);
platform_register_rtc();
MACHINE_START(WBD222, "Wiliboard WBD-222")
--- a/arch/arm/mach-gemini/board-rut1xx.c
+++ b/arch/arm/mach-gemini/board-rut1xx.c
-@@ -84,6 +84,7 @@ static void __init rut1xx_init(void)
+@@ -80,6 +80,7 @@ static void __init rut1xx_init(void)
platform_device_register(&rut1xx_leds);
platform_device_register(&rut1xx_keys_device);
platform_register_rtc();
+ if (register_netdev(dev))
+ return -1;
+
-+ gmac->phydev = phy_connect(dev, pdata->bus_id[num], &gmac_get_phy_status, 0,
++ gmac->phydev = phy_connect(dev, pdata->bus_id[num], &gmac_get_phy_status,
+ pdata->interface[num]);
+ if (IS_ERR(gmac->phydev))
+ return PTR_ERR(gmac->phydev);
static struct gpio_keys_button wbd111_keys[] = {
{
.code = KEY_SETUP,
-@@ -127,6 +147,8 @@ static void __init wbd111_init(void)
+@@ -123,6 +143,8 @@ static void __init wbd111_init(void)
platform_device_register(&wbd111_keys_device);
platform_register_rtc();
platform_register_watchdog();
static struct gpio_keys_button wbd222_keys[] = {
{
.code = KEY_SETUP,
-@@ -127,6 +149,8 @@ static void __init wbd222_init(void)
+@@ -123,6 +145,8 @@ static void __init wbd222_init(void)
platform_device_register(&wbd222_keys_device);
platform_register_rtc();
platform_register_watchdog();
static struct gpio_keys_button rut1xx_keys[] = {
{
.code = KEY_SETUP,
-@@ -85,6 +107,8 @@ static void __init rut1xx_init(void)
+@@ -81,6 +103,8 @@ static void __init rut1xx_init(void)
platform_device_register(&rut1xx_keys_device);
platform_register_rtc();
platform_register_watchdog();
if (ehci->debug)
dbgp_external_startup(ehci_to_hcd(ehci));
-@@ -340,11 +346,14 @@ static void ehci_silence_controller(stru
+@@ -341,11 +347,14 @@ static void ehci_silence_controller(stru
ehci->rh_state = EHCI_RH_HALTED;
ehci_turn_off_all_ports(ehci);
spin_unlock_irq(&ehci->lock);
}
-@@ -599,7 +608,9 @@ static int ehci_run (struct usb_hcd *hcd
+@@ -600,7 +609,9 @@ static int ehci_run (struct usb_hcd *hcd
// Philips, Intel, and maybe others need CMD_RUN before the
// root hub will detect new devices (why?); NEC doesn't
ehci->command &= ~(CMD_LRESET|CMD_IAAD|CMD_PSE|CMD_ASE|CMD_RESET);
ehci_writel(ehci, ehci->command, &ehci->regs->command);
dbg_cmd (ehci, "init", ehci->command);
-@@ -619,9 +630,11 @@ static int ehci_run (struct usb_hcd *hcd
+@@ -620,9 +631,11 @@ static int ehci_run (struct usb_hcd *hcd
*/
down_write(&ehci_cf_port_reset_rwsem);
ehci->rh_state = EHCI_RH_RUNNING;
up_write(&ehci_cf_port_reset_rwsem);
ehci->last_periodic_enable = ktime_get_real();
-@@ -1242,6 +1255,11 @@ MODULE_DESCRIPTION(DRIVER_DESC);
+@@ -1241,6 +1254,11 @@ MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_AUTHOR (DRIVER_AUTHOR);
MODULE_LICENSE ("GPL");
--- a/arch/arm/mach-gemini/board-wbd111.c
+++ b/arch/arm/mach-gemini/board-wbd111.c
-@@ -149,6 +149,7 @@ static void __init wbd111_init(void)
+@@ -145,6 +145,7 @@ static void __init wbd111_init(void)
platform_register_watchdog();
platform_device_register(&wbd111_phy_device);
platform_register_ethernet(&gmac_data);
--- a/arch/arm/mach-gemini/board-wbd222.c
+++ b/arch/arm/mach-gemini/board-wbd222.c
-@@ -151,6 +151,7 @@ static void __init wbd222_init(void)
+@@ -147,6 +147,7 @@ static void __init wbd222_init(void)
platform_register_watchdog();
platform_device_register(&wbd222_phy_device);
platform_register_ethernet(&gmac_data);
--- a/arch/arm/mach-gemini/board-rut1xx.c
+++ b/arch/arm/mach-gemini/board-rut1xx.c
-@@ -109,6 +109,7 @@ static void __init rut1xx_init(void)
+@@ -105,6 +105,7 @@ static void __init rut1xx_init(void)
platform_register_watchdog();
platform_device_register(&rut1xx_phy_device);
platform_register_ethernet(&gmac_data);
--- a/arch/arm/mach-gemini/board-nas4220b.c
+++ b/arch/arm/mach-gemini/board-nas4220b.c
-@@ -100,6 +100,8 @@ static void __init ib4220b_init(void)
+@@ -96,6 +96,8 @@ static void __init ib4220b_init(void)
platform_device_register(&ib4220b_key_device);
platform_register_rtc();
platform_register_watchdog();
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -388,6 +388,7 @@ config ARCH_GEMINI
+@@ -412,6 +412,7 @@ config ARCH_GEMINI
select ARCH_USES_GETTIMEOFFSET
select NEED_MACH_GPIO_H
select CPU_FA526