Skip to content

Commit 95ff66d

Browse files
committed
wifi: mt76: mt7915: add fallback in case of missing precal data
When pre-calibration data is missing, do not fail the driver probe. Instead, just print a warning and fall back to regular calibration. Signed-off-by: Felix Fietkau <nbd@nbd.name>
1 parent 19a954e commit 95ff66d

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,15 @@ static int mt7915_eeprom_load_precal(struct mt7915_dev *dev)
2828
if (!ret)
2929
return ret;
3030

31-
return mt76_get_of_data_from_nvmem(mdev, dev->cal, "precal", size);
31+
ret = mt76_get_of_data_from_nvmem(mdev, dev->cal, "precal", size);
32+
if (!ret)
33+
return ret;
34+
35+
dev_warn(mdev->dev, "missing precal data, size=%d\n", size);
36+
devm_kfree(mdev->dev, dev->cal);
37+
dev->cal = NULL;
38+
39+
return ret;
3240
}
3341

3442
static int mt7915_check_eeprom(struct mt7915_dev *dev)
@@ -254,10 +262,7 @@ int mt7915_eeprom_init(struct mt7915_dev *dev)
254262
return ret;
255263
}
256264

257-
ret = mt7915_eeprom_load_precal(dev);
258-
if (ret)
259-
return ret;
260-
265+
mt7915_eeprom_load_precal(dev);
261266
mt7915_eeprom_parse_hw_cap(dev, &dev->phy);
262267
memcpy(dev->mphy.macaddr, dev->mt76.eeprom.data + MT_EE_MAC_ADDR,
263268
ETH_ALEN);

drivers/net/wireless/mediatek/mt76/mt7915/init.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,7 @@ mt7915_init_hardware(struct mt7915_dev *dev, struct mt7915_phy *phy2)
823823
if (ret < 0)
824824
return ret;
825825

826-
if (dev->flash_mode) {
826+
if (dev->cal) {
827827
ret = mt7915_mcu_apply_group_cal(dev);
828828
if (ret)
829829
return ret;

drivers/net/wireless/mediatek/mt76/mt7915/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ int mt7915_set_channel(struct mt7915_phy *phy)
329329

330330
mt76_set_channel(phy->mt76);
331331

332-
if (dev->flash_mode) {
332+
if (dev->cal) {
333333
ret = mt7915_mcu_apply_tx_dpd(phy);
334334
if (ret)
335335
goto out;

0 commit comments

Comments
 (0)