diff options
author | Jouni Malinen <jouni.malinen@atheros.com> | 2009-03-03 18:23:32 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-03-05 20:39:46 +0100 |
commit | 0e2dedf971f3feefd4d3d3d8cb5c57b1757f1101 (patch) | |
tree | 8ae3400d17331c000ac204ab85a970434f5e5233 /drivers/net/wireless/ath9k/ath9k.h | |
parent | ath9k: Virtual wiphy pause/unpause functionality (diff) | |
download | linux-0e2dedf971f3feefd4d3d3d8cb5c57b1757f1101.tar.xz linux-0e2dedf971f3feefd4d3d3d8cb5c57b1757f1101.zip |
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.h | 14 |
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 { struct ath_wiphy **sec_wiphy; /* secondary wiphys (virtual radios); may * have NULL entries */ int num_sec_wiphy; /* number of sec_wiphy pointers in the array */ + int chan_idx; + int chan_is_ht; + struct ath_wiphy *next_wiphy; + struct work_struct chan_work; + struct tasklet_struct intr_tq; struct tasklet_struct bcon_tasklet; struct ath_hw *sc_ah; @@ -626,6 +631,8 @@ struct ath_wiphy { ATH_WIPHY_PAUSING, ATH_WIPHY_PAUSED, } state; + int chan_idx; + int chan_is_ht; }; int ath_reset(struct ath_softc *sc, bool retry_tx); @@ -652,6 +659,11 @@ void ath_detach(struct ath_softc *sc); const char *ath_mac_bb_name(u32 mac_bb_version); const char *ath_rf_name(u16 rf_version); void ath_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw); +void ath9k_update_ichannel(struct ath_softc *sc, struct ieee80211_hw *hw, + struct ath9k_channel *ichan); +void ath_update_chainmask(struct ath_softc *sc, int is_ht); +int ath_set_channel(struct ath_softc *sc, struct ieee80211_hw *hw, + struct ath9k_channel *hchan); #ifdef CONFIG_PCI int ath_pci_init(void); @@ -694,5 +706,7 @@ int ath9k_wiphy_del(struct ath_wiphy *aphy); void ath9k_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb); int ath9k_wiphy_pause(struct ath_wiphy *aphy); int ath9k_wiphy_unpause(struct ath_wiphy *aphy); +int ath9k_wiphy_select(struct ath_wiphy *aphy); +void ath9k_wiphy_chan_work(struct work_struct *work); #endif /* ATH9K_H */ |