Lines Matching refs:tbl
89 struct mwifiex_rx_reorder_tbl *tbl, in mwifiex_11n_dispatch_pkt_until_start_win() argument
96 pkt_to_send = (start_win > tbl->start_win) ? in mwifiex_11n_dispatch_pkt_until_start_win()
97 min((start_win - tbl->start_win), tbl->win_size) : in mwifiex_11n_dispatch_pkt_until_start_win()
98 tbl->win_size; in mwifiex_11n_dispatch_pkt_until_start_win()
103 if (tbl->rx_reorder_ptr[i]) { in mwifiex_11n_dispatch_pkt_until_start_win()
104 rx_tmp_ptr = tbl->rx_reorder_ptr[i]; in mwifiex_11n_dispatch_pkt_until_start_win()
105 tbl->rx_reorder_ptr[i] = NULL; in mwifiex_11n_dispatch_pkt_until_start_win()
117 for (i = 0; i < tbl->win_size - pkt_to_send; ++i) { in mwifiex_11n_dispatch_pkt_until_start_win()
118 tbl->rx_reorder_ptr[i] = tbl->rx_reorder_ptr[pkt_to_send + i]; in mwifiex_11n_dispatch_pkt_until_start_win()
119 tbl->rx_reorder_ptr[pkt_to_send + i] = NULL; in mwifiex_11n_dispatch_pkt_until_start_win()
122 tbl->start_win = start_win; in mwifiex_11n_dispatch_pkt_until_start_win()
136 struct mwifiex_rx_reorder_tbl *tbl) in mwifiex_11n_scan_and_dispatch() argument
142 for (i = 0; i < tbl->win_size; ++i) { in mwifiex_11n_scan_and_dispatch()
144 if (!tbl->rx_reorder_ptr[i]) { in mwifiex_11n_scan_and_dispatch()
148 rx_tmp_ptr = tbl->rx_reorder_ptr[i]; in mwifiex_11n_scan_and_dispatch()
149 tbl->rx_reorder_ptr[i] = NULL; in mwifiex_11n_scan_and_dispatch()
160 xchg = tbl->win_size - i; in mwifiex_11n_scan_and_dispatch()
162 tbl->rx_reorder_ptr[j] = tbl->rx_reorder_ptr[i + j]; in mwifiex_11n_scan_and_dispatch()
163 tbl->rx_reorder_ptr[i + j] = NULL; in mwifiex_11n_scan_and_dispatch()
166 tbl->start_win = (tbl->start_win + i) & (MAX_TID_VALUE - 1); in mwifiex_11n_scan_and_dispatch()
178 struct mwifiex_rx_reorder_tbl *tbl) in mwifiex_del_rx_reorder_entry() argument
183 if (!tbl) in mwifiex_del_rx_reorder_entry()
195 start_win = (tbl->start_win + tbl->win_size) & (MAX_TID_VALUE - 1); in mwifiex_del_rx_reorder_entry()
196 mwifiex_11n_dispatch_pkt_until_start_win(priv, tbl, start_win); in mwifiex_del_rx_reorder_entry()
198 del_timer_sync(&tbl->timer_context.timer); in mwifiex_del_rx_reorder_entry()
199 tbl->timer_context.timer_is_set = false; in mwifiex_del_rx_reorder_entry()
202 list_del(&tbl->list); in mwifiex_del_rx_reorder_entry()
205 kfree(tbl->rx_reorder_ptr); in mwifiex_del_rx_reorder_entry()
206 kfree(tbl); in mwifiex_del_rx_reorder_entry()
221 struct mwifiex_rx_reorder_tbl *tbl; in mwifiex_11n_get_rx_reorder_tbl() local
225 list_for_each_entry(tbl, &priv->rx_reorder_tbl_ptr, list) { in mwifiex_11n_get_rx_reorder_tbl()
226 if (!memcmp(tbl->ta, ta, ETH_ALEN) && tbl->tid == tid) { in mwifiex_11n_get_rx_reorder_tbl()
229 return tbl; in mwifiex_11n_get_rx_reorder_tbl()
242 struct mwifiex_rx_reorder_tbl *tbl, *tmp; in mwifiex_11n_del_rx_reorder_tbl_by_ta() local
249 list_for_each_entry_safe(tbl, tmp, &priv->rx_reorder_tbl_ptr, list) { in mwifiex_11n_del_rx_reorder_tbl_by_ta()
250 if (!memcmp(tbl->ta, ta, ETH_ALEN)) { 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()
328 struct mwifiex_rx_reorder_tbl *tbl, *new_node; in mwifiex_11n_create_rx_reorder_tbl() local
337 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, ta); in mwifiex_11n_create_rx_reorder_tbl()
338 if (tbl) { 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()
407 mwifiex_11n_rxreorder_timer_restart(struct mwifiex_rx_reorder_tbl *tbl) in mwifiex_11n_rxreorder_timer_restart() argument
411 if (tbl->win_size >= MWIFIEX_BA_WIN_SIZE_32) in mwifiex_11n_rxreorder_timer_restart()
416 mod_timer(&tbl->timer_context.timer, in mwifiex_11n_rxreorder_timer_restart()
417 jiffies + msecs_to_jiffies(min_flush_time * tbl->win_size)); in mwifiex_11n_rxreorder_timer_restart()
419 tbl->timer_context.timer_is_set = true; in mwifiex_11n_rxreorder_timer_restart()
549 struct mwifiex_rx_reorder_tbl *tbl; in mwifiex_11n_rx_reorder_pkt() local
555 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, ta); in mwifiex_11n_rx_reorder_pkt()
556 if (!tbl) { in mwifiex_11n_rx_reorder_pkt()
562 if ((pkt_type == PKT_TYPE_AMSDU) && !tbl->amsdu) { in mwifiex_11n_rx_reorder_pkt()
567 start_win = tbl->start_win; in mwifiex_11n_rx_reorder_pkt()
569 win_size = tbl->win_size; in mwifiex_11n_rx_reorder_pkt()
571 if (tbl->flags & RXREOR_INIT_WINDOW_SHIFT) { in mwifiex_11n_rx_reorder_pkt()
573 tbl->flags &= ~RXREOR_INIT_WINDOW_SHIFT; in mwifiex_11n_rx_reorder_pkt()
576 if (tbl->flags & RXREOR_FORCE_NO_DROP) { in mwifiex_11n_rx_reorder_pkt()
579 tbl->flags &= ~RXREOR_FORCE_NO_DROP; in mwifiex_11n_rx_reorder_pkt()
581 seq_num >= tbl->init_win) { in mwifiex_11n_rx_reorder_pkt()
584 start_win, seq_num, tbl->init_win); in mwifiex_11n_rx_reorder_pkt()
585 tbl->start_win = start_win = seq_num; in mwifiex_11n_rx_reorder_pkt()
622 mwifiex_11n_dispatch_pkt_until_start_win(priv, tbl, start_win); in mwifiex_11n_rx_reorder_pkt()
631 if (tbl->rx_reorder_ptr[pkt_index]) { in mwifiex_11n_rx_reorder_pkt()
636 tbl->rx_reorder_ptr[pkt_index] = payload; in mwifiex_11n_rx_reorder_pkt()
643 mwifiex_11n_scan_and_dispatch(priv, tbl); in mwifiex_11n_rx_reorder_pkt()
646 if (!tbl->timer_context.timer_is_set || in mwifiex_11n_rx_reorder_pkt()
647 prev_start_win != tbl->start_win) in mwifiex_11n_rx_reorder_pkt()
648 mwifiex_11n_rxreorder_timer_restart(tbl); in mwifiex_11n_rx_reorder_pkt()
661 struct mwifiex_rx_reorder_tbl *tbl; in mwifiex_del_ba_tbl() local
677 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, in mwifiex_del_ba_tbl()
679 if (!tbl) { in mwifiex_del_ba_tbl()
684 mwifiex_del_rx_reorder_entry(priv, tbl); in mwifiex_del_ba_tbl()
716 struct mwifiex_rx_reorder_tbl *tbl; in mwifiex_ret_11n_addba_resp() local
731 tbl = mwifiex_11n_get_rx_reorder_tbl(priv, tid, in mwifiex_ret_11n_addba_resp()
733 if (tbl) 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()
744 if (tbl) { in mwifiex_ret_11n_addba_resp()
748 tbl->amsdu = true; in mwifiex_ret_11n_addba_resp()
750 tbl->amsdu = false; in mwifiex_ret_11n_addba_resp()
808 struct mwifiex_rx_reorder_tbl *tbl; in mwifiex_update_rxreor_flags() local
824 list_for_each_entry(tbl, &priv->rx_reorder_tbl_ptr, list) in mwifiex_update_rxreor_flags()
825 tbl->flags = flags; in mwifiex_update_rxreor_flags()