26 #include <linux/kernel.h>
27 #include <linux/module.h>
38 unsigned int flags = 0;
79 rt2x00dev->
ops->lib->config_intf(rt2x00dev, intf, &conf, flags);
89 memset(&erp, 0,
sizeof(erp));
104 rt2x00dev->
aid = bss_conf->
assoc ? bss_conf->
aid : 0;
113 rt2x00dev->
ops->lib->config_erp(rt2x00dev, &erp, changed);
141 config.
rx = active->
rx;
153 config.
tx = active->
tx;
167 rt2x00dev->
ops->lib->config_ant(rt2x00dev, &config);
171 memcpy(active, &config,
sizeof(config));
177 static u16 rt2x00ht_center_channel(
struct rt2x00_dev *rt2x00dev,
192 if (conf_is_ht40_plus(conf))
194 else if (conf_is_ht40_minus(conf))
195 center_channel -= (center_channel == 14) ? 1 : 2;
198 if (spec->
channels[i].channel == center_channel)
202 return conf->
channel->hw_value;
207 unsigned int ieee80211_flags)
211 u16 autowake_timeout;
215 memset(&libconf, 0,
sizeof(libconf));
220 if (!conf_is_ht(conf))
225 if (conf_is_ht40(conf)) {
227 hw_value = rt2x00ht_center_channel(rt2x00dev, conf);
230 hw_value = conf->
channel->hw_value;
234 &rt2x00dev->
spec.channels[hw_value],
238 &rt2x00dev->
spec.channels_info[hw_value],
252 rt2x00dev->
ops->lib->config(rt2x00dev, &libconf, ieee80211_flags);
258 if (ieee80211_flags & IEEE80211_CONF_CHANGE_CHANNEL)
263 (ieee80211_flags & IEEE80211_CONF_CHANGE_PS) &&
268 if (beacon_diff > beacon_int)
274 autowake_timeout - 15);