Lines Matching defs:ar

184 void ath12k_peer_cleanup(struct ath12k *ar, u32 vdev_id)
187 struct ath12k_base *ab = ar->ab;
189 lockdep_assert_held(&ar->conf_mutex);
201 ar->num_peers--;
207 static int ath12k_wait_for_peer_deleted(struct ath12k *ar, int vdev_id, const u8 *addr)
209 return ath12k_wait_for_peer_common(ar->ab, vdev_id, addr, false);
212 int ath12k_wait_for_peer_delete_done(struct ath12k *ar, u32 vdev_id,
218 ret = ath12k_wait_for_peer_deleted(ar, vdev_id, addr);
220 ath12k_warn(ar->ab, "failed wait for peer deleted");
224 time_left = wait_for_completion_timeout(&ar->peer_delete_done,
227 ath12k_warn(ar->ab, "Timeout in receiving peer delete response\n");
234 int ath12k_peer_delete(struct ath12k *ar, u32 vdev_id, u8 *addr)
238 lockdep_assert_held(&ar->conf_mutex);
240 reinit_completion(&ar->peer_delete_done);
242 ret = ath12k_wmi_send_peer_delete_cmd(ar, addr, vdev_id);
244 ath12k_warn(ar->ab,
250 ret = ath12k_wait_for_peer_delete_done(ar, vdev_id, addr);
254 ar->num_peers--;
259 static int ath12k_wait_for_peer_created(struct ath12k *ar, int vdev_id, const u8 *addr)
261 return ath12k_wait_for_peer_common(ar->ab, vdev_id, addr, true);
264 int ath12k_peer_create(struct ath12k *ar, struct ath12k_vif *arvif,
271 lockdep_assert_held(&ar->conf_mutex);
273 if (ar->num_peers > (ar->max_num_peers - 1)) {
274 ath12k_warn(ar->ab,
279 spin_lock_bh(&ar->ab->base_lock);
280 peer = ath12k_peer_find_by_pdev_idx(ar->ab, ar->pdev_idx, arg->peer_addr);
282 spin_unlock_bh(&ar->ab->base_lock);
285 spin_unlock_bh(&ar->ab->base_lock);
287 ret = ath12k_wmi_send_peer_create_cmd(ar, arg);
289 ath12k_warn(ar->ab,
295 ret = ath12k_wait_for_peer_created(ar, arg->vdev_id,
300 spin_lock_bh(&ar->ab->base_lock);
302 peer = ath12k_peer_find(ar->ab, arg->vdev_id, arg->peer_addr);
304 spin_unlock_bh(&ar->ab->base_lock);
305 ath12k_warn(ar->ab, "failed to find peer %pM on vdev %i after creation\n",
308 reinit_completion(&ar->peer_delete_done);
310 ret = ath12k_wmi_send_peer_delete_cmd(ar, arg->peer_addr,
313 ath12k_warn(ar->ab, "failed to delete peer vdev_id %d addr %pM\n",
318 ret = ath12k_wait_for_peer_delete_done(ar, arg->vdev_id,
326 peer->pdev_idx = ar->pdev_idx;
337 ar->num_peers++;
339 spin_unlock_bh(&ar->ab->base_lock);