ax88796: Add method to take MAC from platform data

Implement a way to provide the MAC address for ax88796 devices from
their platform data. Boards might decide to set the address
programmatically, taken from boot tags or other sources.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Daniel Mack
2009-03-24 23:32:03 -07:00
committed by David S. Miller
parent 47cb035560
commit 67fca028f1
2 changed files with 20 additions and 10 deletions
+12 -5
View File
@@ -733,12 +733,19 @@ static int ax_init_dev(struct net_device *dev, int first_init)
/* load the mac-address from the device if this is the
* first time we've initialised */
if (first_init && ax->plat->flags & AXFLG_MAC_FROMDEV) {
ei_outb(E8390_NODMA + E8390_PAGE1 + E8390_STOP,
ei_local->mem + E8390_CMD); /* 0x61 */
if (first_init) {
if (ax->plat->flags & AXFLG_MAC_FROMDEV) {
ei_outb(E8390_NODMA + E8390_PAGE1 + E8390_STOP,
ei_local->mem + E8390_CMD); /* 0x61 */
for (i = 0; i < ETHER_ADDR_LEN; i++)
dev->dev_addr[i] =
ei_inb(ioaddr + EN1_PHYS_SHIFT(i));
}
for (i = 0 ; i < ETHER_ADDR_LEN ; i++)
dev->dev_addr[i] = ei_inb(ioaddr + EN1_PHYS_SHIFT(i));
if ((ax->plat->flags & AXFLG_MAC_FROMPLATFORM) &&
ax->plat->mac_addr)
memcpy(dev->dev_addr, ax->plat->mac_addr,
ETHER_ADDR_LEN);
}
ax_reset_8390(dev);