mt76.h (9c68a57bc22d8c952688d54781b55e7cd9bea238) mt76.h (aee5b8cf2477bbb293cb84a4f726f5c0f91f587e)
1/*
2 * Copyright (C) 2016 Felix Fietkau <nbd@nbd.name>
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES

--- 108 unchanged lines hidden (view full) ---

117
118 void (*tx_cleanup)(struct mt76_dev *dev, enum mt76_txq_id qid,
119 bool flush);
120
121 void (*kick)(struct mt76_dev *dev, struct mt76_queue *q);
122};
123
124struct mt76_wcid {
1/*
2 * Copyright (C) 2016 Felix Fietkau <nbd@nbd.name>
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES

--- 108 unchanged lines hidden (view full) ---

117
118 void (*tx_cleanup)(struct mt76_dev *dev, enum mt76_txq_id qid,
119 bool flush);
120
121 void (*kick)(struct mt76_dev *dev, struct mt76_queue *q);
122};
123
124struct mt76_wcid {
125 struct mt76_rx_tid __rcu *aggr[IEEE80211_NUM_TIDS];
126
127 struct work_struct aggr_work;
128
125 u8 idx;
126 u8 hw_key_idx;
127
128 u8 sta:1;
129
130 __le16 tx_rate;
131 bool tx_rate_set;
132 u8 tx_rate_nss;

--- 14 unchanged lines hidden (view full) ---

147};
148
149struct mt76_txwi_cache {
150 u32 txwi[8];
151 dma_addr_t dma_addr;
152 struct list_head list;
153};
154
129 u8 idx;
130 u8 hw_key_idx;
131
132 u8 sta:1;
133
134 __le16 tx_rate;
135 bool tx_rate_set;
136 u8 tx_rate_nss;

--- 14 unchanged lines hidden (view full) ---

151};
152
153struct mt76_txwi_cache {
154 u32 txwi[8];
155 dma_addr_t dma_addr;
156 struct list_head list;
157};
158
159
160struct mt76_rx_tid {
161 struct rcu_head rcu_head;
162
163 struct mt76_dev *dev;
164
165 spinlock_t lock;
166 struct delayed_work reorder_work;
167
168 u16 head;
169 u8 size;
170 u8 nframes;
171
172 u8 started:1, stopped:1, timer_pending:1;
173
174 struct sk_buff *reorder_buf[];
175};
176
155enum {
156 MT76_STATE_INITIALIZED,
157 MT76_STATE_RUNNING,
158 MT76_SCANNING,
159 MT76_RESET,
160};
161
162struct mt76_hw_cap {

--- 86 unchanged lines hidden (view full) ---

249 s8 vht[10];
250 };
251 s8 all[38];
252 };
253};
254
255struct mt76_rx_status {
256 struct mt76_wcid *wcid;
177enum {
178 MT76_STATE_INITIALIZED,
179 MT76_STATE_RUNNING,
180 MT76_SCANNING,
181 MT76_RESET,
182};
183
184struct mt76_hw_cap {

--- 86 unchanged lines hidden (view full) ---

271 s8 vht[10];
272 };
273 s8 all[38];
274 };
275};
276
277struct mt76_rx_status {
278 struct mt76_wcid *wcid;
279
280 unsigned long reorder_time;
281
282 u8 aggr;
283 u8 tid;
284 u16 seqno;
285
257 u32 flag;
258 u16 freq;
259 u8 enc_flags;
260 u8 encoding:2, bw:3;
261 u8 rate_idx;
262 u8 nss;
263 u8 band;
264 u8 signal;

--- 110 unchanged lines hidden (view full) ---

375 struct ieee80211_sta *sta,
376 u16 tids, int nframes,
377 enum ieee80211_frame_release_type reason,
378 bool more_data);
379void mt76_set_channel(struct mt76_dev *dev);
380int mt76_get_survey(struct ieee80211_hw *hw, int idx,
381 struct survey_info *survey);
382
286 u32 flag;
287 u16 freq;
288 u8 enc_flags;
289 u8 encoding:2, bw:3;
290 u8 rate_idx;
291 u8 nss;
292 u8 band;
293 u8 signal;

--- 110 unchanged lines hidden (view full) ---

404 struct ieee80211_sta *sta,
405 u16 tids, int nframes,
406 enum ieee80211_frame_release_type reason,
407 bool more_data);
408void mt76_set_channel(struct mt76_dev *dev);
409int mt76_get_survey(struct ieee80211_hw *hw, int idx,
410 struct survey_info *survey);
411
412int mt76_rx_aggr_start(struct mt76_dev *dev, struct mt76_wcid *wcid, u8 tid,
413 u16 ssn, u8 size);
414void mt76_rx_aggr_stop(struct mt76_dev *dev, struct mt76_wcid *wcid, u8 tid);
415
383/* internal */
384void mt76_tx_free(struct mt76_dev *dev);
385void mt76_put_txwi(struct mt76_dev *dev, struct mt76_txwi_cache *t);
386void mt76_rx_complete(struct mt76_dev *dev, enum mt76_rxq_id q);
416/* internal */
417void mt76_tx_free(struct mt76_dev *dev);
418void mt76_put_txwi(struct mt76_dev *dev, struct mt76_txwi_cache *t);
419void mt76_rx_complete(struct mt76_dev *dev, enum mt76_rxq_id q);
420void mt76_rx_aggr_reorder(struct sk_buff *skb, struct sk_buff_head *frames);
421struct ieee80211_sta *mt76_rx_convert(struct sk_buff *skb);
387
388#endif
422
423#endif