Lines Matching refs:priv

32 static int mwifiex_11n_dispatch_amsdu_pkt(struct mwifiex_private *priv,  in mwifiex_11n_dispatch_amsdu_pkt()  argument
47 ieee80211_amsdu_to_8023s(skb, &list, priv->curr_addr, in mwifiex_11n_dispatch_amsdu_pkt()
48 priv->wdev.iftype, 0, false); in mwifiex_11n_dispatch_amsdu_pkt()
52 ret = mwifiex_recv_packet(priv, rx_skb); in mwifiex_11n_dispatch_amsdu_pkt()
54 mwifiex_dbg(priv->adapter, ERROR, in mwifiex_11n_dispatch_amsdu_pkt()
66 static int mwifiex_11n_dispatch_pkt(struct mwifiex_private *priv, void *payload) in mwifiex_11n_dispatch_pkt() argument
68 int ret = mwifiex_11n_dispatch_amsdu_pkt(priv, payload); in mwifiex_11n_dispatch_pkt()
73 if (priv->bss_role == MWIFIEX_BSS_ROLE_UAP) in mwifiex_11n_dispatch_pkt()
74 return mwifiex_handle_uap_rx_forward(priv, payload); in mwifiex_11n_dispatch_pkt()
76 return mwifiex_process_rx_packet(priv, payload); in mwifiex_11n_dispatch_pkt()
88 mwifiex_11n_dispatch_pkt_until_start_win(struct mwifiex_private *priv, in mwifiex_11n_dispatch_pkt_until_start_win() argument
101 spin_lock_irqsave(&priv->rx_pkt_lock, flags); in mwifiex_11n_dispatch_pkt_until_start_win()
107 spin_unlock_irqrestore(&priv->rx_pkt_lock, flags); in mwifiex_11n_dispatch_pkt_until_start_win()
109 mwifiex_11n_dispatch_pkt(priv, rx_tmp_ptr); in mwifiex_11n_dispatch_pkt_until_start_win()
112 spin_lock_irqsave(&priv->rx_pkt_lock, flags); in mwifiex_11n_dispatch_pkt_until_start_win()
123 spin_unlock_irqrestore(&priv->rx_pkt_lock, flags); in mwifiex_11n_dispatch_pkt_until_start_win()
135 mwifiex_11n_scan_and_dispatch(struct mwifiex_private *priv, in mwifiex_11n_scan_and_dispatch() argument
143 spin_lock_irqsave(&priv->rx_pkt_lock, flags); in mwifiex_11n_scan_and_dispatch()
145 spin_unlock_irqrestore(&priv->rx_pkt_lock, flags); in mwifiex_11n_scan_and_dispatch()
150 spin_unlock_irqrestore(&priv->rx_pkt_lock, flags); in mwifiex_11n_scan_and_dispatch()
151 mwifiex_11n_dispatch_pkt(priv, rx_tmp_ptr); in mwifiex_11n_scan_and_dispatch()
154 spin_lock_irqsave(&priv->rx_pkt_lock, flags); in mwifiex_11n_scan_and_dispatch()
167 spin_unlock_irqrestore(&priv->rx_pkt_lock, flags); in mwifiex_11n_scan_and_dispatch()
177 mwifiex_del_rx_reorder_entry(struct mwifiex_private *priv, in mwifiex_del_rx_reorder_entry() argument
186 spin_lock_irqsave(&priv->adapter->rx_proc_lock, flags); in mwifiex_del_rx_reorder_entry()
187 priv->adapter->rx_locked = true; in mwifiex_del_rx_reorder_entry()
188 if (priv->adapter->rx_processing) { in mwifiex_del_rx_reorder_entry()
189 spin_unlock_irqrestore(&priv->adapter->rx_proc_lock, flags); in mwifiex_del_rx_reorder_entry()
190 flush_workqueue(priv->adapter->rx_workqueue); in mwifiex_del_rx_reorder_entry()
192 spin_unlock_irqrestore(&priv->adapter->rx_proc_lock, flags); in mwifiex_del_rx_reorder_entry()
196 mwifiex_11n_dispatch_pkt_until_start_win(priv, tbl, start_win); in mwifiex_del_rx_reorder_entry()
201 spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags); in mwifiex_del_rx_reorder_entry()
203 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags); in mwifiex_del_rx_reorder_entry()
208 spin_lock_irqsave(&priv->adapter->rx_proc_lock, flags); in mwifiex_del_rx_reorder_entry()
209 priv->adapter->rx_locked = false; in mwifiex_del_rx_reorder_entry()
210 spin_unlock_irqrestore(&priv->adapter->rx_proc_lock, flags); in mwifiex_del_rx_reorder_entry()
219 mwifiex_11n_get_rx_reorder_tbl(struct mwifiex_private *priv, int tid, u8 *ta) in mwifiex_11n_get_rx_reorder_tbl() argument
224 spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_get_rx_reorder_tbl()
225 list_for_each_entry(tbl, &priv->rx_reorder_tbl_ptr, list) { in mwifiex_11n_get_rx_reorder_tbl()
227 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, in mwifiex_11n_get_rx_reorder_tbl()
232 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_get_rx_reorder_tbl()
240 void mwifiex_11n_del_rx_reorder_tbl_by_ta(struct mwifiex_private *priv, u8 *ta) in mwifiex_11n_del_rx_reorder_tbl_by_ta() argument
248 spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_del_rx_reorder_tbl_by_ta()
249 list_for_each_entry_safe(tbl, tmp, &priv->rx_reorder_tbl_ptr, list) { in mwifiex_11n_del_rx_reorder_tbl_by_ta()
251 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, in mwifiex_11n_del_rx_reorder_tbl_by_ta()
253 mwifiex_del_rx_reorder_entry(priv, tbl); in mwifiex_11n_del_rx_reorder_tbl_by_ta()
254 spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_del_rx_reorder_tbl_by_ta()
257 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_del_rx_reorder_tbl_by_ta()
270 struct mwifiex_private *priv = ctx->priv; in mwifiex_11n_find_last_seq_num() local
274 spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_find_last_seq_num()
277 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, in mwifiex_11n_find_last_seq_num()
282 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_find_last_seq_num()
307 mwifiex_dbg(ctx->priv->adapter, INFO, "info: flush data %d\n", seq_num); in mwifiex_flush_data()
309 mwifiex_11n_dispatch_pkt_until_start_win(ctx->priv, ctx->ptr, in mwifiex_flush_data()
324 mwifiex_11n_create_rx_reorder_tbl(struct mwifiex_private *priv, u8 *ta, in mwifiex_11n_create_rx_reorder_tbl() argument
337 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, ta); in mwifiex_11n_create_rx_reorder_tbl()
339 mwifiex_11n_dispatch_pkt_until_start_win(priv, tbl, seq_num); in mwifiex_11n_create_rx_reorder_tbl()
354 spin_lock_irqsave(&priv->sta_list_spinlock, flags); in mwifiex_11n_create_rx_reorder_tbl()
355 if (mwifiex_queuing_ra_based(priv)) { in mwifiex_11n_create_rx_reorder_tbl()
356 if (priv->bss_role == MWIFIEX_BSS_ROLE_UAP) { in mwifiex_11n_create_rx_reorder_tbl()
357 node = mwifiex_get_sta_entry(priv, ta); in mwifiex_11n_create_rx_reorder_tbl()
362 node = mwifiex_get_sta_entry(priv, ta); in mwifiex_11n_create_rx_reorder_tbl()
366 last_seq = priv->rx_seq[tid]; in mwifiex_11n_create_rx_reorder_tbl()
368 spin_unlock_irqrestore(&priv->sta_list_spinlock, flags); in mwifiex_11n_create_rx_reorder_tbl()
370 mwifiex_dbg(priv->adapter, INFO, in mwifiex_11n_create_rx_reorder_tbl()
386 mwifiex_dbg(priv->adapter, ERROR, in mwifiex_11n_create_rx_reorder_tbl()
392 new_node->timer_context.priv = priv; in mwifiex_11n_create_rx_reorder_tbl()
401 spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_create_rx_reorder_tbl()
402 list_add_tail(&new_node->list, &priv->rx_reorder_tbl_ptr); in mwifiex_11n_create_rx_reorder_tbl()
403 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_create_rx_reorder_tbl()
449 int mwifiex_cmd_11n_addba_rsp_gen(struct mwifiex_private *priv, in mwifiex_cmd_11n_addba_rsp_gen() argument
456 u32 rx_win_size = priv->add_ba_param.rx_win_size; in mwifiex_cmd_11n_addba_rsp_gen()
462 if ((GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) && in mwifiex_cmd_11n_addba_rsp_gen()
463 ISSUPP_TDLS_ENABLED(priv->adapter->fw_cap_info) && in mwifiex_cmd_11n_addba_rsp_gen()
464 priv->adapter->is_hw_11ac_capable && in mwifiex_cmd_11n_addba_rsp_gen()
465 memcmp(priv->cfg_bssid, cmd_addba_req->peer_mac_addr, ETH_ALEN)) { in mwifiex_cmd_11n_addba_rsp_gen()
466 spin_lock_irqsave(&priv->sta_list_spinlock, flags); in mwifiex_cmd_11n_addba_rsp_gen()
467 sta_ptr = mwifiex_get_sta_entry(priv, in mwifiex_cmd_11n_addba_rsp_gen()
470 spin_unlock_irqrestore(&priv->sta_list_spinlock, flags); in mwifiex_cmd_11n_addba_rsp_gen()
471 mwifiex_dbg(priv->adapter, ERROR, in mwifiex_cmd_11n_addba_rsp_gen()
478 spin_unlock_irqrestore(&priv->sta_list_spinlock, flags); in mwifiex_cmd_11n_addba_rsp_gen()
497 if (!priv->add_ba_param.rx_amsdu || in mwifiex_cmd_11n_addba_rsp_gen()
498 (priv->aggr_prio_tbl[tid].amsdu == BA_STREAM_NOT_ALLOWED)) in mwifiex_cmd_11n_addba_rsp_gen()
507 mwifiex_11n_create_rx_reorder_tbl(priv, cmd_addba_req->peer_mac_addr, in mwifiex_cmd_11n_addba_rsp_gen()
545 int mwifiex_11n_rx_reorder_pkt(struct mwifiex_private *priv, in mwifiex_11n_rx_reorder_pkt() argument
555 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, ta); in mwifiex_11n_rx_reorder_pkt()
558 mwifiex_11n_dispatch_pkt(priv, payload); in mwifiex_11n_rx_reorder_pkt()
563 mwifiex_11n_dispatch_pkt(priv, payload); in mwifiex_11n_rx_reorder_pkt()
577 mwifiex_dbg(priv->adapter, INFO, in mwifiex_11n_rx_reorder_pkt()
582 mwifiex_dbg(priv->adapter, INFO, in mwifiex_11n_rx_reorder_pkt()
622 mwifiex_11n_dispatch_pkt_until_start_win(priv, tbl, start_win); in mwifiex_11n_rx_reorder_pkt()
643 mwifiex_11n_scan_and_dispatch(priv, tbl); in mwifiex_11n_rx_reorder_pkt()
658 mwifiex_del_ba_tbl(struct mwifiex_private *priv, int tid, u8 *peer_mac, in mwifiex_del_ba_tbl() argument
673 mwifiex_dbg(priv->adapter, EVENT, "event: DELBA: %pM tid=%d initiator=%d\n", in mwifiex_del_ba_tbl()
677 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, in mwifiex_del_ba_tbl()
680 mwifiex_dbg(priv->adapter, EVENT, in mwifiex_del_ba_tbl()
684 mwifiex_del_rx_reorder_entry(priv, tbl); in mwifiex_del_ba_tbl()
686 ptx_tbl = mwifiex_get_ba_tbl(priv, tid, peer_mac); in mwifiex_del_ba_tbl()
688 mwifiex_dbg(priv->adapter, EVENT, in mwifiex_del_ba_tbl()
693 tid_down = mwifiex_wmm_downgrade_tid(priv, tid); in mwifiex_del_ba_tbl()
694 ra_list = mwifiex_wmm_get_ralist_node(priv, tid_down, peer_mac); in mwifiex_del_ba_tbl()
699 spin_lock_irqsave(&priv->tx_ba_stream_tbl_lock, flags); in mwifiex_del_ba_tbl()
700 mwifiex_11n_delete_tx_ba_stream_tbl_entry(priv, ptx_tbl); in mwifiex_del_ba_tbl()
701 spin_unlock_irqrestore(&priv->tx_ba_stream_tbl_lock, flags); in mwifiex_del_ba_tbl()
711 int mwifiex_ret_11n_addba_resp(struct mwifiex_private *priv, in mwifiex_ret_11n_addba_resp() argument
728 mwifiex_dbg(priv->adapter, ERROR, "ADDBA RSP: failed %pM tid=%d)\n", in mwifiex_ret_11n_addba_resp()
731 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, in mwifiex_ret_11n_addba_resp()
734 mwifiex_del_rx_reorder_entry(priv, tbl); in mwifiex_ret_11n_addba_resp()
742 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, in mwifiex_ret_11n_addba_resp()
746 priv->add_ba_param.rx_amsdu && in mwifiex_ret_11n_addba_resp()
747 (priv->aggr_prio_tbl[tid].amsdu != BA_STREAM_NOT_ALLOWED)) in mwifiex_ret_11n_addba_resp()
753 mwifiex_dbg(priv->adapter, CMD, in mwifiex_ret_11n_addba_resp()
764 void mwifiex_11n_ba_stream_timeout(struct mwifiex_private *priv, in mwifiex_11n_ba_stream_timeout() argument
777 mwifiex_send_cmd(priv, HostCmd_CMD_11N_DELBA, 0, 0, &delba, false); in mwifiex_11n_ba_stream_timeout()
784 void mwifiex_11n_cleanup_reorder_tbl(struct mwifiex_private *priv) in mwifiex_11n_cleanup_reorder_tbl() argument
789 spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_cleanup_reorder_tbl()
791 &priv->rx_reorder_tbl_ptr, list) { in mwifiex_11n_cleanup_reorder_tbl()
792 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_cleanup_reorder_tbl()
793 mwifiex_del_rx_reorder_entry(priv, del_tbl_ptr); in mwifiex_11n_cleanup_reorder_tbl()
794 spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_cleanup_reorder_tbl()
796 INIT_LIST_HEAD(&priv->rx_reorder_tbl_ptr); in mwifiex_11n_cleanup_reorder_tbl()
797 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags); in mwifiex_11n_cleanup_reorder_tbl()
799 mwifiex_reset_11n_rx_seq_num(priv); in mwifiex_11n_cleanup_reorder_tbl()
807 struct mwifiex_private *priv; in mwifiex_update_rxreor_flags() local
813 priv = adapter->priv[i]; in mwifiex_update_rxreor_flags()
814 if (!priv) in mwifiex_update_rxreor_flags()
817 spin_lock_irqsave(&priv->rx_reorder_tbl_lock, lock_flags); in mwifiex_update_rxreor_flags()
818 if (list_empty(&priv->rx_reorder_tbl_ptr)) { in mwifiex_update_rxreor_flags()
819 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, in mwifiex_update_rxreor_flags()
824 list_for_each_entry(tbl, &priv->rx_reorder_tbl_ptr, list) in mwifiex_update_rxreor_flags()
826 spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, lock_flags); in mwifiex_update_rxreor_flags()
839 struct mwifiex_private *priv; in mwifiex_update_ampdu_rxwinsize() local
844 if (!adapter->priv[i]) in mwifiex_update_ampdu_rxwinsize()
846 priv = adapter->priv[i]; in mwifiex_update_ampdu_rxwinsize()
847 rx_win_size = priv->add_ba_param.rx_win_size; in mwifiex_update_ampdu_rxwinsize()
849 if (priv->bss_type == MWIFIEX_BSS_TYPE_STA) in mwifiex_update_ampdu_rxwinsize()
850 priv->add_ba_param.rx_win_size = in mwifiex_update_ampdu_rxwinsize()
852 if (priv->bss_type == MWIFIEX_BSS_TYPE_P2P) in mwifiex_update_ampdu_rxwinsize()
853 priv->add_ba_param.rx_win_size = in mwifiex_update_ampdu_rxwinsize()
855 if (priv->bss_type == MWIFIEX_BSS_TYPE_UAP) in mwifiex_update_ampdu_rxwinsize()
856 priv->add_ba_param.rx_win_size = in mwifiex_update_ampdu_rxwinsize()
859 if (priv->bss_type == MWIFIEX_BSS_TYPE_STA) in mwifiex_update_ampdu_rxwinsize()
860 priv->add_ba_param.rx_win_size = in mwifiex_update_ampdu_rxwinsize()
862 if (priv->bss_type == MWIFIEX_BSS_TYPE_P2P) in mwifiex_update_ampdu_rxwinsize()
863 priv->add_ba_param.rx_win_size = in mwifiex_update_ampdu_rxwinsize()
865 if (priv->bss_type == MWIFIEX_BSS_TYPE_UAP) in mwifiex_update_ampdu_rxwinsize()
866 priv->add_ba_param.rx_win_size = in mwifiex_update_ampdu_rxwinsize()
871 priv->add_ba_param.rx_win_size = in mwifiex_update_ampdu_rxwinsize()
874 if (rx_win_size != priv->add_ba_param.rx_win_size) { in mwifiex_update_ampdu_rxwinsize()
875 if (!priv->media_connected) in mwifiex_update_ampdu_rxwinsize()
878 mwifiex_11n_delba(priv, i); in mwifiex_update_ampdu_rxwinsize()
888 struct mwifiex_private *priv; in mwifiex_coex_ampdu_rxwinsize() local
892 if (adapter->priv[i]) { in mwifiex_coex_ampdu_rxwinsize()
893 priv = adapter->priv[i]; in mwifiex_coex_ampdu_rxwinsize()
894 if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) { in mwifiex_coex_ampdu_rxwinsize()
895 if (priv->media_connected) in mwifiex_coex_ampdu_rxwinsize()
898 if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP) { in mwifiex_coex_ampdu_rxwinsize()
899 if (priv->bss_started) in mwifiex_coex_ampdu_rxwinsize()