diff options
Diffstat (limited to 'drivers/net/wireless/ath/ar9170/ar9170.h')
-rw-r--r-- | drivers/net/wireless/ath/ar9170/ar9170.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ar9170/ar9170.h b/drivers/net/wireless/ath/ar9170/ar9170.h index bb97981fb248..e6c3ee3e0581 100644 --- a/drivers/net/wireless/ath/ar9170/ar9170.h +++ b/drivers/net/wireless/ath/ar9170/ar9170.h | |||
@@ -109,11 +109,52 @@ struct ar9170_rxstream_mpdu_merge { | |||
109 | bool has_plcp; | 109 | bool has_plcp; |
110 | }; | 110 | }; |
111 | 111 | ||
112 | #define AR9170_NUM_MAX_BA_RETRY 5 | ||
113 | #define AR9170_NUM_TID 16 | ||
114 | #define WME_BA_BMP_SIZE 64 | ||
115 | #define AR9170_NUM_MAX_AGG_LEN (2 * WME_BA_BMP_SIZE) | ||
116 | |||
117 | #define WME_AC_BE 2 | ||
118 | #define WME_AC_BK 3 | ||
119 | #define WME_AC_VI 1 | ||
120 | #define WME_AC_VO 0 | ||
121 | |||
122 | #define TID_TO_WME_AC(_tid) \ | ||
123 | ((((_tid) == 0) || ((_tid) == 3)) ? WME_AC_BE : \ | ||
124 | (((_tid) == 1) || ((_tid) == 2)) ? WME_AC_BK : \ | ||
125 | (((_tid) == 4) || ((_tid) == 5)) ? WME_AC_VI : \ | ||
126 | WME_AC_VO) | ||
127 | |||
128 | #define BAW_WITHIN(_start, _bawsz, _seqno) \ | ||
129 | ((((_seqno) - (_start)) & 0xfff) < (_bawsz)) | ||
130 | |||
131 | enum ar9170_tid_state { | ||
132 | AR9170_TID_STATE_INVALID, | ||
133 | AR9170_TID_STATE_SHUTDOWN, | ||
134 | AR9170_TID_STATE_PROGRESS, | ||
135 | AR9170_TID_STATE_COMPLETE, | ||
136 | }; | ||
137 | |||
138 | struct ar9170_sta_tid { | ||
139 | struct list_head list; | ||
140 | struct sk_buff_head queue; | ||
141 | u8 addr[ETH_ALEN]; | ||
142 | u16 ssn; | ||
143 | u16 tid; | ||
144 | enum ar9170_tid_state state; | ||
145 | bool active; | ||
146 | u8 retry; | ||
147 | }; | ||
148 | |||
112 | #define AR9170_QUEUE_TIMEOUT 64 | 149 | #define AR9170_QUEUE_TIMEOUT 64 |
113 | #define AR9170_TX_TIMEOUT 8 | 150 | #define AR9170_TX_TIMEOUT 8 |
151 | #define AR9170_BA_TIMEOUT 4 | ||
114 | #define AR9170_JANITOR_DELAY 128 | 152 | #define AR9170_JANITOR_DELAY 128 |
115 | #define AR9170_TX_INVALID_RATE 0xffffffff | 153 | #define AR9170_TX_INVALID_RATE 0xffffffff |
116 | 154 | ||
155 | #define AR9170_NUM_TX_STATUS 128 | ||
156 | #define AR9170_NUM_TX_AGG_MAX 30 | ||
157 | |||
117 | struct ar9170 { | 158 | struct ar9170 { |
118 | struct ieee80211_hw *hw; | 159 | struct ieee80211_hw *hw; |
119 | struct mutex mutex; | 160 | struct mutex mutex; |
@@ -187,14 +228,25 @@ struct ar9170 { | |||
187 | struct sk_buff_head tx_pending[__AR9170_NUM_TXQ]; | 228 | struct sk_buff_head tx_pending[__AR9170_NUM_TXQ]; |
188 | struct sk_buff_head tx_status[__AR9170_NUM_TXQ]; | 229 | struct sk_buff_head tx_status[__AR9170_NUM_TXQ]; |
189 | struct delayed_work tx_janitor; | 230 | struct delayed_work tx_janitor; |
231 | /* tx ampdu */ | ||
232 | struct sk_buff_head tx_status_ampdu; | ||
233 | spinlock_t tx_ampdu_list_lock; | ||
234 | struct list_head tx_ampdu_list; | ||
235 | unsigned int tx_ampdu_pending; | ||
190 | 236 | ||
191 | /* rxstream mpdu merge */ | 237 | /* rxstream mpdu merge */ |
192 | struct ar9170_rxstream_mpdu_merge rx_mpdu; | 238 | struct ar9170_rxstream_mpdu_merge rx_mpdu; |
193 | struct sk_buff *rx_failover; | 239 | struct sk_buff *rx_failover; |
194 | int rx_failover_missing; | 240 | int rx_failover_missing; |
241 | |||
242 | /* (cached) HW A-MPDU settings */ | ||
243 | u8 global_ampdu_density; | ||
244 | u8 global_ampdu_factor; | ||
195 | }; | 245 | }; |
196 | 246 | ||
197 | struct ar9170_sta_info { | 247 | struct ar9170_sta_info { |
248 | struct ar9170_sta_tid agg[AR9170_NUM_TID]; | ||
249 | unsigned int ampdu_max_len; | ||
198 | }; | 250 | }; |
199 | 251 | ||
200 | #define AR9170_TX_FLAG_WAIT_FOR_ACK BIT(0) | 252 | #define AR9170_TX_FLAG_WAIT_FOR_ACK BIT(0) |