Lines Matching defs:win
117 il3945_clear_win(struct il3945_rate_scale_data *win)
119 win->data = 0;
120 win->success_counter = 0;
121 win->success_ratio = -1;
122 win->counter = 0;
123 win->average_tpt = IL_INVALID_VALUE;
124 win->stamp = 0;
148 if (!rs_sta->win[i].counter)
152 if (time_after(jiffies, rs_sta->win[i].stamp + RATE_WIN_FLUSH)) {
154 rs_sta->win[i].counter, i);
155 il3945_clear_win(&rs_sta->win[i]);
233 * il3945_collect_tx_data - Update the success/failure sliding win
235 * We keep a sliding win of the last 64 packets transmitted
236 * at this rate. win->data contains the bitmask of successful
241 struct il3945_rate_scale_data *win, int success,
257 * history win; anything older isn't really relevant any more.
258 * If we have filled up the sliding win, drop the oldest attempt;
264 if (win->counter >= RATE_MAX_WINDOW) {
267 win->counter = RATE_MAX_WINDOW - 1;
269 if (win->data & (1ULL << (RATE_MAX_WINDOW - 1))) {
270 win->data &= ~(1ULL << (RATE_MAX_WINDOW - 1));
271 win->success_counter--;
276 win->counter++;
281 win->data <<= 1;
283 win->success_counter++;
284 win->data |= 0x1;
292 if (win->counter > 0)
293 win->success_ratio =
294 128 * (100 * win->success_counter) / win->counter;
296 win->success_ratio = IL_INVALID_VALUE;
298 fail_count = win->counter - win->success_counter;
302 win->success_counter >= RATE_MIN_SUCCESS_TH)
303 win->average_tpt =
304 ((win->success_ratio * rs_sta->expected_tpt[idx] +
307 win->average_tpt = IL_INVALID_VALUE;
309 /* Tag this win as having been updated */
310 win->stamp = jiffies;
349 il3945_clear_win(&rs_sta->win[i]);
467 * Update the win for each rate. We determine which rates
487 il3945_collect_tx_data(rs_sta, &rs_sta->win[scale_rate_idx], 0,
497 /* Update the last idx win with success/failure based on ACK */
500 il3945_collect_tx_data(rs_sta, &rs_sta->win[last_idx],
504 /* We updated the rate scale win -- if its been more than
614 struct il3945_rate_scale_data *win = NULL;
666 win = &(rs_sta->win[idx]);
668 fail_count = win->counter - win->success_counter;
671 win->success_counter < RATE_MIN_SUCCESS_TH) {
676 "expected_tpt is %sNULL\n", idx, win->counter,
677 win->success_counter,
681 win->average_tpt = IL_INVALID_VALUE;
686 current_tpt = win->average_tpt;
699 low_tpt = rs_sta->win[low].average_tpt;
702 high_tpt = rs_sta->win[high].average_tpt;
709 if (win->success_ratio < RATE_DECREASE_TH || !current_tpt) {
717 win->success_ratio >= RATE_INCREASE_TH)
739 win->success_ratio >= RATE_INCREASE_TH)
749 } else if (win->success_ratio >= RATE_INCREASE_TH) {
760 (win->success_ratio > RATE_HIGH_TH ||
826 lq_sta->win[j].counter,
827 lq_sta->win[j].success_counter,
828 lq_sta->win[j].success_ratio);