aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-07-27 20:40:49 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-07-28 16:24:02 -0400
commit4552124543141debf40a94b67155e57aa6bb34d6 (patch)
treec2080f8be1a08c92a40bb05464800c05d4806152 /net/mac80211
parenta0daa0e7592ada797d6835f11529097aabc27ad2 (diff)
mac80211: inform drivers about the off-channel status on channel changes
For some drivers it can be useful to know whether the channel they're supposed to switch to is going to be used for short off-channel work or scanning, or whether the hardware is expected to stay on it for a while longer. This is important for various kinds of calibration work, which takes longer to complete and should keep some persistent state, even if the channel temporarily changes. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 0e95c750ded9..7cc4f913a431 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -107,12 +107,15 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
107 if (scan_chan) { 107 if (scan_chan) {
108 chan = scan_chan; 108 chan = scan_chan;
109 channel_type = NL80211_CHAN_NO_HT; 109 channel_type = NL80211_CHAN_NO_HT;
110 local->hw.conf.flags |= IEEE80211_CONF_OFFCHANNEL;
110 } else if (local->tmp_channel) { 111 } else if (local->tmp_channel) {
111 chan = scan_chan = local->tmp_channel; 112 chan = scan_chan = local->tmp_channel;
112 channel_type = local->tmp_channel_type; 113 channel_type = local->tmp_channel_type;
114 local->hw.conf.flags |= IEEE80211_CONF_OFFCHANNEL;
113 } else { 115 } else {
114 chan = local->oper_channel; 116 chan = local->oper_channel;
115 channel_type = local->_oper_channel_type; 117 channel_type = local->_oper_channel_type;
118 local->hw.conf.flags &= ~IEEE80211_CONF_OFFCHANNEL;
116 } 119 }
117 120
118 if (chan != local->hw.conf.channel || 121 if (chan != local->hw.conf.channel ||