OSDN Git Service

mt76: mt7915: fix return condition in mt7915_tm_reg_backup_restore()
authorShayne Chen <shayne.chen@mediatek.com>
Fri, 5 Nov 2021 10:37:26 +0000 (18:37 +0800)
committerFelix Fietkau <nbd@nbd.name>
Sat, 18 Dec 2021 10:47:57 +0000 (11:47 +0100)
Fix the issue that some registers not configured properly after
restarting testmode.
(e.g. change state from idle to off, and off to idle)

Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/testmode.c

index 89aae32..af80c2c 100644 (file)
@@ -361,16 +361,15 @@ mt7915_tm_reg_backup_restore(struct mt7915_phy *phy)
                return;
        }
 
-       if (b)
-               return;
-
-       b = devm_kzalloc(dev->mt76.dev, 4 * n_regs, GFP_KERNEL);
-       if (!b)
-               return;
+       if (!b) {
+               b = devm_kzalloc(dev->mt76.dev, 4 * n_regs, GFP_KERNEL);
+               if (!b)
+                       return;
 
-       phy->test.reg_backup = b;
-       for (i = 0; i < n_regs; i++)
-               b[i] = mt76_rr(dev, reg_backup_list[i].band[ext_phy]);
+               phy->test.reg_backup = b;
+               for (i = 0; i < n_regs; i++)
+                       b[i] = mt76_rr(dev, reg_backup_list[i].band[ext_phy]);
+       }
 
        mt76_clear(dev, MT_AGG_PCR0(ext_phy, 0), MT_AGG_PCR0_MM_PROT |
                   MT_AGG_PCR0_GF_PROT | MT_AGG_PCR0_ERP_PROT |