diff options
author | Jouni Malinen <jouni.malinen@atheros.com> | 2009-03-03 12:23:31 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-03-05 14:39:45 -0500 |
commit | f0ed85c6c7960b26666db013e02e748b56eef98a (patch) | |
tree | 005de0605ebb2899a671e5ebc06e5b45393f91e5 /drivers/net/wireless/ath9k/ath9k.h | |
parent | b93bce2a5e8fd5c9f5d8c982efd6bca71a9b83f3 (diff) |
ath9k: Virtual wiphy pause/unpause functionality
Allow virtual wiphys to be paused/unpaused to allow off-channel
operations. Pause will stop all TX queues for the wiphy and move the
STA into power save mode if in managed mode. Unpause wakes up the TX
queues and notifies the AP that the STA woke up if in managed mode.
Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath9k/ath9k.h')
-rw-r--r-- | drivers/net/wireless/ath9k/ath9k.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/ath9k/ath9k.h index 386b93622e58..1153374f94fb 100644 --- a/drivers/net/wireless/ath9k/ath9k.h +++ b/drivers/net/wireless/ath9k/ath9k.h | |||
@@ -292,6 +292,7 @@ struct ath_atx_ac { | |||
292 | struct ath_tx_control { | 292 | struct ath_tx_control { |
293 | struct ath_txq *txq; | 293 | struct ath_txq *txq; |
294 | int if_id; | 294 | int if_id; |
295 | enum ath9k_internal_frame_type frame_type; | ||
295 | }; | 296 | }; |
296 | 297 | ||
297 | struct ath_xmit_status { | 298 | struct ath_xmit_status { |
@@ -392,6 +393,7 @@ struct ath_vif { | |||
392 | enum nl80211_iftype av_opmode; | 393 | enum nl80211_iftype av_opmode; |
393 | struct ath_buf *av_bcbuf; | 394 | struct ath_buf *av_bcbuf; |
394 | struct ath_tx_control av_btxctl; | 395 | struct ath_tx_control av_btxctl; |
396 | u8 bssid[ETH_ALEN]; /* current BSSID from config_interface */ | ||
395 | }; | 397 | }; |
396 | 398 | ||
397 | /*******************/ | 399 | /*******************/ |
@@ -619,6 +621,11 @@ struct ath_softc { | |||
619 | struct ath_wiphy { | 621 | struct ath_wiphy { |
620 | struct ath_softc *sc; /* shared for all virtual wiphys */ | 622 | struct ath_softc *sc; /* shared for all virtual wiphys */ |
621 | struct ieee80211_hw *hw; | 623 | struct ieee80211_hw *hw; |
624 | enum ath_wiphy_state { | ||
625 | ATH_WIPHY_ACTIVE, | ||
626 | ATH_WIPHY_PAUSING, | ||
627 | ATH_WIPHY_PAUSED, | ||
628 | } state; | ||
622 | }; | 629 | }; |
623 | 630 | ||
624 | int ath_reset(struct ath_softc *sc, bool retry_tx); | 631 | int ath_reset(struct ath_softc *sc, bool retry_tx); |
@@ -684,5 +691,8 @@ static inline void ath9k_ps_restore(struct ath_softc *sc) | |||
684 | void ath9k_set_bssid_mask(struct ieee80211_hw *hw); | 691 | void ath9k_set_bssid_mask(struct ieee80211_hw *hw); |
685 | int ath9k_wiphy_add(struct ath_softc *sc); | 692 | int ath9k_wiphy_add(struct ath_softc *sc); |
686 | int ath9k_wiphy_del(struct ath_wiphy *aphy); | 693 | int ath9k_wiphy_del(struct ath_wiphy *aphy); |
694 | void ath9k_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb); | ||
695 | int ath9k_wiphy_pause(struct ath_wiphy *aphy); | ||
696 | int ath9k_wiphy_unpause(struct ath_wiphy *aphy); | ||
687 | 697 | ||
688 | #endif /* ATH9K_H */ | 698 | #endif /* ATH9K_H */ |