[PATCH mt76 5/6] wifi: mt76: mt7996: fix the temporary buffer for calibration-free data
Shayne Chen
shayne.chen at mediatek.com
Thu Mar 12 02:57:23 PDT 2026
From: StanleyYP Wang <StanleyYP.Wang at mediatek.com>
Move the declaration of buf[] outside the for loop.
Fixes: 224c7c2be578 ("wifi: mt76: mt7996: apply calibration-free data from OTP")
Signed-off-by: StanleyYP Wang <StanleyYP.Wang at mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen at mediatek.com>
---
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
index 2a9c59d15894..4c733f51a03e 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
@@ -4104,6 +4104,7 @@ mt7996_mcu_get_cal_free_data(struct mt7996_dev *dev)
}
for (band = 0; band < __MT_MAX_BAND; band++) {
+ u8 buf[MT7996_EEPROM_BLOCK_SIZE];
const struct cal_free_data *cal;
u16 prev_block_idx = -1;
u16 adie_base;
@@ -4126,13 +4127,13 @@ mt7996_mcu_get_cal_free_data(struct mt7996_dev *dev)
u16 eep_offset = cal[i].eep_offs;
u16 block_idx = adie_offset / MT7996_EEPROM_BLOCK_SIZE;
u16 offset = adie_offset % MT7996_EEPROM_BLOCK_SIZE;
- u8 buf[MT7996_EEPROM_BLOCK_SIZE];
if (is_mt7996(&dev->mt76) && band == MT_BAND1 &&
dev->var.type == MT7996_VAR_TYPE_444)
eep_offset -= MT_EE_7977BN_OFFSET;
if (prev_block_idx != block_idx) {
+ memset(buf, 0, sizeof(buf));
ret = mt7996_mcu_get_eeprom(dev, adie_offset, buf,
MT7996_EEPROM_BLOCK_SIZE,
EEPROM_MODE_EFUSE);
--
2.51.0
More information about the Linux-mediatek
mailing list