ath9k: channel context based transmission
[deliverable/linux.git] / drivers / net / wireless / ath / ath9k / ath9k.h
index 198cca38c24be2888f33520578fe55facd0f7104..ddd2e81ccd58007c9dcc8f2a494436c63876357d 100644 (file)
@@ -275,8 +275,9 @@ struct ath_node {
 struct ath_tx_control {
        struct ath_txq *txq;
        struct ath_node *an;
-       u8 paprd;
        struct ieee80211_sta *sta;
+       u8 paprd;
+       bool force_channel;
 };
 
 
@@ -327,11 +328,14 @@ struct ath_chanctx {
 
        u16 txpower;
        bool offchannel;
+       bool stopped;
 };
 
 void ath_chanctx_init(struct ath_softc *sc);
-int ath_chanctx_set_channel(struct ath_softc *sc, struct ath_chanctx *ctx,
-                             struct cfg80211_chan_def *chandef);
+void ath_chanctx_set_channel(struct ath_softc *sc, struct ath_chanctx *ctx,
+                            struct cfg80211_chan_def *chandef);
+void ath_chanctx_switch(struct ath_softc *sc, struct ath_chanctx *ctx,
+                       struct cfg80211_chan_def *chandef);
 int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan);
 int ath_startrecv(struct ath_softc *sc);
 bool ath_stoprecv(struct ath_softc *sc);
@@ -470,6 +474,7 @@ void ath9k_csa_update(struct ath_softc *sc);
 #define ATH_PAPRD_TIMEOUT         100 /* msecs */
 #define ATH_PLL_WORK_INTERVAL     100
 
+void ath_chanctx_work(struct work_struct *work);
 void ath_tx_complete_poll_work(struct work_struct *work);
 void ath_reset_work(struct work_struct *work);
 bool ath_hw_check(struct ath_softc *sc);
@@ -485,6 +490,7 @@ void ath9k_queue_reset(struct ath_softc *sc, enum ath_reset_type type);
 void ath_ps_full_sleep(unsigned long data);
 void ath9k_p2p_ps_timer(void *priv);
 void ath9k_update_p2p_ps(struct ath_softc *sc, struct ieee80211_vif *vif);
+void __ath9k_flush(struct ieee80211_hw *hw, u32 queues, bool drop);
 
 /**********/
 /* BTCOEX */
@@ -734,6 +740,7 @@ struct ath_softc {
        struct mutex mutex;
        struct work_struct paprd_work;
        struct work_struct hw_reset_work;
+       struct work_struct chanctx_work;
        struct completion paprd_complete;
        wait_queue_head_t tx_wait;
 
@@ -756,8 +763,11 @@ struct ath_softc {
        struct ath_tx tx;
        struct ath_beacon beacon;
 
+       struct cfg80211_chan_def cur_chandef;
        struct ath_chanctx chanctx[ATH9K_NUM_CHANCTX];
        struct ath_chanctx *cur_chan;
+       struct ath_chanctx *next_chan;
+       spinlock_t chan_lock;
 
 #ifdef CONFIG_MAC80211_LEDS
        bool led_registered;
This page took 0.026325 seconds and 5 git commands to generate.