Lines Matching refs:window

25 #define IWL_RATE_MAX_WINDOW		62	/* # tx in history window */
531 static void rs_rate_scale_clear_window(struct iwl_rate_scale_data *window)
533 window->data = 0;
534 window->success_counter = 0;
535 window->success_ratio = IWL_INVALID_VALUE;
536 window->counter = 0;
537 window->average_tpt = IWL_INVALID_VALUE;
545 IWL_DEBUG_RATE(mvm, "Clearing up window stats\n");
629 * rs_collect_tx_data - Update the success/failure sliding window
631 * We keep a sliding window of the last 62 packets transmitted
632 * at this rate. window->data contains the bitmask of successful
638 struct iwl_rate_scale_data *window)
648 * history window; anything older isn't really relevant any more.
649 * If we have filled up the sliding window, drop the oldest attempt;
655 if (window->counter >= IWL_RATE_MAX_WINDOW) {
657 window->counter = IWL_RATE_MAX_WINDOW - 1;
659 if (window->data & mask) {
660 window->data &= ~mask;
661 window->success_counter--;
666 window->counter++;
669 window->data <<= 1;
673 window->success_counter++;
674 window->data |= 0x1;
682 if (window->counter > 0)
683 window->success_ratio = 128 * (100 * window->success_counter)
684 / window->counter;
686 window->success_ratio = IWL_INVALID_VALUE;
688 fail_count = window->counter - window->success_counter;
692 (window->success_counter >= IWL_MVM_RS_RATE_MIN_SUCCESS_TH))
693 window->average_tpt = (window->success_ratio * tpt + 64) / 128;
695 window->average_tpt = IWL_INVALID_VALUE;
706 struct iwl_rate_scale_data *window = NULL;
711 window = &tbl->tpc_win[reduced_txp];
713 window);
751 struct iwl_rate_scale_data *window = NULL;
765 /* Select window for current tx bit rate */
766 window = &(tbl->win[scale_index]);
768 window);
1566 * sustainable, i.e. we're past the test window. We can't go back
1968 struct iwl_rate_scale_data *window;
2004 window = tbl->tpc_win;
2005 sr = window[cur].success_ratio;
2006 current_tpt = window[cur].average_tpt;
2008 weak_tpt = window[weak].average_tpt;
2010 strong_tpt = window[strong].average_tpt;
2059 struct iwl_rate_scale_data *window = NULL;
2117 /* Get expected throughput table and history window for current rate */
2124 window = &(tbl->win[index]);
2133 fail_count = window->counter - window->success_counter;
2135 (window->success_counter < IWL_MVM_RS_RATE_MIN_SUCCESS_TH)) {
2139 window->success_counter, window->counter);
2142 window->average_tpt = IWL_INVALID_VALUE;
2156 if (window->average_tpt > lq_sta->last_tpt) {
2160 window->success_ratio,
2161 window->average_tpt,
2166 current_tpt = window->average_tpt;
2172 window->success_ratio,
2173 window->average_tpt,
2206 sr = window->success_ratio;
2209 current_tpt = window->average_tpt;
2284 && window->counter) {
2293 window->counter);
2724 IWL_DEBUG_RATE(mvm, "create station rate scale window\n");