diff options
Diffstat (limited to 'target/linux/ixp4xx/patches-2.6.37/132-wrt300nv2_mac_fix.patch')
-rw-r--r-- | target/linux/ixp4xx/patches-2.6.37/132-wrt300nv2_mac_fix.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/target/linux/ixp4xx/patches-2.6.37/132-wrt300nv2_mac_fix.patch b/target/linux/ixp4xx/patches-2.6.37/132-wrt300nv2_mac_fix.patch deleted file mode 100644 index 381cc5b..0000000 --- a/target/linux/ixp4xx/patches-2.6.37/132-wrt300nv2_mac_fix.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- a/arch/arm/mach-ixp4xx/wrt300nv2-setup.c -+++ b/arch/arm/mach-ixp4xx/wrt300nv2-setup.c -@@ -3,6 +3,7 @@ - * - * Board setup for the Linksys WRT300N v2 - * -+ * Copyright (C) 2010 Alexandros C. Couloumbis <alex@ozo.com> - * Copyright (C) 2007 Imre Kaloz <Kaloz@openwrt.org> - * - * based on coyote-setup.c: -@@ -18,6 +19,7 @@ - #include <linux/tty.h> - #include <linux/serial_8250.h> - #include <linux/slab.h> -+#include <linux/etherdevice.h> - - #include <asm/types.h> - #include <asm/setup.h> -@@ -79,7 +81,8 @@ static struct platform_device wrt300nv2_ - /* Built-in 10/100 Ethernet MAC interfaces */ - static struct eth_plat_info wrt300nv2_plat_eth[] = { - { -- .phy = -1, -+ .phy = IXP4XX_ETH_PHY_MAX_ADDR, -+ .phy_mask = 0x0F0000, - .rxq = 3, - .txreadyq = 20, - }, { -@@ -110,6 +113,10 @@ static struct platform_device *wrt300nv2 - - static void __init wrt300nv2_init(void) - { -+ uint8_t __iomem *f; -+ int offset = 0; -+ int i; -+ - ixp4xx_sys_init(); - - wrt300nv2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); -@@ -119,6 +126,32 @@ static void __init wrt300nv2_init(void) - *IXP4XX_EXP_CS1 = *IXP4XX_EXP_CS0; - - platform_add_devices(wrt300nv2_devices, ARRAY_SIZE(wrt300nv2_devices)); -+ -+ f = ioremap(IXP4XX_EXP_BUS_BASE(0), 0x60000); -+ -+ if (f) { -+ for (i = 0; i < 6; i++) { -+#ifdef __ARMEB__ -+ wrt300nv2_plat_eth[0].hwaddr[i] = readb(f + 0x5FFA0 + i); -+ if (i == 5) -+ offset = 1; -+ wrt300nv2_plat_eth[1].hwaddr[i] = (wrt300nv2_plat_eth[0].hwaddr[i] + offset); -+#else -+ wrt300nv2_plat_eth[0].hwaddr[i] = readb(f + 0x5FFA0 + (i^3)); -+ if (i == 5) -+ offset = 1; -+ wrt300nv2_plat_eth[1].hwaddr[i] = (wrt300nv2_plat_eth[0].hwaddr[i] + offset); -+#endif -+ } -+ iounmap(f); -+ } -+ -+ if (!(is_valid_ether_addr(wrt300nv2_plat_eth[0].hwaddr))) -+ random_ether_addr(wrt300nv2_plat_eth[0].hwaddr); -+ if (!(is_valid_ether_addr(wrt300nv2_plat_eth[1].hwaddr))) { -+ memcpy(wrt300nv2_plat_eth[1].hwaddr, wrt300nv2_plat_eth[0].hwaddr, ETH_ALEN); -+ wrt300nv2_plat_eth[1].hwaddr[5] = (wrt300nv2_plat_eth[0].hwaddr[5] + 1); -+ } - } - - #ifdef CONFIG_MACH_WRT300NV2 |