mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-09-18 02:55:53 +03:00
7e450a1c86
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6489 3c298f89-4303-0410-b956-a3cf2f4a3e73
42 lines
1.4 KiB
Diff
42 lines
1.4 KiB
Diff
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;
|
|
|
|
+ /* 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)) {
|
|
+ random_ether_addr(dev->dev_addr);
|
|
+ dev->dev_addr[5] = mac->plat->phy_id;
|
|
+ }
|
|
+ else
|
|
+ memcpy(dev->dev_addr, mac->plat->hwaddr, 6);
|
|
+ }
|
|
+
|
|
mac_set_uniaddr(dev);
|
|
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);
|