diff options
author | Manuel Lauss <manuel.lauss@googlemail.com> | 2009-10-13 07:25:49 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-10-13 11:48:32 -0700 |
commit | aace495933a981274b6491d71b915165a61defdc (patch) | |
tree | c6233d889f8c514f1bab538270676c97dd682739 | |
parent | b4efc5610980bc4b65a6cb49b939cf5f7dfa2723 (diff) | |
download | op-kernel-dev-aace495933a981274b6491d71b915165a61defdc.zip op-kernel-dev-aace495933a981274b6491d71b915165a61defdc.tar.gz |
net: smsc911x: allow platform_data to specify mac address
Extend the driver to accept a MAC address specified in platform_data.
Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/smsc911x.c | 3 | ||||
-rw-r--r-- | include/linux/smsc911x.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c index ccdd196..6a9f51d 100644 --- a/drivers/net/smsc911x.c +++ b/drivers/net/smsc911x.c @@ -2071,6 +2071,9 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev) if (is_valid_ether_addr(dev->dev_addr)) { smsc911x_set_hw_mac_address(pdata, dev->dev_addr); SMSC_TRACE(PROBE, "MAC Address is specified by configuration"); + } else if (is_valid_ether_addr(pdata->config.mac)) { + memcpy(dev->dev_addr, pdata->config.mac, 6); + SMSC_TRACE(PROBE, "MAC Address specified by platform data"); } else { /* Try reading mac address from device. if EEPROM is present * it will already have been set */ diff --git a/include/linux/smsc911x.h b/include/linux/smsc911x.h index 5241e4f..7144e8a 100644 --- a/include/linux/smsc911x.h +++ b/include/linux/smsc911x.h @@ -30,6 +30,7 @@ struct smsc911x_platform_config { unsigned int irq_type; unsigned int flags; phy_interface_t phy_interface; + unsigned char mac[6]; }; /* Constants for platform_device irq polarity configuration */ |