ath9k: move ath9k_spectral_scan_ from main.c to spectral.c
[linux-2.6-block.git] / drivers / net / wireless / ath / ath9k / ath9k.h
index bfa0b1518da1b5b7d95ce69170f5f7934ee375a1..dee1f2a585383918bbef959df73cde04ab3cf74d 100644 (file)
@@ -294,7 +294,6 @@ struct ath_tx_control {
  *  (axq_qnum).
  */
 struct ath_tx {
-       u16 seq_no;
        u32 txqsetup;
        spinlock_t txbuflock;
        struct list_head txbuf;
@@ -346,7 +345,9 @@ struct ath_chanctx {
        u64 tsf_val;
        u32 last_beacon;
 
+       int flush_timeout;
        u16 txpower;
+       u16 cur_txpower;
        bool offchannel;
        bool stopped;
        bool active;
@@ -363,7 +364,7 @@ enum ath_chanctx_event {
        ATH_CHANCTX_EVENT_BEACON_SENT,
        ATH_CHANCTX_EVENT_TSF_TIMER,
        ATH_CHANCTX_EVENT_BEACON_RECEIVED,
-       ATH_CHANCTX_EVENT_ASSOC,
+       ATH_CHANCTX_EVENT_AUTHORIZED,
        ATH_CHANCTX_EVENT_SWITCH,
        ATH_CHANCTX_EVENT_ASSIGN,
        ATH_CHANCTX_EVENT_UNASSIGN,
@@ -385,6 +386,7 @@ struct ath_chanctx_sched {
        bool wait_switch;
        bool force_noa_update;
        bool extend_absence;
+       bool mgd_prepare_tx;
        enum ath_chanctx_state state;
        u8 beacon_miss;
 
@@ -469,6 +471,7 @@ void ath_chanctx_set_next(struct ath_softc *sc, bool force);
 void ath_offchannel_next(struct ath_softc *sc);
 void ath_scan_complete(struct ath_softc *sc, bool abort);
 void ath_roc_complete(struct ath_softc *sc, bool abort);
+struct ath_chanctx* ath_is_go_chanctx_present(struct ath_softc *sc);
 
 #else
 
@@ -541,7 +544,6 @@ static inline void ath_chanctx_check_active(struct ath_softc *sc,
 
 #endif /* CONFIG_ATH9K_CHANNEL_CONTEXT */
 
-int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan);
 void ath_startrecv(struct ath_softc *sc);
 bool ath_stoprecv(struct ath_softc *sc);
 u32 ath_calcrxfilter(struct ath_softc *sc);
@@ -563,6 +565,7 @@ int ath_tx_init(struct ath_softc *sc, int nbufs);
 int ath_txq_update(struct ath_softc *sc, int qnum,
                   struct ath9k_tx_queue_info *q);
 void ath_update_max_aggr_framelen(struct ath_softc *sc, int queue, int txop);
+void ath_assign_seq(struct ath_common *common, struct sk_buff *skb);
 int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb,
                 struct ath_tx_control *txctl);
 void ath_tx_cabq(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -592,8 +595,10 @@ void ath9k_release_buffered_frames(struct ieee80211_hw *hw,
 struct ath_vif {
        struct list_head list;
 
+       u16 seq_no;
+
        /* BSS info */
-       u8 bssid[ETH_ALEN];
+       u8 bssid[ETH_ALEN] __aligned(2);
        u16 aid;
        bool assoc;
 
@@ -616,6 +621,7 @@ struct ath_vif {
        u32 noa_start;
        u32 noa_duration;
        bool periodic_noa;
+       bool oneshot_noa;
 };
 
 struct ath9k_vif_iter_data {
@@ -713,7 +719,8 @@ int ath_update_survey_stats(struct ath_softc *sc);
 void ath_update_survey_nf(struct ath_softc *sc, int channel);
 void ath9k_queue_reset(struct ath_softc *sc, enum ath_reset_type type);
 void ath_ps_full_sleep(unsigned long data);
-void __ath9k_flush(struct ieee80211_hw *hw, u32 queues, bool drop);
+void __ath9k_flush(struct ieee80211_hw *hw, u32 queues, bool drop,
+                  bool sw_pending, bool timeout_override);
 
 /**********/
 /* BTCOEX */
@@ -973,6 +980,7 @@ struct ath_softc {
        struct ath_chanctx_sched sched;
        struct ath_offchannel offchannel;
        struct ath_chanctx *next_chan;
+       struct completion go_beacon;
 #endif
 
        unsigned long driver_data;
@@ -980,7 +988,6 @@ struct ath_softc {
        u8 gtt_cnt;
        u32 intrstatus;
        u16 ps_flags; /* PS_* */
-       u16 curtxpow;
        bool ps_enabled;
        bool ps_idle;
        short nbcnvifs;
@@ -1021,10 +1028,8 @@ struct ath_softc {
        struct dfs_pattern_detector *dfs_detector;
        u64 dfs_prev_pulse_ts;
        u32 wow_enabled;
-       /* relay(fs) channel for spectral scan */
-       struct rchan *rfs_chan_spec_scan;
-       enum spectral_mode spectral_mode;
-       struct ath_spec_scan spec_config;
+
+       struct ath_spec_scan_priv spec_priv;
 
        struct ieee80211_vif *tx99_vif;
        struct sk_buff *tx99_skb;
@@ -1067,7 +1072,7 @@ void ath9k_tasklet(unsigned long data);
 int ath_cabq_update(struct ath_softc *);
 u8 ath9k_parse_mpdudensity(u8 mpdudensity);
 irqreturn_t ath_isr(int irq, void *dev);
-int ath_reset(struct ath_softc *sc);
+int ath_reset(struct ath_softc *sc, struct ath9k_channel *hchan);
 void ath_cancel_work(struct ath_softc *sc);
 void ath_restart_work(struct ath_softc *sc);
 int ath9k_init_device(u16 devid, struct ath_softc *sc,