Lines Matching refs:ah

28  * @ah: ath hw
31 static u32 ath_dynack_get_max_to(struct ath_hw *ah)
33 const struct ath9k_channel *chan = ah->curchan;
61 * @ah: ath hw
65 static inline u32 ath_dynack_get_sifs(struct ath_hw *ah, int phy)
70 if (IS_CHAN_QUARTER_RATE(ah->curchan))
72 else if (IS_CHAN_HALF_RATE(ah->curchan))
82 * @ah: ath hw
85 static inline bool ath_dynack_bssidmask(struct ath_hw *ah, const u8 *mac)
88 struct ath_common *common = ath9k_hw_common(ah);
101 * @ah: ath hw
105 static void ath_dynack_set_timeout(struct ath_hw *ah, int to)
107 struct ath_common *common = ath9k_hw_common(ah);
112 ath9k_hw_setslottime(ah, slottime);
113 ath9k_hw_set_ack_timeout(ah, to);
114 ath9k_hw_set_cts_timeout(ah, to);
119 * @ah: ath hw
123 static void ath_dynack_compute_ackto(struct ath_hw *ah)
125 struct ath_dynack *da = &ah->dynack;
134 ath_dynack_set_timeout(ah, to);
141 * @ah: ath hw
145 static void ath_dynack_compute_to(struct ath_hw *ah)
147 struct ath_dynack *da = &ah->dynack;
156 max_to = ath_dynack_get_max_to(ah);
164 ath_dbg(ath9k_hw_common(ah), DYNACK,
173 sta = ieee80211_find_sta_by_ifaddr(ah->hw, dst,
179 ath_dbg(ath9k_hw_common(ah), DYNACK,
183 ath_dynack_compute_ackto(ah);
200 * @ah: ath hw
206 void ath_dynack_sample_tx_ts(struct ath_hw *ah, struct sk_buff *skb,
211 struct ath_dynack *da = &ah->dynack;
212 struct ath_common *common = ath9k_hw_common(ah);
229 u32 max_to = ath_dynack_get_max_to(ah);
232 ath_dynack_set_timeout(ah, max_to);
268 dur -= ath_dynack_get_sifs(ah, phy);
280 ath_dynack_compute_to(ah);
288 * @ah: ath hw
293 void ath_dynack_sample_ack_ts(struct ath_hw *ah, struct sk_buff *skb,
296 struct ath_dynack *da = &ah->dynack;
297 struct ath_common *common = ath9k_hw_common(ah);
300 if (!da->enabled || !ath_dynack_bssidmask(ah, hdr->addr1))
313 ath_dynack_compute_to(ah);
321 * @ah: ath hw
325 void ath_dynack_node_init(struct ath_hw *ah, struct ath_node *an)
327 struct ath_dynack *da = &ah->dynack;
339 * @ah: ath hw
343 void ath_dynack_node_deinit(struct ath_hw *ah, struct ath_node *an)
345 struct ath_dynack *da = &ah->dynack;
355 * @ah: ath hw
358 void ath_dynack_reset(struct ath_hw *ah)
360 struct ath_dynack *da = &ah->dynack;
372 da->ackto = ath_dynack_get_max_to(ah);
377 ath_dynack_set_timeout(ah, da->ackto);
385 * @ah: ath hw
388 void ath_dynack_init(struct ath_hw *ah)
390 struct ath_dynack *da = &ah->dynack;
399 ah->hw->wiphy->features |= NL80211_FEATURE_ACKTO_ESTIMATION;