Lines Matching refs:da
87 struct ath_dynack *da = &ah->dynack; in ath_dynack_compute_ackto() local
90 list_for_each_entry(an, &da->nodes, list) in ath_dynack_compute_ackto()
94 if (to && da->ackto != to) { in ath_dynack_compute_ackto()
98 da->ackto = to; in ath_dynack_compute_ackto()
100 da->ackto, slottime); in ath_dynack_compute_ackto()
102 ath9k_hw_set_ack_timeout(ah, da->ackto); in ath_dynack_compute_ackto()
103 ath9k_hw_set_cts_timeout(ah, da->ackto); in ath_dynack_compute_ackto()
120 struct ath_dynack *da = &ah->dynack; in ath_dynack_compute_to() local
124 while (da->st_rbf.h_rb != da->st_rbf.t_rb && in ath_dynack_compute_to()
125 da->ack_rbf.h_rb != da->ack_rbf.t_rb) { in ath_dynack_compute_to()
126 ack_ts = da->ack_rbf.tstamp[da->ack_rbf.h_rb]; in ath_dynack_compute_to()
127 st_ts = &da->st_rbf.ts[da->st_rbf.h_rb]; in ath_dynack_compute_to()
128 dst = da->st_rbf.addr[da->st_rbf.h_rb].h_dest; in ath_dynack_compute_to()
129 src = da->st_rbf.addr[da->st_rbf.h_rb].h_src; in ath_dynack_compute_to()
134 da->ack_rbf.h_rb, da->st_rbf.h_rb); in ath_dynack_compute_to()
148 if (time_is_before_jiffies(da->lto)) { in ath_dynack_compute_to()
150 da->lto = jiffies + COMPUTE_TO; in ath_dynack_compute_to()
153 INCR(da->ack_rbf.h_rb, ATH_DYN_BUF); in ath_dynack_compute_to()
155 INCR(da->st_rbf.h_rb, ATH_DYN_BUF); in ath_dynack_compute_to()
157 INCR(da->ack_rbf.h_rb, ATH_DYN_BUF); in ath_dynack_compute_to()
176 struct ath_dynack *da = &ah->dynack; in ath_dynack_sample_tx_ts() local
180 if ((info->flags & IEEE80211_TX_CTL_NO_ACK) || !da->enabled) in ath_dynack_sample_tx_ts()
183 spin_lock_bh(&da->qlock); in ath_dynack_sample_tx_ts()
195 da->lto = jiffies + LATEACK_DELAY; in ath_dynack_sample_tx_ts()
198 spin_unlock_bh(&da->qlock); in ath_dynack_sample_tx_ts()
204 da->st_rbf.ts[da->st_rbf.t_rb].tstamp = ts->ts_tstamp; in ath_dynack_sample_tx_ts()
205 da->st_rbf.ts[da->st_rbf.t_rb].dur = ts->duration; in ath_dynack_sample_tx_ts()
206 ether_addr_copy(da->st_rbf.addr[da->st_rbf.t_rb].h_dest, hdr->addr1); in ath_dynack_sample_tx_ts()
207 ether_addr_copy(da->st_rbf.addr[da->st_rbf.t_rb].h_src, hdr->addr2); in ath_dynack_sample_tx_ts()
222 da->st_rbf.ts[da->st_rbf.t_rb].dur -= sifs; in ath_dynack_sample_tx_ts()
226 hdr->addr1, da->st_rbf.ts[da->st_rbf.t_rb].tstamp, in ath_dynack_sample_tx_ts()
227 da->st_rbf.ts[da->st_rbf.t_rb].dur, da->st_rbf.h_rb, in ath_dynack_sample_tx_ts()
228 (da->st_rbf.t_rb + 1) % ATH_DYN_BUF); in ath_dynack_sample_tx_ts()
230 INCR(da->st_rbf.t_rb, ATH_DYN_BUF); in ath_dynack_sample_tx_ts()
231 if (da->st_rbf.t_rb == da->st_rbf.h_rb) in ath_dynack_sample_tx_ts()
232 INCR(da->st_rbf.h_rb, ATH_DYN_BUF); in ath_dynack_sample_tx_ts()
236 spin_unlock_bh(&da->qlock); in ath_dynack_sample_tx_ts()
250 struct ath_dynack *da = &ah->dynack; in ath_dynack_sample_ack_ts() local
254 if (!ath_dynack_bssidmask(ah, hdr->addr1) || !da->enabled) in ath_dynack_sample_ack_ts()
257 spin_lock_bh(&da->qlock); in ath_dynack_sample_ack_ts()
258 da->ack_rbf.tstamp[da->ack_rbf.t_rb] = ts; in ath_dynack_sample_ack_ts()
261 da->ack_rbf.tstamp[da->ack_rbf.t_rb], in ath_dynack_sample_ack_ts()
262 da->ack_rbf.h_rb, (da->ack_rbf.t_rb + 1) % ATH_DYN_BUF); in ath_dynack_sample_ack_ts()
264 INCR(da->ack_rbf.t_rb, ATH_DYN_BUF); in ath_dynack_sample_ack_ts()
265 if (da->ack_rbf.t_rb == da->ack_rbf.h_rb) in ath_dynack_sample_ack_ts()
266 INCR(da->ack_rbf.h_rb, ATH_DYN_BUF); in ath_dynack_sample_ack_ts()
270 spin_unlock_bh(&da->qlock); in ath_dynack_sample_ack_ts()
284 struct ath_dynack *da = &ah->dynack; in ath_dynack_node_init() local
288 spin_lock(&da->qlock); in ath_dynack_node_init()
289 list_add_tail(&an->list, &da->nodes); in ath_dynack_node_init()
290 spin_unlock(&da->qlock); in ath_dynack_node_init()
302 struct ath_dynack *da = &ah->dynack; in ath_dynack_node_deinit() local
304 spin_lock(&da->qlock); in ath_dynack_node_deinit()
306 spin_unlock(&da->qlock); in ath_dynack_node_deinit()
319 struct ath_dynack *da = &ah->dynack; in ath_dynack_reset() local
321 da->lto = jiffies; in ath_dynack_reset()
322 da->ackto = ackto; in ath_dynack_reset()
324 da->st_rbf.t_rb = 0; in ath_dynack_reset()
325 da->st_rbf.h_rb = 0; in ath_dynack_reset()
326 da->ack_rbf.t_rb = 0; in ath_dynack_reset()
327 da->ack_rbf.h_rb = 0; in ath_dynack_reset()
343 struct ath_dynack *da = &ah->dynack; in ath_dynack_init() local
345 memset(da, 0, sizeof(struct ath_dynack)); in ath_dynack_init()
347 spin_lock_init(&da->qlock); in ath_dynack_init()
348 INIT_LIST_HEAD(&da->nodes); in ath_dynack_init()