upgrade the ixp4xx ethernet driver to v0.3.1, split the Gateway 7001 support to two...
[openwrt/staging/wigyori.git] / target / linux / ixp4xx-2.6 / patches / 133-ixp4xx_net_driver_improve_mac_handling.patch
index a808e4dfa962a171ab1708309df715aafdaa9bf1..d632b3045b5d78f716dd2f85c5d2347b3f0a304c 100644 (file)
@@ -1,31 +1,10 @@
-Index: linux-2.6.19/include/asm-arm/arch-ixp4xx/platform.h
-===================================================================
---- linux-2.6.19.orig/include/asm-arm/arch-ixp4xx/platform.h
-+++ linux-2.6.19/include/asm-arm/arch-ixp4xx/platform.h
-@@ -100,6 +100,7 @@ struct mac_plat_info {
-       int phy_id;     /* ID of the connected PHY (PCB/platform dependent) */
-       int rxq_id;     /* Queue ID of the RX-free q*/
-       int txq_id;     /* Where to push the outgoing packets */
-+      unsigned char hwaddr[6]; /* Desired hardware address */
- };
+diff -Naupr a/drivers/net/ixp4xx/mac_driver.c b/drivers/net/ixp4xx/mac_driver.c
+--- a/drivers/net/ixp4xx/mac_driver.c  2007-01-12 21:54:40.000000000 -0700
++++ b/drivers/net/ixp4xx/mac_driver.c  2007-01-12 22:27:18.000000000 -0700
+@@ -350,6 +350,16 @@ static int ixmac_open (struct net_device
+       mac->npe_stat_num = i<NPE_STAT_NUM ? NPE_STAT_NUM_BASE : NPE_STAT_NUM;
+       mac->npe_stat_num += NPE_Q_STAT_NUM;
  
-Index: linux-2.6.19/drivers/net/ixp4xx/mac_driver.c
-===================================================================
---- linux-2.6.19.orig/drivers/net/ixp4xx/mac_driver.c
-+++ linux-2.6.19/drivers/net/ixp4xx/mac_driver.c
-@@ -189,6 +189,24 @@ static int ixmac_open (struct net_device
-       }
-       mac->rxq_pkt += RX_QUEUE_PREFILL;
-+      /* printk(KERN_INFO "...Platform MAC=0x%02x%02x%02x%02x%02x%02x\n",
-+              mac->plat->hwaddr[0],
-+              mac->plat->hwaddr[1],
-+              mac->plat->hwaddr[2],
-+              mac->plat->hwaddr[3],
-+              mac->plat->hwaddr[4],
-+              mac->plat->hwaddr[5]
-+      ); */
 +      /* Only use platform or random if there's currently no device hw addr */
 +      if (is_zero_ether_addr(dev->dev_addr)) {
 +              if (is_zero_ether_addr(mac->plat->hwaddr)) {
@@ -36,25 +15,27 @@ Index: linux-2.6.19/drivers/net/ixp4xx/mac_driver.c
 +                      memcpy(dev->dev_addr, mac->plat->hwaddr, 6);
 +      }
 +
-       mac_init(mac);
-       npe_mh_set_rxqid(npe, mac->plat, RX_DONE_QID);
        mac_set_uniaddr(dev);
-@@ -434,9 +452,15 @@ static int mac_probe(struct platform_dev
-        * following commands:
-        * "ip link set address 02:03:04:04:04:01 dev eth0"
-        * "ifconfig eth0 hw ether 02:03:04:04:04:07"
--       */
--      random_ether_addr(dev->dev_addr);
--      dev->dev_addr[5] = plat->phy_id;
-+      */
-+/*     Note: moved to ixmac_open to allow notifiers to run for compiled in modules
-+      if (is_zero_ether_addr(plat->hwaddr)) {
-+              random_ether_addr(dev->dev_addr);
-+              dev->dev_addr[5] = plat->phy_id;
-+      }
-+      else
-+              memcpy(dev->dev_addr, plat->hwaddr, 6);
-+*/
+       media_check(dev, 1);
+       ixmac_set_rx_mode(dev);
+@@ -691,20 +701,6 @@ static int mac_probe(struct platform_dev
+       INIT_WORK(&mac->mdio_thread, mac_mdio_thread, dev);
  
+-      /* The place of the MAC address is very system dependent.
+-       * Here we use a random one to be replaced by one of the
+-       * following commands:
+-       * "ip link set address 02:03:04:04:04:01 dev eth0"
+-       * "ifconfig eth0 hw ether 02:03:04:04:04:07"
+-      */
+-
+-      if (is_zero_ether_addr(plat->hwaddr)) {
+-              random_ether_addr(dev->dev_addr);
+-              dev->dev_addr[5] = plat->phy_id;
+-      }
+-      else
+-              memcpy(dev->dev_addr, plat->hwaddr, 6);
+-
        printk(KERN_INFO IXMAC_NAME " driver " IXMAC_VERSION
                        ": %s on %s with PHY[%d] initialized\n",
+                       dev->name, npe->plat->name, plat->phy_id);