aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath9k/ath9k.h
diff options
context:
space:
mode:
authorJouni Malinen <jouni.malinen@atheros.com>2009-03-03 12:23:31 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-03-05 14:39:45 -0500
commitf0ed85c6c7960b26666db013e02e748b56eef98a (patch)
tree005de0605ebb2899a671e5ebc06e5b45393f91e5 /drivers/net/wireless/ath9k/ath9k.h
parentb93bce2a5e8fd5c9f5d8c982efd6bca71a9b83f3 (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.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/ath9k/ath9k.h
index 386b93622e5..1153374f94f 100644
--- a/drivers/net/wireless/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath9k/ath9k.h
@@ -292,6 +292,7 @@ struct ath_atx_ac {
292struct ath_tx_control { 292struct 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
297struct ath_xmit_status { 298struct 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 {
619struct ath_wiphy { 621struct 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
624int ath_reset(struct ath_softc *sc, bool retry_tx); 631int ath_reset(struct ath_softc *sc, bool retry_tx);
@@ -684,5 +691,8 @@ static inline void ath9k_ps_restore(struct ath_softc *sc)
684void ath9k_set_bssid_mask(struct ieee80211_hw *hw); 691void ath9k_set_bssid_mask(struct ieee80211_hw *hw);
685int ath9k_wiphy_add(struct ath_softc *sc); 692int ath9k_wiphy_add(struct ath_softc *sc);
686int ath9k_wiphy_del(struct ath_wiphy *aphy); 693int ath9k_wiphy_del(struct ath_wiphy *aphy);
694void ath9k_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb);
695int ath9k_wiphy_pause(struct ath_wiphy *aphy);
696int ath9k_wiphy_unpause(struct ath_wiphy *aphy);
687 697
688#endif /* ATH9K_H */ 698#endif /* ATH9K_H */