|
@@ -986,13 +986,15 @@ static void mt7601u_agc_tune(struct mt7601u_dev *dev)
|
|
|
*/
|
|
|
spin_lock_bh(&dev->con_mon_lock);
|
|
|
avg_rssi = ewma_rssi_read(&dev->avg_rssi);
|
|
|
- WARN_ON_ONCE(avg_rssi == 0);
|
|
|
+ spin_unlock_bh(&dev->con_mon_lock);
|
|
|
+ if (avg_rssi == 0)
|
|
|
+ return;
|
|
|
+
|
|
|
avg_rssi = -avg_rssi;
|
|
|
if (avg_rssi <= -70)
|
|
|
val -= 0x20;
|
|
|
else if (avg_rssi <= -60)
|
|
|
val -= 0x10;
|
|
|
- spin_unlock_bh(&dev->con_mon_lock);
|
|
|
|
|
|
if (val != mt7601u_bbp_rr(dev, 66))
|
|
|
mt7601u_bbp_wr(dev, 66, val);
|