Lines Matching refs:window

27 #define IWL_RATE_MAX_WINDOW		62	/* # tx in history window */
208 static void rs_rate_scale_clear_window(struct iwl_rate_scale_data *window)
210 window->data = 0;
211 window->success_counter = 0;
212 window->success_ratio = IWL_INVALID_VALUE;
213 window->counter = 0;
214 window->average_tpt = IWL_INVALID_VALUE;
215 window->stamp = 0;
422 * rs_collect_tx_data - Update the success/failure sliding window
424 * We keep a sliding window of the last 62 packets transmitted
425 * at this rate. window->data contains the bitmask of successful
431 struct iwl_rate_scale_data *window = NULL;
438 /* Select window for current tx bit rate */
439 window = &(tbl->win[scale_index]);
446 * history window; anything older isn't really relevant any more.
447 * If we have filled up the sliding window, drop the oldest attempt;
453 if (window->counter >= IWL_RATE_MAX_WINDOW) {
456 window->counter = IWL_RATE_MAX_WINDOW - 1;
458 if (window->data & mask) {
459 window->data &= ~mask;
460 window->success_counter--;
465 window->counter++;
468 window->data <<= 1;
472 window->success_counter++;
473 window->data |= 0x1;
481 if (window->counter > 0)
482 window->success_ratio = 128 * (100 * window->success_counter)
483 / window->counter;
485 window->success_ratio = IWL_INVALID_VALUE;
487 fail_count = window->counter - window->success_counter;
491 (window->success_counter >= IWL_RATE_MIN_SUCCESS_TH))
492 window->average_tpt = (window->success_ratio * tpt + 64) / 128;
494 window->average_tpt = IWL_INVALID_VALUE;
496 /* Tag this window as having been updated */
497 window->stamp = jiffies;
865 IWL_DEBUG_RATE_LIMIT(priv, "get frame ack response, update rate scale window\n");
1382 struct iwl_rate_scale_data *window = &(tbl->win[index]);
1446 if (window->success_ratio >= IWL_RS_GOOD_RATIO &&
1555 struct iwl_rate_scale_data *window = &(tbl->win[index]);
1614 if (window->success_ratio >= IWL_RS_GOOD_RATIO &&
1725 struct iwl_rate_scale_data *window = &(tbl->win[index]);
1780 if (window->success_ratio >= IWL_RS_GOOD_RATIO)
1893 struct iwl_rate_scale_data *window = &(tbl->win[index]);
1948 if (window->success_ratio >= IWL_RS_GOOD_RATIO)
2170 struct iwl_rate_scale_data *window = NULL;
2270 /* Get expected throughput table and history window for current rate */
2281 window = &(tbl->win[index]);
2285 window = &(tbl->win[index]);
2294 fail_count = window->counter - window->success_counter;
2296 (window->success_counter < IWL_RATE_MIN_SUCCESS_TH)) {
2299 window->success_counter, window->counter, index);
2302 window->average_tpt = IWL_INVALID_VALUE;
2312 if (window->average_tpt != ((window->success_ratio *
2315 window->average_tpt = ((window->success_ratio *
2325 if (window->average_tpt > lq_sta->last_tpt) {
2329 window->success_ratio,
2330 window->average_tpt,
2338 current_tpt = window->average_tpt;
2345 window->success_ratio,
2346 window->average_tpt,
2383 sr = window->success_ratio;
2386 current_tpt = window->average_tpt;
2519 if (!update_lq && !done_search && !lq_sta->stay_in_tbl && window->counter) {
2736 IWL_DEBUG_RATE(priv, "create station rate scale window\n");