From 8361f9cd07f97be39fee9e9e6f90a9e7bb0da145 Mon Sep 17 00:00:00 2001 From: Andriy Voskoboinyk Date: Sat, 5 Nov 2016 22:47:09 +0000 Subject: rtwn: pause beacon queue during scanning. Tested with RTL8821AU, AP + AP mode. --- sys/dev/rtwn/if_rtwn.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'sys/dev') diff --git a/sys/dev/rtwn/if_rtwn.c b/sys/dev/rtwn/if_rtwn.c index 54381cf1642f..355a269ee7ab 100644 --- a/sys/dev/rtwn/if_rtwn.c +++ b/sys/dev/rtwn/if_rtwn.c @@ -1513,6 +1513,8 @@ rtwn_scan_start(struct ieee80211com *ic) struct rtwn_softc *sc = ic->ic_softc; RTWN_LOCK(sc); + /* Pause beaconing. */ + rtwn_setbits_1(sc, R92C_TXPAUSE, 0, R92C_TX_QUEUE_BCN); /* Receive beacons / probe responses from any BSSID. */ if (sc->bcn_vaps == 0) rtwn_set_rx_bssid_all(sc, 1); @@ -1547,6 +1549,9 @@ rtwn_scan_end(struct ieee80211com *ic) /* Restore basic rates mask. */ rtwn_calc_basicrates(sc); + + /* Resume beaconing. */ + rtwn_setbits_1(sc, R92C_TXPAUSE, R92C_TX_QUEUE_BCN, 0); RTWN_UNLOCK(sc); } -- cgit v1.3