diff options
author | Laurent Pinchart <laurentp@cse-semaphore.com> | 2008-07-23 17:41:52 +0200 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-08-07 02:22:54 -0400 |
commit | fe414248551e2880fe8913577699003ff145ab9d (patch) | |
tree | d775ad642b3bed42659956f2ddac3f8e382c6c35 /drivers/net | |
parent | 9a5d3414202a21ed4b053657345ea0fd492d513a (diff) | |
download | kernel_samsung_smdk4412-fe414248551e2880fe8913577699003ff145ab9d.tar.gz kernel_samsung_smdk4412-fe414248551e2880fe8913577699003ff145ab9d.tar.bz2 kernel_samsung_smdk4412-fe414248551e2880fe8913577699003ff145ab9d.zip |
dm9000: Support MAC address setting through platform data.
The dm9000 driver reads the chip's MAC address from the attached EEPROM. When
no EEPROM is present, or when the MAC address is invalid, it falls back to
reading the address from the chip.
This patch lets platform code set the desired MAC address through platform
data.
Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/dm9000.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c index 0b0f1c407a7..f42c23f4265 100644 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c @@ -1374,6 +1374,11 @@ dm9000_probe(struct platform_device *pdev) for (i = 0; i < 6; i += 2) dm9000_read_eeprom(db, i / 2, ndev->dev_addr+i); + if (!is_valid_ether_addr(ndev->dev_addr) && pdata != NULL) { + mac_src = "platform data"; + memcpy(ndev->dev_addr, pdata->dev_addr, 6); + } + if (!is_valid_ether_addr(ndev->dev_addr)) { /* try reading from mac */ |