Skip to contentSkip to conversation

mt76: mt7915: add support for MT7986

bug report Dan Carpenter 1 participant 1 message Mar 1, 2022 Arm MediaTek

lore
Share & tools
lore
#0 lore raw

Hello Bo Jiao,

The patch 99ad32a4ca3a: "mt76: mt7915: add support for MT7986" from Feb 9, 2022, leads to the following Smatch static checker warning:

	drivers/net/wireless/mediatek/mt76/mt7915/soc.c:357 mt7986_wmac_adie_thermal_cal()
	error: uninitialized symbol 'data'.

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

    349 static int mt7986_wmac_adie_thermal_cal(struct mt7915_dev *dev, u8 adie)
    350 {
    351         int ret;
    352         u32 data, val;
    353 
    354         ret = mt7986_wmac_adie_efuse_read(dev, adie, MT_ADIE_THADC_ANALOG,
    355                                           &data);
                                                  ^^^^^
    356         if (ret || FIELD_GET(MT_ADIE_ANA_EN_MASK, data)) {
--> 357                 val = FIELD_GET(MT_ADIE_VRPI_SEL_EFUSE_MASK, data);
                                                                     ^^^^

If mt7986_wmac_adie_efuse_read() fails then data is uninitialized.

    358                 ret = mt76_wmac_spi_rmw(dev, adie, MT_ADIE_RG_TOP_THADC_BG,
    359                                         MT_ADIE_VRPI_SEL_CR_MASK,
    360                                         FIELD_PREP(MT_ADIE_VRPI_SEL_CR_MASK, val));
    361                 if (ret)
    362                         return ret;
    363 
    364                 val = FIELD_GET(MT_ADIE_PGA_GAIN_EFUSE_MASK, data);
    365                 ret = mt76_wmac_spi_rmw(dev, adie, MT_ADIE_RG_TOP_THADC,
    366                                         MT_ADIE_PGA_GAIN_MASK,
    367                                         FIELD_PREP(MT_ADIE_PGA_GAIN_MASK, val));
    368                 if (ret)
    369                         return ret;
    370         }
    371 
    372         ret = mt7986_wmac_adie_efuse_read(dev, adie, MT_ADIE_THADC_SLOP,
    373                                           &data);
    374         if (ret || FIELD_GET(MT_ADIE_ANA_EN_MASK, data)) {
    375                 val = FIELD_GET(MT_ADIE_LDO_CTRL_EFUSE_MASK, data);

Same

    376 
    377                 return mt76_wmac_spi_rmw(dev, adie, MT_ADIE_RG_TOP_THADC,
    378                                          MT_ADIE_LDO_CTRL_MASK,
    379                                          FIELD_PREP(MT_ADIE_LDO_CTRL_MASK, val));
    380         }
    381 
    382         return 0;
    383 }

regards,
dan carpenter

_______________________________________________
Linux-mediatek mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-mediatek