summaryrefslogtreecommitdiff
path: root/target/linux/au1000/patches-2.6.30
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/au1000/patches-2.6.30')
-rw-r--r--target/linux/au1000/patches-2.6.30/001-mtx1_cmdline.patch11
-rw-r--r--target/linux/au1000/patches-2.6.30/002-openwrt_rootfs.patch11
-rw-r--r--target/linux/au1000/patches-2.6.30/003-au1000_eth_ioctl.patch17
-rw-r--r--target/linux/au1000/patches-2.6.30/004-state_led_phy_fix.patch31
-rw-r--r--target/linux/au1000/patches-2.6.30/006-missing_string_header.patch10
-rw-r--r--target/linux/au1000/patches-2.6.30/007-gpio_request_button.patch30
6 files changed, 110 insertions, 0 deletions
diff --git a/target/linux/au1000/patches-2.6.30/001-mtx1_cmdline.patch b/target/linux/au1000/patches-2.6.30/001-mtx1_cmdline.patch
new file mode 100644
index 0000000..a458327
--- /dev/null
+++ b/target/linux/au1000/patches-2.6.30/001-mtx1_cmdline.patch
@@ -0,0 +1,11 @@
+--- a/arch/mips/alchemy/mtx-1/init.c
++++ b/arch/mips/alchemy/mtx-1/init.c
+@@ -49,7 +49,7 @@ void __init prom_init(void)
+ prom_argv = (char **)fw_arg1;
+ prom_envp = (char **)fw_arg2;
+
+- prom_init_cmdline();
++ strcpy(arcs_cmdline, CONFIG_CMDLINE);
+
+ memsize_str = prom_getenv("memsize");
+ if (!memsize_str)
diff --git a/target/linux/au1000/patches-2.6.30/002-openwrt_rootfs.patch b/target/linux/au1000/patches-2.6.30/002-openwrt_rootfs.patch
new file mode 100644
index 0000000..e1056e9
--- /dev/null
+++ b/target/linux/au1000/patches-2.6.30/002-openwrt_rootfs.patch
@@ -0,0 +1,11 @@
+--- a/arch/mips/alchemy/mtx-1/platform.c
++++ b/arch/mips/alchemy/mtx-1/platform.c
+@@ -90,7 +90,7 @@ static struct platform_device mtx1_gpio_
+
+ static struct mtd_partition mtx1_mtd_partitions[] = {
+ {
+- .name = "filesystem",
++ .name = "rootfs",
+ .size = 0x01C00000,
+ .offset = 0,
+ },
diff --git a/target/linux/au1000/patches-2.6.30/003-au1000_eth_ioctl.patch b/target/linux/au1000/patches-2.6.30/003-au1000_eth_ioctl.patch
new file mode 100644
index 0000000..9bda9a3
--- /dev/null
+++ b/target/linux/au1000/patches-2.6.30/003-au1000_eth_ioctl.patch
@@ -0,0 +1,17 @@
+--- a/drivers/net/au1000_eth.c
++++ b/drivers/net/au1000_eth.c
+@@ -1036,10 +1036,14 @@ static void au1000_multicast_list(struct
+ }
+ }
+
++#define AU1000_KNOWN_PHY_IOCTLS (SIOCGMIIPHY & 0xfff0)
+ static int au1000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
+ {
+ struct au1000_private *aup = netdev_priv(dev);
+
++ if((cmd & AU1000_KNOWN_PHY_IOCTLS) != AU1000_KNOWN_PHY_IOCTLS)
++ return -EINVAL;
++
+ if (!netif_running(dev)) return -EINVAL;
+
+ if (!aup->phy_dev) return -EINVAL; // PHY not controllable
diff --git a/target/linux/au1000/patches-2.6.30/004-state_led_phy_fix.patch b/target/linux/au1000/patches-2.6.30/004-state_led_phy_fix.patch
new file mode 100644
index 0000000..cfaea00
--- /dev/null
+++ b/target/linux/au1000/patches-2.6.30/004-state_led_phy_fix.patch
@@ -0,0 +1,31 @@
+--- a/drivers/net/au1000_eth.c
++++ b/drivers/net/au1000_eth.c
+@@ -166,6 +166,15 @@ struct au1000_private *au_macs[NUM_ETH_I
+ # undef AU1XXX_PHY1_IRQ
+ #endif
+
++#if defined(CONFIG_MIPS_MTX1)
++/*
++ * 4G MeshCube (MTX-1) board
++ * PHY is at address 31 on MAC0
++ * autodetect fails if not searched for highest address !
++ */
++# define AU1XXX_PHY_SEARCH_HIGHEST_ADDR
++#endif
++
+ #if defined(AU1XXX_PHY0_BUSID) && (AU1XXX_PHY0_BUSID > 0)
+ # error MAC0-associated PHY attached 2nd MACs MII bus not supported yet
+ #endif
+@@ -483,6 +492,12 @@ static int mii_probe (struct net_device
+ aup->old_duplex = -1;
+ aup->phy_dev = phydev;
+
++#ifdef CONFIG_MIPS_MTX1
++ /* set up ethernet jack LEDs on the 4G MeshCube (MTX-1 board) */
++ printk(KERN_INFO "MTX-1 PHY: updating LED settings\n");
++ phy_write(phydev, 0x11, 0xff80);
++#endif
++
+ printk(KERN_INFO "%s: attached PHY driver [%s] "
+ "(mii_bus:phy_addr=%s, irq=%d)\n", dev->name,
+ phydev->drv->name, dev_name(&phydev->dev), phydev->irq);
diff --git a/target/linux/au1000/patches-2.6.30/006-missing_string_header.patch b/target/linux/au1000/patches-2.6.30/006-missing_string_header.patch
new file mode 100644
index 0000000..8aba202
--- /dev/null
+++ b/target/linux/au1000/patches-2.6.30/006-missing_string_header.patch
@@ -0,0 +1,10 @@
+--- a/arch/mips/alchemy/mtx-1/init.c
++++ b/arch/mips/alchemy/mtx-1/init.c
+@@ -32,6 +32,7 @@
+ #include <linux/init.h>
+
+ #include <asm/bootinfo.h>
++#include <asm/string.h>
+
+ #include <prom.h>
+
diff --git a/target/linux/au1000/patches-2.6.30/007-gpio_request_button.patch b/target/linux/au1000/patches-2.6.30/007-gpio_request_button.patch
new file mode 100644
index 0000000..c0c6a22
--- /dev/null
+++ b/target/linux/au1000/patches-2.6.30/007-gpio_request_button.patch
@@ -0,0 +1,30 @@
+--- a/arch/mips/alchemy/mtx-1/platform.c
++++ b/arch/mips/alchemy/mtx-1/platform.c
+@@ -1,7 +1,7 @@
+ /*
+ * MTX-1 platform devices registration
+ *
+- * Copyright (C) 2007, Florian Fainelli <florian@openwrt.org>
++ * Copyright (C) 2007-2009, Florian Fainelli <florian@openwrt.org>
+ *
+ * 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
+@@ -142,7 +142,17 @@ static struct __initdata platform_device
+
+ static int __init mtx1_register_devices(void)
+ {
+- gpio_direction_input(207);
++ int rc;
++
++ rc = gpio_request(mtx1_gpio_button[0].gpio,
++ mtx1_gpio_button[0].desc);
++ if (rc < 0) {
++ printk(KERN_INFO "mtx1: failed to request %d\n",
++ mtx1_gpio_button[0].gpio);
++ goto out;
++ }
++ gpio_direction_input(mtx1_gpio_button[0].gpio);
++out:
+ return platform_add_devices(mtx1_devs, ARRAY_SIZE(mtx1_devs));
+ }
+