Lines Matching refs:ar
14 static void ath10k_report_offchan_tx(struct ath10k *ar, struct sk_buff *skb) in ath10k_report_offchan_tx() argument
21 if (ath10k_mac_tx_frm_has_freq(ar)) in ath10k_report_offchan_tx()
29 spin_lock_bh(&ar->data_lock); in ath10k_report_offchan_tx()
30 if (ar->offchan_tx_skb != skb) { in ath10k_report_offchan_tx()
31 ath10k_warn(ar, "completed old offchannel frame\n"); in ath10k_report_offchan_tx()
35 complete(&ar->offchan_tx_completed); in ath10k_report_offchan_tx()
36 ar->offchan_tx_skb = NULL; /* just for sanity */ in ath10k_report_offchan_tx()
38 ath10k_dbg(ar, ATH10K_DBG_HTT, "completed offchannel skb %pK\n", skb); in ath10k_report_offchan_tx()
40 spin_unlock_bh(&ar->data_lock); in ath10k_report_offchan_tx()
47 struct ath10k *ar = htt->ar; in ath10k_txrx_tx_unref() local
48 struct device *dev = ar->dev; in ath10k_txrx_tx_unref()
56 ath10k_dbg(ar, ATH10K_DBG_HTT, in ath10k_txrx_tx_unref()
61 ath10k_warn(ar, "warning: msdu_id %d too big, ignoring\n", in ath10k_txrx_tx_unref()
69 ath10k_warn(ar, "received tx completion for invalid msdu_id: %d\n", in ath10k_txrx_tx_unref()
94 if (ar->bus_param.dev_type != ATH10K_DEV_TYPE_HL) in ath10k_txrx_tx_unref()
97 ath10k_report_offchan_tx(htt->ar, msdu); in ath10k_txrx_tx_unref()
103 trace_ath10k_txrx_tx_unref(ar, tx_done->msdu_id); in ath10k_txrx_tx_unref()
141 ieee80211_tx_status_ext(htt->ar->hw, &status); in ath10k_txrx_tx_unref()
150 struct ath10k_peer *ath10k_peer_find(struct ath10k *ar, int vdev_id, in ath10k_peer_find() argument
155 lockdep_assert_held(&ar->data_lock); in ath10k_peer_find()
157 list_for_each_entry(peer, &ar->peers, list) { in ath10k_peer_find()
169 struct ath10k_peer *ath10k_peer_find_by_id(struct ath10k *ar, int peer_id) in ath10k_peer_find_by_id() argument
176 lockdep_assert_held(&ar->data_lock); in ath10k_peer_find_by_id()
178 list_for_each_entry(peer, &ar->peers, list) in ath10k_peer_find_by_id()
185 static int ath10k_wait_for_peer_common(struct ath10k *ar, int vdev_id, in ath10k_wait_for_peer_common() argument
190 time_left = wait_event_timeout(ar->peer_mapping_wq, ({ in ath10k_wait_for_peer_common()
193 spin_lock_bh(&ar->data_lock); in ath10k_wait_for_peer_common()
194 mapped = !!ath10k_peer_find(ar, vdev_id, addr); in ath10k_wait_for_peer_common()
195 spin_unlock_bh(&ar->data_lock); in ath10k_wait_for_peer_common()
198 test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags)); in ath10k_wait_for_peer_common()
207 int ath10k_wait_for_peer_created(struct ath10k *ar, int vdev_id, const u8 *addr) in ath10k_wait_for_peer_created() argument
209 return ath10k_wait_for_peer_common(ar, vdev_id, addr, true); in ath10k_wait_for_peer_created()
212 int ath10k_wait_for_peer_deleted(struct ath10k *ar, int vdev_id, const u8 *addr) in ath10k_wait_for_peer_deleted() argument
214 return ath10k_wait_for_peer_common(ar, vdev_id, addr, false); in ath10k_wait_for_peer_deleted()
220 struct ath10k *ar = htt->ar; in ath10k_peer_map_event() local
224 ath10k_warn(ar, in ath10k_peer_map_event()
230 spin_lock_bh(&ar->data_lock); in ath10k_peer_map_event()
231 peer = ath10k_peer_find(ar, ev->vdev_id, ev->addr); in ath10k_peer_map_event()
239 list_add(&peer->list, &ar->peers); in ath10k_peer_map_event()
240 wake_up(&ar->peer_mapping_wq); in ath10k_peer_map_event()
243 ath10k_dbg(ar, ATH10K_DBG_HTT, "htt peer map vdev %d peer %pM id %d\n", in ath10k_peer_map_event()
246 WARN_ON(ar->peer_map[ev->peer_id] && (ar->peer_map[ev->peer_id] != peer)); in ath10k_peer_map_event()
247 ar->peer_map[ev->peer_id] = peer; in ath10k_peer_map_event()
250 spin_unlock_bh(&ar->data_lock); in ath10k_peer_map_event()
256 struct ath10k *ar = htt->ar; in ath10k_peer_unmap_event() local
260 ath10k_warn(ar, in ath10k_peer_unmap_event()
266 spin_lock_bh(&ar->data_lock); in ath10k_peer_unmap_event()
267 peer = ath10k_peer_find_by_id(ar, ev->peer_id); in ath10k_peer_unmap_event()
269 ath10k_warn(ar, "peer-unmap-event: unknown peer id %d\n", in ath10k_peer_unmap_event()
274 ath10k_dbg(ar, ATH10K_DBG_HTT, "htt peer unmap vdev %d peer %pM id %d\n", in ath10k_peer_unmap_event()
277 ar->peer_map[ev->peer_id] = NULL; in ath10k_peer_unmap_event()
283 wake_up(&ar->peer_mapping_wq); in ath10k_peer_unmap_event()
287 spin_unlock_bh(&ar->data_lock); in ath10k_peer_unmap_event()