diff --git a/[refs] b/[refs] index 0b2d60d68ab5..acb1b2d88f65 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9a5d3414202a21ed4b053657345ea0fd492d513a +refs/heads/master: fe414248551e2880fe8913577699003ff145ab9d diff --git a/trunk/drivers/net/dm9000.c b/trunk/drivers/net/dm9000.c index 0b0f1c407a7e..f42c23f42652 100644 --- a/trunk/drivers/net/dm9000.c +++ b/trunk/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 */ diff --git a/trunk/include/linux/dm9000.h b/trunk/include/linux/dm9000.h index fc82446b6425..c30879cf93bc 100644 --- a/trunk/include/linux/dm9000.h +++ b/trunk/include/linux/dm9000.h @@ -27,6 +27,7 @@ struct dm9000_plat_data { unsigned int flags; + unsigned char dev_addr[6]; /* allow replacement IO routines */