]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
mt76: mt76x02: omit beacon slot clearing
authorMarkus Theil <markus.theil@tu-ilmenau.de>
Wed, 18 Dec 2019 16:07:49 +0000 (17:07 +0100)
committerFelix Fietkau <nbd@nbd.name>
Fri, 14 Feb 2020 09:06:01 +0000 (10:06 +0100)
mt76 hw does not send beacons from beacon slots, if the corresponding
bitmask is set accordingly. Therefore we can omit clearing the beacon
memory. Clearing uses many usb calls, if usb drivers are used. These
calls unnecessarily slow down the beacon tasklet. Thanks to Stanislaw
Gruzska for pointing this out.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x02_beacon.c

index 4209209ac940d8330a59b2f56421451f6c1a0950..403866496640a995a7481cd0e2ff4905b5ebc374 100644 (file)
@@ -58,8 +58,6 @@ __mt76x02_mac_set_beacon(struct mt76x02_dev *dev, u8 bcn_idx,
                        dev->beacon_data_mask |= BIT(bcn_idx);
        } else {
                dev->beacon_data_mask &= ~BIT(bcn_idx);
-               for (i = 0; i < beacon_len; i += 4)
-                       mt76_wr(dev, beacon_addr + i, 0);
        }
 
        mt76_wr(dev, MT_BCN_BYPASS_MASK, 0xff00 | ~dev->beacon_data_mask);
@@ -241,17 +239,11 @@ EXPORT_SYMBOL_GPL(mt76x02_enqueue_buffered_bc);
 
 void mt76x02_init_beacon_config(struct mt76x02_dev *dev)
 {
-       int i;
-
        mt76_clear(dev, MT_BEACON_TIME_CFG, (MT_BEACON_TIME_CFG_TIMER_EN |
                                             MT_BEACON_TIME_CFG_TBTT_EN |
                                             MT_BEACON_TIME_CFG_BEACON_TX));
        mt76_set(dev, MT_BEACON_TIME_CFG, MT_BEACON_TIME_CFG_SYNC_MODE);
        mt76_wr(dev, MT_BCN_BYPASS_MASK, 0xffff);
-
-       for (i = 0; i < 8; i++)
-               mt76x02_mac_set_beacon(dev, i, NULL);
-
        mt76x02_set_beacon_offsets(dev);
 }
 EXPORT_SYMBOL_GPL(mt76x02_init_beacon_config);