diff options
author | John W. Linville <linville@tuxdriver.com> | 2010-04-23 14:43:45 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-04-23 14:43:45 -0400 |
commit | 3b51cc996e81d8a113416d8094fa4a88f8360a51 (patch) | |
tree | e75b98b228bb4e456c30673fcc4b56ffa1d09cf5 /drivers/net/wireless/ath/ath9k/ath9k.h | |
parent | c68ed255265968c3948fa2678bf59d15c471b055 (diff) | |
parent | 672724403b42da1d276c6cf811e8e34d15efd964 (diff) |
Merge branch 'master' into for-davem
Conflicts:
drivers/net/wireless/ath/ath9k/phy.c
drivers/net/wireless/iwlwifi/iwl-6000.c
drivers/net/wireless/iwlwifi/iwl-debugfs.c
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ath9k.h')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ath9k.h | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index bdcd257ca7a4..fbb7dec6ddeb 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h | |||
@@ -114,8 +114,10 @@ enum buffer_type { | |||
114 | #define bf_isretried(bf) (bf->bf_state.bf_type & BUF_RETRY) | 114 | #define bf_isretried(bf) (bf->bf_state.bf_type & BUF_RETRY) |
115 | #define bf_isxretried(bf) (bf->bf_state.bf_type & BUF_XRETRY) | 115 | #define bf_isxretried(bf) (bf->bf_state.bf_type & BUF_XRETRY) |
116 | 116 | ||
117 | #define ATH_TXSTATUS_RING_SIZE 64 | ||
118 | |||
117 | struct ath_descdma { | 119 | struct ath_descdma { |
118 | struct ath_desc *dd_desc; | 120 | void *dd_desc; |
119 | dma_addr_t dd_desc_paddr; | 121 | dma_addr_t dd_desc_paddr; |
120 | u32 dd_desc_len; | 122 | u32 dd_desc_len; |
121 | struct ath_buf *dd_bufptr; | 123 | struct ath_buf *dd_bufptr; |
@@ -123,7 +125,7 @@ struct ath_descdma { | |||
123 | 125 | ||
124 | int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd, | 126 | int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd, |
125 | struct list_head *head, const char *name, | 127 | struct list_head *head, const char *name, |
126 | int nbuf, int ndesc); | 128 | int nbuf, int ndesc, bool is_tx); |
127 | void ath_descdma_cleanup(struct ath_softc *sc, struct ath_descdma *dd, | 129 | void ath_descdma_cleanup(struct ath_softc *sc, struct ath_descdma *dd, |
128 | struct list_head *head); | 130 | struct list_head *head); |
129 | 131 | ||
@@ -188,6 +190,7 @@ enum ATH_AGGR_STATUS { | |||
188 | ATH_AGGR_LIMITED, | 190 | ATH_AGGR_LIMITED, |
189 | }; | 191 | }; |
190 | 192 | ||
193 | #define ATH_TXFIFO_DEPTH 8 | ||
191 | struct ath_txq { | 194 | struct ath_txq { |
192 | u32 axq_qnum; | 195 | u32 axq_qnum; |
193 | u32 *axq_link; | 196 | u32 *axq_link; |
@@ -197,6 +200,10 @@ struct ath_txq { | |||
197 | bool stopped; | 200 | bool stopped; |
198 | bool axq_tx_inprogress; | 201 | bool axq_tx_inprogress; |
199 | struct list_head axq_acq; | 202 | struct list_head axq_acq; |
203 | struct list_head txq_fifo[ATH_TXFIFO_DEPTH]; | ||
204 | struct list_head txq_fifo_pending; | ||
205 | u8 txq_headidx; | ||
206 | u8 txq_tailidx; | ||
200 | }; | 207 | }; |
201 | 208 | ||
202 | #define AGGR_CLEANUP BIT(1) | 209 | #define AGGR_CLEANUP BIT(1) |
@@ -223,6 +230,12 @@ struct ath_tx { | |||
223 | struct ath_descdma txdma; | 230 | struct ath_descdma txdma; |
224 | }; | 231 | }; |
225 | 232 | ||
233 | struct ath_rx_edma { | ||
234 | struct sk_buff_head rx_fifo; | ||
235 | struct sk_buff_head rx_buffers; | ||
236 | u32 rx_fifo_hwsize; | ||
237 | }; | ||
238 | |||
226 | struct ath_rx { | 239 | struct ath_rx { |
227 | u8 defant; | 240 | u8 defant; |
228 | u8 rxotherant; | 241 | u8 rxotherant; |
@@ -232,6 +245,8 @@ struct ath_rx { | |||
232 | spinlock_t rxbuflock; | 245 | spinlock_t rxbuflock; |
233 | struct list_head rxbuf; | 246 | struct list_head rxbuf; |
234 | struct ath_descdma rxdma; | 247 | struct ath_descdma rxdma; |
248 | struct ath_buf *rx_bufptr; | ||
249 | struct ath_rx_edma rx_edma[ATH9K_RX_QUEUE_MAX]; | ||
235 | }; | 250 | }; |
236 | 251 | ||
237 | int ath_startrecv(struct ath_softc *sc); | 252 | int ath_startrecv(struct ath_softc *sc); |
@@ -240,7 +255,7 @@ void ath_flushrecv(struct ath_softc *sc); | |||
240 | u32 ath_calcrxfilter(struct ath_softc *sc); | 255 | u32 ath_calcrxfilter(struct ath_softc *sc); |
241 | int ath_rx_init(struct ath_softc *sc, int nbufs); | 256 | int ath_rx_init(struct ath_softc *sc, int nbufs); |
242 | void ath_rx_cleanup(struct ath_softc *sc); | 257 | void ath_rx_cleanup(struct ath_softc *sc); |
243 | int ath_rx_tasklet(struct ath_softc *sc, int flush); | 258 | int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp); |
244 | struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype); | 259 | struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype); |
245 | void ath_tx_cleanupq(struct ath_softc *sc, struct ath_txq *txq); | 260 | void ath_tx_cleanupq(struct ath_softc *sc, struct ath_txq *txq); |
246 | int ath_tx_setup(struct ath_softc *sc, int haltype); | 261 | int ath_tx_setup(struct ath_softc *sc, int haltype); |
@@ -258,6 +273,7 @@ int ath_txq_update(struct ath_softc *sc, int qnum, | |||
258 | int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, | 273 | int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, |
259 | struct ath_tx_control *txctl); | 274 | struct ath_tx_control *txctl); |
260 | void ath_tx_tasklet(struct ath_softc *sc); | 275 | void ath_tx_tasklet(struct ath_softc *sc); |
276 | void ath_tx_edma_tasklet(struct ath_softc *sc); | ||
261 | void ath_tx_cabq(struct ieee80211_hw *hw, struct sk_buff *skb); | 277 | void ath_tx_cabq(struct ieee80211_hw *hw, struct sk_buff *skb); |
262 | bool ath_tx_aggr_check(struct ath_softc *sc, struct ath_node *an, u8 tidno); | 278 | bool ath_tx_aggr_check(struct ath_softc *sc, struct ath_node *an, u8 tidno); |
263 | void ath_tx_aggr_start(struct ath_softc *sc, struct ieee80211_sta *sta, | 279 | void ath_tx_aggr_start(struct ath_softc *sc, struct ieee80211_sta *sta, |
@@ -507,6 +523,8 @@ struct ath_softc { | |||
507 | struct ath_beacon_config cur_beacon_conf; | 523 | struct ath_beacon_config cur_beacon_conf; |
508 | struct delayed_work tx_complete_work; | 524 | struct delayed_work tx_complete_work; |
509 | struct ath_btcoex btcoex; | 525 | struct ath_btcoex btcoex; |
526 | |||
527 | struct ath_descdma txsdma; | ||
510 | }; | 528 | }; |
511 | 529 | ||
512 | struct ath_wiphy { | 530 | struct ath_wiphy { |