summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/main.c
diff options
context:
space:
mode:
authorArik Nemtsov2011-03-22 09:07:47 +0100
committerLuciano Coelho2011-04-19 15:49:13 +0200
commit17e672d6e4b5a8a3f330a70dfd58d25a2cb497b5 (patch)
tree2b1e0a871efb2ef0d3c45f5e82a4496bbb24bc5f /drivers/net/wireless/wl12xx/main.c
parentwl12xx: use a bitmask instead of list of booleans in scanned_ch (diff)
downloadkernel-qcow2-linux-17e672d6e4b5a8a3f330a70dfd58d25a2cb497b5.tar.gz
kernel-qcow2-linux-17e672d6e4b5a8a3f330a70dfd58d25a2cb497b5.tar.xz
kernel-qcow2-linux-17e672d6e4b5a8a3f330a70dfd58d25a2cb497b5.zip
wl12xx: configure channel/band while FW is off
Initialize the channel and band from mac80211 conf even when the FW is not yet loaded. This mitigates a bug in AP-mode where the channel was never changed from its initial setting after FW boot and was therefore never configured to FW. Reported-by: Alexander Boukaty <alexanderb@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/main.c')
-rw-r--r--drivers/net/wireless/wl12xx/main.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 9663326c0dfa..5545c3b94d2e 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -1706,7 +1706,12 @@ static int wl1271_op_config(struct ieee80211_hw *hw, u32 changed)
mutex_lock(&wl->mutex);
if (unlikely(wl->state == WL1271_STATE_OFF)) {
- ret = -EAGAIN;
+ /* we support configuring the channel and band while off */
+ if ((changed & IEEE80211_CONF_CHANGE_CHANNEL)) {
+ wl->band = conf->channel->band;
+ wl->channel = channel;
+ }
+
goto out;
}