linux/drivers/net/wireless/wl12xx
Ohad Ben-Cohen c5745187a4 wl12xx: fix roaming
The wl12xx device normally drops all frames coming from BSSID
it is not joined with.

This behavior is configured today by the wl12xx driver in response
to a handful of ieee80211_bss_change and ieee80211_conf_changed
notification flags, such as BSS_CHANGED_ASSOC, BSS_CHANGED_BSSID,
IEEE80211_CONF_CHANGE_IDLE, etc..

This breaks when we roam to a new BSSID, where authentication frames
are sent before any BSS_CHANGED/CONF_CHANGED flags are received.
When this happens the hardware silently drops the authentication
responses, and the roaming fails.

Ideally this aggressive filtering behavior of the device should be disabled
upon a notification from mac80211. Such notification will take place
after multi-channel support will be added: mac80211 will likely send a
remain-on-channel notification to drivers when entering sensitive
states (like authentication), otherwise the firmware might jump to
different channels (to serve a different role).

Until those notifications materialize, disable the hw BSSID filter
when authentication requests are sent, so roaming would work.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Reviewed-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
2011-04-19 16:49:15 +03:00
..
acx.c wl12xx: 1281/1283 support - use dynamic memory for the RX/TX pools 2011-04-19 16:48:59 +03:00
acx.h wl12xx: 1281/1283 support - Add acx commands 2011-04-19 16:19:47 +03:00
boot.c wl12xx: 1281/1283 support - Add dummy packet support 2011-04-19 16:49:01 +03:00
boot.h wl12xx: 1281/1283 support - Add Definitions 2011-04-19 16:19:46 +03:00
cmd.c wl12xx: 1281/1283 support - Loading FW & NVS 2011-04-19 16:48:10 +03:00
cmd.h wl12xx: 1281/1283 support - New radio structs and functions 2011-04-19 16:19:48 +03:00
conf.h wl12xx: 1281/1283 support - use dynamic memory for the RX/TX pools 2011-04-19 16:48:59 +03:00
debugfs.c wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
debugfs.h wl1271: Change wl12xx Files Names 2010-11-22 16:45:09 +02:00
event.c wl12xx: rearrange some ELP wake_up/sleep calls 2011-04-19 16:49:14 +03:00
event.h wl12xx: 1281/1283 support - Add dummy packet support 2011-04-19 16:49:01 +03:00
ini.h wl12xx: 1281/1283 support - Loading FW & NVS 2011-04-19 16:48:10 +03:00
init.c wl12xx: 1281/1283 support - New radio structs and functions 2011-04-19 16:19:48 +03:00
init.h wl12xx: 1281/1283 support - Add acx commands 2011-04-19 16:19:47 +03:00
io.c wl12xx: 1281/1283 support - Add acx commands 2011-04-19 16:19:47 +03:00
io.h wl12xx: fix roaming 2011-04-19 16:49:15 +03:00
Kconfig wl12xx: 1281/1283 support - enable chip support 2011-04-19 16:49:03 +03:00
main.c wl12xx: fix roaming 2011-04-19 16:49:15 +03:00
Makefile wl12xx_sdio_test: rename files to match current style 2010-12-15 17:09:27 +02:00
ps.c wl12xx: rearrange some ELP wake_up/sleep calls 2011-04-19 16:49:14 +03:00
ps.h wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
reg.h wl12xx: 1281/1283 support - Add Definitions 2011-04-19 16:19:46 +03:00
rx.c wl12xx: Fix potential incorrect band in rx-status 2011-04-19 16:49:04 +03:00
rx.h wl12xx: use standard ALIGN() macro 2011-02-23 11:11:19 +02:00
scan.c wl12xx: use a bitmask instead of list of booleans in scanned_ch 2011-04-19 16:49:12 +03:00
scan.h wl1271: Change wl12xx Files Names 2010-11-22 16:45:09 +02:00
sdio_test.c wl12xx: Clamp byte mode transfers for 128x chips 2011-04-19 16:49:07 +03:00
sdio.c wl12xx: Clamp byte mode transfers for 128x chips 2011-04-19 16:49:07 +03:00
spi.c wl12xx: 1281/1283 support - Use different FW file for AP mode wl127x/wl128x chips 2011-04-19 16:49:02 +03:00
testmode.c wl12xx: 1281/1283 support - Loading FW & NVS 2011-04-19 16:48:10 +03:00
testmode.h wl1271: Change wl12xx Files Names 2010-11-22 16:45:09 +02:00
tx.c wl12xx: fix roaming 2011-04-19 16:49:15 +03:00
tx.h wl12xx: use 1 spare TX block instead of two 2011-04-19 16:49:03 +03:00
wl12xx_80211.h ieee80211: add IEEE80211_COUNTRY_STRING_LEN definition 2011-03-09 16:10:56 -05:00
wl12xx_platform_data.c wl12xx: add platform data passing support 2010-09-21 11:04:57 -04:00
wl12xx.h wl12xx: Handle duplicate calling of remove interface 2011-04-19 16:49:15 +03:00