Message ID | 20200514123848.933199-1-thierry.reding@gmail.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | acb6d3771a0390fdfae18082f232fda40d5ab514 |
Headers | show |
Series | [net/next] r8152: Use MAC address from device tree if available | expand |
From: Thierry Reding <thierry.reding@gmail.com> Date: Thu, 14 May 2020 14:38:48 +0200 > From: Thierry Reding <treding@nvidia.com> > > If a MAC address was passed via the device tree node for the r8152 > device, use it and fall back to reading from EEPROM otherwise. This is > useful for devices where the r8152 EEPROM was not programmed with a > valid MAC address, or if users want to explicitly set a MAC address in > the bootloader and pass that to the kernel. > > Signed-off-by: Thierry Reding <treding@nvidia.com> Yep, that looks good, applied. Thank you.
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 8f8d9883d363..1af72ec284ca 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -1504,15 +1504,19 @@ static int determine_ethernet_addr(struct r8152 *tp, struct sockaddr *sa) sa->sa_family = dev->type; - if (tp->version == RTL_VER_01) { - ret = pla_ocp_read(tp, PLA_IDR, 8, sa->sa_data); - } else { - /* if device doesn't support MAC pass through this will - * be expected to be non-zero - */ - ret = vendor_mac_passthru_addr_read(tp, sa); - if (ret < 0) - ret = pla_ocp_read(tp, PLA_BACKUP, 8, sa->sa_data); + ret = eth_platform_get_mac_address(&dev->dev, sa->sa_data); + if (ret < 0) { + if (tp->version == RTL_VER_01) { + ret = pla_ocp_read(tp, PLA_IDR, 8, sa->sa_data); + } else { + /* if device doesn't support MAC pass through this will + * be expected to be non-zero + */ + ret = vendor_mac_passthru_addr_read(tp, sa); + if (ret < 0) + ret = pla_ocp_read(tp, PLA_BACKUP, 8, + sa->sa_data); + } } if (ret < 0) {