aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h30
1 files changed, 25 insertions, 5 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 5f28b7f89887..34e8569b59bb 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -464,12 +464,32 @@ static inline int __deprecated __IEEE80211_CONF_SHORT_SLOT_TIME(void)
464#define IEEE80211_CONF_SHORT_SLOT_TIME (__IEEE80211_CONF_SHORT_SLOT_TIME()) 464#define IEEE80211_CONF_SHORT_SLOT_TIME (__IEEE80211_CONF_SHORT_SLOT_TIME())
465 465
466/** 466/**
467 * enum ieee80211_conf_changed - denotes which configuration changed
468 *
469 * @IEEE80211_CONF_CHANGE_RADIO_ENABLED: the value of radio_enabled changed
470 * @IEEE80211_CONF_CHANGE_BEACON_INTERVAL: the beacon interval changed
471 * @IEEE80211_CONF_CHANGE_LISTEN_INTERVAL: the listen interval changed
472 * @IEEE80211_CONF_CHANGE_RADIOTAP: the radiotap flag changed
473 * @IEEE80211_CONF_CHANGE_PS: the PS flag changed
474 * @IEEE80211_CONF_CHANGE_POWER: the TX power changed
475 * @IEEE80211_CONF_CHANGE_CHANNEL: the channel changed
476 */
477enum ieee80211_conf_changed {
478 IEEE80211_CONF_CHANGE_RADIO_ENABLED = BIT(0),
479 IEEE80211_CONF_CHANGE_BEACON_INTERVAL = BIT(1),
480 IEEE80211_CONF_CHANGE_LISTEN_INTERVAL = BIT(2),
481 IEEE80211_CONF_CHANGE_RADIOTAP = BIT(3),
482 IEEE80211_CONF_CHANGE_PS = BIT(4),
483 IEEE80211_CONF_CHANGE_POWER = BIT(5),
484 IEEE80211_CONF_CHANGE_CHANNEL = BIT(6),
485};
486
487/**
467 * struct ieee80211_conf - configuration of the device 488 * struct ieee80211_conf - configuration of the device
468 * 489 *
469 * This struct indicates how the driver shall configure the hardware. 490 * This struct indicates how the driver shall configure the hardware.
470 * 491 *
471 * @radio_enabled: when zero, driver is required to switch off the radio. 492 * @radio_enabled: when zero, driver is required to switch off the radio.
472 * TODO make a flag
473 * @beacon_int: beacon interval (TODO make interface config) 493 * @beacon_int: beacon interval (TODO make interface config)
474 * @listen_interval: listen interval in units of beacon interval 494 * @listen_interval: listen interval in units of beacon interval
475 * @flags: configuration flags defined above 495 * @flags: configuration flags defined above
@@ -479,13 +499,13 @@ static inline int __deprecated __IEEE80211_CONF_SHORT_SLOT_TIME(void)
479 * @channel: the channel to tune to 499 * @channel: the channel to tune to
480 */ 500 */
481struct ieee80211_conf { 501struct ieee80211_conf {
482 int radio_enabled;
483
484 int beacon_int; 502 int beacon_int;
485 u16 listen_interval;
486 u32 flags; 503 u32 flags;
487 int power_level; 504 int power_level;
488 505
506 u16 listen_interval;
507 bool radio_enabled;
508
489 struct ieee80211_channel *channel; 509 struct ieee80211_channel *channel;
490 510
491 struct ieee80211_sta_ht_cap ht_cap; 511 struct ieee80211_sta_ht_cap ht_cap;
@@ -1214,7 +1234,7 @@ struct ieee80211_ops {
1214 struct ieee80211_if_init_conf *conf); 1234 struct ieee80211_if_init_conf *conf);
1215 void (*remove_interface)(struct ieee80211_hw *hw, 1235 void (*remove_interface)(struct ieee80211_hw *hw,
1216 struct ieee80211_if_init_conf *conf); 1236 struct ieee80211_if_init_conf *conf);
1217 int (*config)(struct ieee80211_hw *hw, struct ieee80211_conf *conf); 1237 int (*config)(struct ieee80211_hw *hw, u32 changed);
1218 int (*config_interface)(struct ieee80211_hw *hw, 1238 int (*config_interface)(struct ieee80211_hw *hw,
1219 struct ieee80211_vif *vif, 1239 struct ieee80211_vif *vif,
1220 struct ieee80211_if_conf *conf); 1240 struct ieee80211_if_conf *conf);