mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
wifi: mt76: mt76_eeprom_override to int
mt76_eeprom_override has of_get_mac_address, which can return -EPROBE_DEFER if the nvmem driver gets loaded after mt76 for some reason. Make sure this gets passed to probe so that nvmem mac overrides always work. Signed-off-by: Rosen Penev <rosenp@gmail.com> Link: https://patch.msgid.link/20250911221619.16035-1-rosenp@gmail.com Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
cb6ebbdffe
commit
c7c682100c
|
|
@ -163,13 +163,16 @@ static int mt76_get_of_eeprom(struct mt76_dev *dev, void *eep, int len)
|
|||
return mt76_get_of_data_from_nvmem(dev, eep, "eeprom", len);
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
mt76_eeprom_override(struct mt76_phy *phy)
|
||||
{
|
||||
struct mt76_dev *dev = phy->dev;
|
||||
struct device_node *np = dev->dev->of_node;
|
||||
int err;
|
||||
|
||||
of_get_mac_address(np, phy->macaddr);
|
||||
err = of_get_mac_address(np, phy->macaddr);
|
||||
if (err == -EPROBE_DEFER)
|
||||
return err;
|
||||
|
||||
if (!is_valid_ether_addr(phy->macaddr)) {
|
||||
eth_random_addr(phy->macaddr);
|
||||
|
|
@ -177,6 +180,8 @@ mt76_eeprom_override(struct mt76_phy *phy)
|
|||
"Invalid MAC address, using random address %pM\n",
|
||||
phy->macaddr);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt76_eeprom_override);
|
||||
|
||||
|
|
|
|||
|
|
@ -1294,7 +1294,7 @@ void mt76_seq_puts_array(struct seq_file *file, const char *str,
|
|||
s8 *val, int len);
|
||||
|
||||
int mt76_eeprom_init(struct mt76_dev *dev, int len);
|
||||
void mt76_eeprom_override(struct mt76_phy *phy);
|
||||
int mt76_eeprom_override(struct mt76_phy *phy);
|
||||
int mt76_get_of_data_from_mtd(struct mt76_dev *dev, void *eep, int offset, int len);
|
||||
int mt76_get_of_data_from_nvmem(struct mt76_dev *dev, void *eep,
|
||||
const char *cell_name, int len);
|
||||
|
|
|
|||
|
|
@ -182,7 +182,6 @@ int mt7603_eeprom_init(struct mt7603_dev *dev)
|
|||
dev->mphy.antenna_mask = 1;
|
||||
|
||||
dev->mphy.chainmask = dev->mphy.antenna_mask;
|
||||
mt76_eeprom_override(&dev->mphy);
|
||||
|
||||
return 0;
|
||||
return mt76_eeprom_override(&dev->mphy);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -351,8 +351,6 @@ int mt7615_eeprom_init(struct mt7615_dev *dev, u32 addr)
|
|||
memcpy(dev->mphy.macaddr, dev->mt76.eeprom.data + MT_EE_MAC_ADDR,
|
||||
ETH_ALEN);
|
||||
|
||||
mt76_eeprom_override(&dev->mphy);
|
||||
|
||||
return 0;
|
||||
return mt76_eeprom_override(&dev->mphy);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt7615_eeprom_init);
|
||||
|
|
|
|||
|
|
@ -570,7 +570,10 @@ int mt7615_register_ext_phy(struct mt7615_dev *dev)
|
|||
ETH_ALEN);
|
||||
mphy->macaddr[0] |= 2;
|
||||
mphy->macaddr[0] ^= BIT(7);
|
||||
mt76_eeprom_override(mphy);
|
||||
|
||||
ret = mt76_eeprom_override(mphy);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* second phy can only handle 5 GHz */
|
||||
mphy->cap.has_5ghz = true;
|
||||
|
|
|
|||
|
|
@ -332,7 +332,11 @@ int mt76x0_eeprom_init(struct mt76x02_dev *dev)
|
|||
|
||||
memcpy(dev->mphy.macaddr, (u8 *)dev->mt76.eeprom.data + MT_EE_MAC_ADDR,
|
||||
ETH_ALEN);
|
||||
mt76_eeprom_override(&dev->mphy);
|
||||
|
||||
err = mt76_eeprom_override(&dev->mphy);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
mt76x02_mac_setaddr(dev, dev->mphy.macaddr);
|
||||
|
||||
mt76x0_set_chip_cap(dev);
|
||||
|
|
|
|||
|
|
@ -499,7 +499,9 @@ int mt76x2_eeprom_init(struct mt76x02_dev *dev)
|
|||
|
||||
mt76x02_eeprom_parse_hw_cap(dev);
|
||||
mt76x2_eeprom_get_macaddr(dev);
|
||||
mt76_eeprom_override(&dev->mphy);
|
||||
ret = mt76_eeprom_override(&dev->mphy);
|
||||
if (ret)
|
||||
return ret;
|
||||
dev->mphy.macaddr[0] &= ~BIT(1);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -284,9 +284,7 @@ int mt7915_eeprom_init(struct mt7915_dev *dev)
|
|||
memcpy(dev->mphy.macaddr, dev->mt76.eeprom.data + MT_EE_MAC_ADDR,
|
||||
ETH_ALEN);
|
||||
|
||||
mt76_eeprom_override(&dev->mphy);
|
||||
|
||||
return 0;
|
||||
return mt76_eeprom_override(&dev->mphy);
|
||||
}
|
||||
|
||||
int mt7915_eeprom_get_target_power(struct mt7915_dev *dev,
|
||||
|
|
|
|||
|
|
@ -702,7 +702,9 @@ mt7915_register_ext_phy(struct mt7915_dev *dev, struct mt7915_phy *phy)
|
|||
mphy->macaddr[0] |= 2;
|
||||
mphy->macaddr[0] ^= BIT(7);
|
||||
}
|
||||
mt76_eeprom_override(mphy);
|
||||
ret = mt76_eeprom_override(mphy);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* init wiphy according to mphy and phy */
|
||||
mt7915_init_wiphy(phy);
|
||||
|
|
|
|||
|
|
@ -189,7 +189,9 @@ static int __mt7921_init_hardware(struct mt792x_dev *dev)
|
|||
if (ret)
|
||||
goto out;
|
||||
|
||||
mt76_eeprom_override(&dev->mphy);
|
||||
ret = mt76_eeprom_override(&dev->mphy);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
ret = mt7921_mcu_set_eeprom(dev);
|
||||
if (ret)
|
||||
|
|
|
|||
|
|
@ -249,7 +249,9 @@ static int __mt7925_init_hardware(struct mt792x_dev *dev)
|
|||
if (ret)
|
||||
goto out;
|
||||
|
||||
mt76_eeprom_override(&dev->mphy);
|
||||
ret = mt76_eeprom_override(&dev->mphy);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
ret = mt7925_mcu_set_eeprom(dev);
|
||||
if (ret)
|
||||
|
|
|
|||
|
|
@ -334,9 +334,8 @@ int mt7996_eeprom_init(struct mt7996_dev *dev)
|
|||
return ret;
|
||||
|
||||
memcpy(dev->mphy.macaddr, dev->mt76.eeprom.data + MT_EE_MAC_ADDR, ETH_ALEN);
|
||||
mt76_eeprom_override(&dev->mphy);
|
||||
|
||||
return 0;
|
||||
return mt76_eeprom_override(&dev->mphy);
|
||||
}
|
||||
|
||||
int mt7996_eeprom_get_target_power(struct mt7996_dev *dev,
|
||||
|
|
|
|||
|
|
@ -701,7 +701,9 @@ static int mt7996_register_phy(struct mt7996_dev *dev, enum mt76_band_id band)
|
|||
if (band == MT_BAND2)
|
||||
mphy->macaddr[0] ^= BIT(6);
|
||||
}
|
||||
mt76_eeprom_override(mphy);
|
||||
ret = mt76_eeprom_override(mphy);
|
||||
if (ret)
|
||||
goto error;
|
||||
|
||||
/* init wiphy according to mphy and phy */
|
||||
mt7996_init_wiphy_band(mphy->hw, phy);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user