diff --git a/sys/dev/usb/wlan/if_urtwn.c b/sys/dev/usb/wlan/if_urtwn.c index d1275c02b5a2..5aca1a4f07c1 100644 --- a/sys/dev/usb/wlan/if_urtwn.c +++ b/sys/dev/usb/wlan/if_urtwn.c @@ -1632,6 +1632,19 @@ urtwn_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) /* Enable Rx of data frames. */ urtwn_write_2(sc, R92C_RXFLTMAP2, 0xffff); + /* Enable Rx of ctrl frames. */ + urtwn_write_2(sc, R92C_RXFLTMAP1, 0xffff); + + /* + * Accept data/control/management frames + * from any BSSID. + */ + urtwn_write_4(sc, R92C_RCR, + (urtwn_read_4(sc, R92C_RCR) & ~(R92C_RCR_APM | + R92C_RCR_CBSSID_DATA | R92C_RCR_CBSSID_BCN)) | + R92C_RCR_ADF | R92C_RCR_ACF | R92C_RCR_AMF | + R92C_RCR_AAP); + /* Turn link LED on. */ urtwn_set_led(sc, URTWN_LED_LINK, 1); break;