Some devices provide the Wi-Fi MAC address through firmware instead of storing a valid address in the chip efuse. Try to read the MAC address from firmware before falling back to a randomly generated address. Signed-off-by: YuChia-Kan --- drivers/net/wireless/realtek/rtw88/main.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c index cd9254370fcc..b9d8e0f5d15e 100644 --- a/drivers/net/wireless/realtek/rtw88/main.c +++ b/drivers/net/wireless/realtek/rtw88/main.c @@ -2060,8 +2060,12 @@ static int rtw_chip_efuse_info_setup(struct rtw_dev *rtwdev) efuse->ext_lna_5g = efuse->lna_type_5g & BIT(3) ? 1 : 0; if (!is_valid_ether_addr(efuse->addr)) { - eth_random_addr(efuse->addr); - dev_warn(rtwdev->dev, "efuse MAC invalid, using random\n"); + mac_ret = device_get_mac_address(rtwdev->dev, efuse->addr); + if (mac_ret) { + eth_random_addr(efuse->addr); + dev_warn(rtwdev->dev, + "failed to get valid MAC address, using random\n"); + } } out_disable: -- 2.53.0