Lines Matching full:ab

10 struct ath11k_peer *ath11k_peer_find(struct ath11k_base *ab, int vdev_id,  in ath11k_peer_find()  argument
15 lockdep_assert_held(&ab->base_lock); in ath11k_peer_find()
17 list_for_each_entry(peer, &ab->peers, list) { in ath11k_peer_find()
29 static struct ath11k_peer *ath11k_peer_find_by_pdev_idx(struct ath11k_base *ab, in ath11k_peer_find_by_pdev_idx() argument
34 lockdep_assert_held(&ab->base_lock); in ath11k_peer_find_by_pdev_idx()
36 list_for_each_entry(peer, &ab->peers, list) { in ath11k_peer_find_by_pdev_idx()
48 struct ath11k_peer *ath11k_peer_find_by_addr(struct ath11k_base *ab, in ath11k_peer_find_by_addr() argument
53 lockdep_assert_held(&ab->base_lock); in ath11k_peer_find_by_addr()
55 list_for_each_entry(peer, &ab->peers, list) { in ath11k_peer_find_by_addr()
65 struct ath11k_peer *ath11k_peer_find_by_id(struct ath11k_base *ab, in ath11k_peer_find_by_id() argument
70 lockdep_assert_held(&ab->base_lock); in ath11k_peer_find_by_id()
72 list_for_each_entry(peer, &ab->peers, list) in ath11k_peer_find_by_id()
79 void ath11k_peer_unmap_event(struct ath11k_base *ab, u16 peer_id) in ath11k_peer_unmap_event() argument
83 spin_lock_bh(&ab->base_lock); in ath11k_peer_unmap_event()
85 peer = ath11k_peer_find_by_id(ab, peer_id); in ath11k_peer_unmap_event()
87 ath11k_warn(ab, "peer-unmap-event: unknown peer id %d\n", in ath11k_peer_unmap_event()
92 ath11k_dbg(ab, ATH11K_DBG_DP_HTT, "htt peer unmap vdev %d peer %pM id %d\n", in ath11k_peer_unmap_event()
97 wake_up(&ab->peer_mapping_wq); in ath11k_peer_unmap_event()
100 spin_unlock_bh(&ab->base_lock); in ath11k_peer_unmap_event()
103 void ath11k_peer_map_event(struct ath11k_base *ab, u8 vdev_id, u16 peer_id, in ath11k_peer_map_event() argument
108 spin_lock_bh(&ab->base_lock); in ath11k_peer_map_event()
109 peer = ath11k_peer_find(ab, vdev_id, mac_addr); in ath11k_peer_map_event()
119 list_add(&peer->list, &ab->peers); in ath11k_peer_map_event()
120 wake_up(&ab->peer_mapping_wq); in ath11k_peer_map_event()
123 ath11k_dbg(ab, ATH11K_DBG_DP_HTT, "htt peer map vdev %d peer %pM id %d\n", in ath11k_peer_map_event()
127 spin_unlock_bh(&ab->base_lock); in ath11k_peer_map_event()
130 static int ath11k_wait_for_peer_common(struct ath11k_base *ab, int vdev_id, in ath11k_wait_for_peer_common() argument
135 ret = wait_event_timeout(ab->peer_mapping_wq, ({ in ath11k_wait_for_peer_common()
138 spin_lock_bh(&ab->base_lock); in ath11k_wait_for_peer_common()
139 mapped = !!ath11k_peer_find(ab, vdev_id, addr); in ath11k_wait_for_peer_common()
140 spin_unlock_bh(&ab->base_lock); in ath11k_wait_for_peer_common()
143 test_bit(ATH11K_FLAG_CRASH_FLUSH, &ab->dev_flags)); in ath11k_wait_for_peer_common()
155 struct ath11k_base *ab = ar->ab; in ath11k_peer_cleanup() local
159 spin_lock_bh(&ab->base_lock); in ath11k_peer_cleanup()
160 list_for_each_entry_safe(peer, tmp, &ab->peers, list) { in ath11k_peer_cleanup()
164 ath11k_warn(ab, "removing stale peer %pM from vdev_id %d\n", in ath11k_peer_cleanup()
172 spin_unlock_bh(&ab->base_lock); in ath11k_peer_cleanup()
177 return ath11k_wait_for_peer_common(ar->ab, vdev_id, addr, false); in ath11k_wait_for_peer_deleted()
188 ath11k_warn(ar->ab, in ath11k_peer_delete()
205 return ath11k_wait_for_peer_common(ar->ab, vdev_id, addr, true); in ath11k_wait_for_peer_created()
217 ath11k_warn(ar->ab, in ath11k_peer_create()
222 spin_lock_bh(&ar->ab->base_lock); in ath11k_peer_create()
223 peer = ath11k_peer_find_by_pdev_idx(ar->ab, ar->pdev_idx, param->peer_addr); in ath11k_peer_create()
225 spin_unlock_bh(&ar->ab->base_lock); in ath11k_peer_create()
228 spin_unlock_bh(&ar->ab->base_lock); in ath11k_peer_create()
232 ath11k_warn(ar->ab, in ath11k_peer_create()
243 spin_lock_bh(&ar->ab->base_lock); in ath11k_peer_create()
245 peer = ath11k_peer_find(ar->ab, param->vdev_id, param->peer_addr); in ath11k_peer_create()
247 spin_unlock_bh(&ar->ab->base_lock); in ath11k_peer_create()
248 ath11k_warn(ar->ab, "failed to find peer %pM on vdev %i after creation\n", in ath11k_peer_create()
264 spin_unlock_bh(&ar->ab->base_lock); in ath11k_peer_create()