Lines Matching refs:da
125 struct ath_dynack *da = &ah->dynack; in ath_dynack_compute_ackto() local
129 list_for_each_entry(an, &da->nodes, list) in ath_dynack_compute_ackto()
133 if (to && da->ackto != to) { in ath_dynack_compute_ackto()
135 da->ackto = to; in ath_dynack_compute_ackto()
147 struct ath_dynack *da = &ah->dynack; in ath_dynack_compute_to() local
157 while (da->st_rbf.h_rb != da->st_rbf.t_rb && in ath_dynack_compute_to()
158 da->ack_rbf.h_rb != da->ack_rbf.t_rb) { in ath_dynack_compute_to()
159 ack_ts = da->ack_rbf.tstamp[da->ack_rbf.h_rb]; in ath_dynack_compute_to()
160 st_ts = &da->st_rbf.ts[da->st_rbf.h_rb]; in ath_dynack_compute_to()
161 dst = da->st_rbf.addr[da->st_rbf.h_rb].h_dest; in ath_dynack_compute_to()
162 src = da->st_rbf.addr[da->st_rbf.h_rb].h_src; in ath_dynack_compute_to()
167 da->ack_rbf.h_rb, da->st_rbf.h_rb); in ath_dynack_compute_to()
182 if (time_is_before_jiffies(da->lto)) { in ath_dynack_compute_to()
184 da->lto = jiffies + COMPUTE_TO; in ath_dynack_compute_to()
187 INCR(da->ack_rbf.h_rb, ATH_DYN_BUF); in ath_dynack_compute_to()
189 INCR(da->st_rbf.h_rb, ATH_DYN_BUF); in ath_dynack_compute_to()
191 INCR(da->ack_rbf.h_rb, ATH_DYN_BUF); in ath_dynack_compute_to()
211 struct ath_dynack *da = &ah->dynack; in ath_dynack_sample_tx_ts() local
217 if (!da->enabled || (info->flags & IEEE80211_TX_CTL_NO_ACK)) in ath_dynack_sample_tx_ts()
220 spin_lock_bh(&da->qlock); in ath_dynack_sample_tx_ts()
239 da->lto = jiffies + LATEACK_DELAY; in ath_dynack_sample_tx_ts()
242 spin_unlock_bh(&da->qlock); in ath_dynack_sample_tx_ts()
248 da->st_rbf.ts[da->st_rbf.t_rb].tstamp = ts->ts_tstamp; in ath_dynack_sample_tx_ts()
253 memcpy(da->st_rbf.addr[da->st_rbf.t_rb].h_dest, hdr->addr1, ETH_ALEN); in ath_dynack_sample_tx_ts()
254 memcpy(da->st_rbf.addr[da->st_rbf.t_rb].h_src, hdr->addr2, ETH_ALEN); in ath_dynack_sample_tx_ts()
270 da->st_rbf.ts[da->st_rbf.t_rb].dur = dur; in ath_dynack_sample_tx_ts()
272 INCR(da->st_rbf.t_rb, ATH_DYN_BUF); in ath_dynack_sample_tx_ts()
273 if (da->st_rbf.t_rb == da->st_rbf.h_rb) in ath_dynack_sample_tx_ts()
274 INCR(da->st_rbf.h_rb, ATH_DYN_BUF); in ath_dynack_sample_tx_ts()
277 hdr->addr1, ts->ts_tstamp, dur, da->st_rbf.h_rb, in ath_dynack_sample_tx_ts()
278 da->st_rbf.t_rb); in ath_dynack_sample_tx_ts()
282 spin_unlock_bh(&da->qlock); in ath_dynack_sample_tx_ts()
296 struct ath_dynack *da = &ah->dynack; in ath_dynack_sample_ack_ts() local
300 if (!da->enabled || !ath_dynack_bssidmask(ah, hdr->addr1)) in ath_dynack_sample_ack_ts()
303 spin_lock_bh(&da->qlock); in ath_dynack_sample_ack_ts()
304 da->ack_rbf.tstamp[da->ack_rbf.t_rb] = ts; in ath_dynack_sample_ack_ts()
306 INCR(da->ack_rbf.t_rb, ATH_DYN_BUF); in ath_dynack_sample_ack_ts()
307 if (da->ack_rbf.t_rb == da->ack_rbf.h_rb) in ath_dynack_sample_ack_ts()
308 INCR(da->ack_rbf.h_rb, ATH_DYN_BUF); in ath_dynack_sample_ack_ts()
311 ts, da->ack_rbf.h_rb, da->ack_rbf.t_rb); in ath_dynack_sample_ack_ts()
315 spin_unlock_bh(&da->qlock); in ath_dynack_sample_ack_ts()
327 struct ath_dynack *da = &ah->dynack; in ath_dynack_node_init() local
329 an->ackto = da->ackto; in ath_dynack_node_init()
331 spin_lock_bh(&da->qlock); in ath_dynack_node_init()
332 list_add_tail(&an->list, &da->nodes); in ath_dynack_node_init()
333 spin_unlock_bh(&da->qlock); in ath_dynack_node_init()
345 struct ath_dynack *da = &ah->dynack; in ath_dynack_node_deinit() local
347 spin_lock_bh(&da->qlock); in ath_dynack_node_deinit()
349 spin_unlock_bh(&da->qlock); in ath_dynack_node_deinit()
360 struct ath_dynack *da = &ah->dynack; in ath_dynack_reset() local
363 spin_lock_bh(&da->qlock); in ath_dynack_reset()
365 da->lto = jiffies + COMPUTE_TO; in ath_dynack_reset()
367 da->st_rbf.t_rb = 0; in ath_dynack_reset()
368 da->st_rbf.h_rb = 0; in ath_dynack_reset()
369 da->ack_rbf.t_rb = 0; in ath_dynack_reset()
370 da->ack_rbf.h_rb = 0; in ath_dynack_reset()
372 da->ackto = ath_dynack_get_max_to(ah); in ath_dynack_reset()
373 list_for_each_entry(an, &da->nodes, list) in ath_dynack_reset()
374 an->ackto = da->ackto; in ath_dynack_reset()
377 ath_dynack_set_timeout(ah, da->ackto); in ath_dynack_reset()
379 spin_unlock_bh(&da->qlock); in ath_dynack_reset()
390 struct ath_dynack *da = &ah->dynack; in ath_dynack_init() local
392 memset(da, 0, sizeof(struct ath_dynack)); in ath_dynack_init()
394 spin_lock_init(&da->qlock); in ath_dynack_init()
395 INIT_LIST_HEAD(&da->nodes); in ath_dynack_init()
397 da->ackto = 9 + 16 + 64; in ath_dynack_init()