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:32 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-03-05 14:39:46 -0500
commit0e2dedf971f3feefd4d3d3d8cb5c57b1757f1101 (patch)
tree8ae3400d17331c000ac204ab85a970434f5e5233 /drivers/net/wireless/ath9k/ath9k.h
parentf0ed85c6c7960b26666db013e02e748b56eef98a (diff)
ath9k: Add routines for switching between active virtual wiphys
ath9k_wiphy_select() can be used to select a virtual wiphy to be activated. Other virtual wiphys will be paused and once that is done, the operational channel is changed and the wiphys that are on the selected channel will be unpaused. 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.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/ath9k/ath9k.h
index 1153374f94fb..bc25075913ad 100644
--- a/drivers/net/wireless/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath9k/ath9k.h
@@ -563,6 +563,11 @@ struct ath_softc {
563 struct ath_wiphy **sec_wiphy; /* secondary wiphys (virtual radios); may 563 struct ath_wiphy **sec_wiphy; /* secondary wiphys (virtual radios); may
564 * have NULL entries */ 564 * have NULL entries */
565 int num_sec_wiphy; /* number of sec_wiphy pointers in the array */ 565 int num_sec_wiphy; /* number of sec_wiphy pointers in the array */
566 int chan_idx;
567 int chan_is_ht;
568 struct ath_wiphy *next_wiphy;
569 struct work_struct chan_work;
570
566 struct tasklet_struct intr_tq; 571 struct tasklet_struct intr_tq;
567 struct tasklet_struct bcon_tasklet; 572 struct tasklet_struct bcon_tasklet;
568 struct ath_hw *sc_ah; 573 struct ath_hw *sc_ah;
@@ -626,6 +631,8 @@ struct ath_wiphy {
626 ATH_WIPHY_PAUSING, 631 ATH_WIPHY_PAUSING,
627 ATH_WIPHY_PAUSED, 632 ATH_WIPHY_PAUSED,
628 } state; 633 } state;
634 int chan_idx;
635 int chan_is_ht;
629}; 636};
630 637
631int ath_reset(struct ath_softc *sc, bool retry_tx); 638int ath_reset(struct ath_softc *sc, bool retry_tx);
@@ -652,6 +659,11 @@ void ath_detach(struct ath_softc *sc);
652const char *ath_mac_bb_name(u32 mac_bb_version); 659const char *ath_mac_bb_name(u32 mac_bb_version);
653const char *ath_rf_name(u16 rf_version); 660const char *ath_rf_name(u16 rf_version);
654void ath_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw); 661void ath_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw);
662void ath9k_update_ichannel(struct ath_softc *sc, struct ieee80211_hw *hw,
663 struct ath9k_channel *ichan);
664void ath_update_chainmask(struct ath_softc *sc, int is_ht);
665int ath_set_channel(struct ath_softc *sc, struct ieee80211_hw *hw,
666 struct ath9k_channel *hchan);
655 667
656#ifdef CONFIG_PCI 668#ifdef CONFIG_PCI
657int ath_pci_init(void); 669int ath_pci_init(void);
@@ -694,5 +706,7 @@ int ath9k_wiphy_del(struct ath_wiphy *aphy);
694void ath9k_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb); 706void ath9k_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb);
695int ath9k_wiphy_pause(struct ath_wiphy *aphy); 707int ath9k_wiphy_pause(struct ath_wiphy *aphy);
696int ath9k_wiphy_unpause(struct ath_wiphy *aphy); 708int ath9k_wiphy_unpause(struct ath_wiphy *aphy);
709int ath9k_wiphy_select(struct ath_wiphy *aphy);
710void ath9k_wiphy_chan_work(struct work_struct *work);
697 711
698#endif /* ATH9K_H */ 712#endif /* ATH9K_H */