This patch series adds channel switch support for mt76 usb interfaces. When testing, I noticed that between 5 or 7 consecutive beacons had the identical channel switch count set. After some debugging I found out, that beacon copying over usb took far too long (up to 700ms for one call of mt76x02u_pre_tbtt_work). Therefore the first three patches speed up beacon copying and the last patch enables channel switch support also for usb interfaces. v2 (thanks for the comments Lorenzo): * correctly track beacon data mask * clean-ups * make channel switch fn static (reported by kbuild test robot) Markus Theil (4): mt76: mt76x02: ommit beacon slot clearing mt76: mt76x02: split beaconing mt76: speed up usb bulk copy mt76: mt76x02: add channel switch support for usb interfaces drivers/net/wireless/mediatek/mt76/mt76.h | 2 +- .../wireless/mediatek/mt76/mt76x02_beacon.c | 53 ++++++------------- .../net/wireless/mediatek/mt76/mt76x02_mac.h | 1 + .../net/wireless/mediatek/mt76/mt76x02_mmio.c | 5 ++ .../wireless/mediatek/mt76/mt76x02_usb_core.c | 12 +++++ .../net/wireless/mediatek/mt76/mt76x02_util.c | 2 +- .../wireless/mediatek/mt76/mt76x2/usb_main.c | 5 ++ drivers/net/wireless/mediatek/mt76/usb.c | 17 +++--- 8 files changed, 52 insertions(+), 45 deletions(-) -- 2.24.0