summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target/linux/ixp4xx/patches-2.6.35/520-tw2662_support.patch13
1 files changed, 5 insertions, 8 deletions
diff --git a/target/linux/ixp4xx/patches-2.6.35/520-tw2662_support.patch b/target/linux/ixp4xx/patches-2.6.35/520-tw2662_support.patch
index a83a15dc99..7bef1d4080 100644
--- a/target/linux/ixp4xx/patches-2.6.35/520-tw2662_support.patch
+++ b/target/linux/ixp4xx/patches-2.6.35/520-tw2662_support.patch
@@ -118,7 +118,7 @@
+subsys_initcall(tw2662_pci_init);
--- /dev/null
+++ b/arch/arm/mach-ixp4xx/tw2662-setup.c
-@@ -0,0 +1,215 @@
+@@ -0,0 +1,212 @@
+/*
+ * arch/arm/mach-ixp4xx/tw2662-setup.c
+ *
@@ -302,7 +302,6 @@
+static void __init tw2662_init(void)
+{
+ ixp4xx_sys_init();
-+ int i;
+
+ tw2662_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
+ tw2662_flash_resource.end =
@@ -310,13 +309,11 @@
+
+ platform_add_devices(tw2662_devices, ARRAY_SIZE(tw2662_devices));
+
-+ for (i = 0; i < 6; i++)
-+ if (tw2662_plat_eth[0].hwaddr[i] != 0x00)
-+ break;
-+ if (i == 6) {
-+ /* hack MACs as most of these boards have a broken eeprom */
++ if (!(is_valid_ether_addr(tw2662_plat_eth[0].hwaddr)))
+ random_ether_addr(tw2662_plat_eth[0].hwaddr);
-+ tw2662_plat_eth[1].hwaddr = (tw2662_plat_eth[0].hwaddr + 1);
++ if (!(is_valid_ether_addr(tw2662_plat_eth[1].hwaddr))) {
++ memcpy(tw2662_plat_eth[1].hwaddr, tw2662_plat_eth[0].hwaddr, ETH_ALEN);
++ tw2662_plat_eth[1].hwaddr[5] = (tw2662_plat_eth[0].hwaddr[5] + 1);
+ }
+
+}