Lines Matching refs:rs_sta
135 il3945_rate_scale_flush_wins(struct il3945_rs_sta *rs_sta) in il3945_rate_scale_flush_wins() argument
140 struct il_priv *il __maybe_unused = rs_sta->il; in il3945_rate_scale_flush_wins()
148 if (!rs_sta->win[i].counter) in il3945_rate_scale_flush_wins()
151 spin_lock_irqsave(&rs_sta->lock, flags); in il3945_rate_scale_flush_wins()
152 if (time_after(jiffies, rs_sta->win[i].stamp + RATE_WIN_FLUSH)) { in il3945_rate_scale_flush_wins()
154 rs_sta->win[i].counter, i); in il3945_rate_scale_flush_wins()
155 il3945_clear_win(&rs_sta->win[i]); in il3945_rate_scale_flush_wins()
158 spin_unlock_irqrestore(&rs_sta->lock, flags); in il3945_rate_scale_flush_wins()
171 struct il3945_rs_sta *rs_sta = timer_container_of(rs_sta, t, in il3945_bg_rate_scale_flush() local
173 struct il_priv *il __maybe_unused = rs_sta->il; in il3945_bg_rate_scale_flush()
180 unflushed = il3945_rate_scale_flush_wins(rs_sta); in il3945_bg_rate_scale_flush()
182 spin_lock_irqsave(&rs_sta->lock, flags); in il3945_bg_rate_scale_flush()
185 packet_count = (rs_sta->tx_packets - rs_sta->last_tx_packets) + 1; in il3945_bg_rate_scale_flush()
187 rs_sta->last_tx_packets = rs_sta->tx_packets + 1; in il3945_bg_rate_scale_flush()
191 jiffies_to_msecs(jiffies - rs_sta->last_partial_flush); in il3945_bg_rate_scale_flush()
210 rs_sta->flush_time = msecs_to_jiffies(duration); in il3945_bg_rate_scale_flush()
215 mod_timer(&rs_sta->rate_scale_flush, in il3945_bg_rate_scale_flush()
216 jiffies + rs_sta->flush_time); in il3945_bg_rate_scale_flush()
218 rs_sta->last_partial_flush = jiffies; in il3945_bg_rate_scale_flush()
220 rs_sta->flush_time = RATE_FLUSH; in il3945_bg_rate_scale_flush()
221 rs_sta->flush_pending = 0; in il3945_bg_rate_scale_flush()
226 rs_sta->last_flush = jiffies; in il3945_bg_rate_scale_flush()
228 spin_unlock_irqrestore(&rs_sta->lock, flags); in il3945_bg_rate_scale_flush()
241 il3945_collect_tx_data(struct il3945_rs_sta *rs_sta, in il3945_collect_tx_data() argument
247 struct il_priv *il __maybe_unused = rs_sta->il; in il3945_collect_tx_data()
254 spin_lock_irqsave(&rs_sta->lock, flags); in il3945_collect_tx_data()
305 ((win->success_ratio * rs_sta->expected_tpt[idx] + in il3945_collect_tx_data()
313 spin_unlock_irqrestore(&rs_sta->lock, flags); in il3945_collect_tx_data()
325 struct il3945_rs_sta *rs_sta; in il3945_rs_rate_init() local
334 rs_sta = &psta->rs_sta; in il3945_rs_rate_init()
337 rs_sta->il = il; in il3945_rs_rate_init()
339 rs_sta->start_rate = RATE_INVALID; in il3945_rs_rate_init()
342 rs_sta->expected_tpt = il3945_expected_tpt_b; in il3945_rs_rate_init()
344 rs_sta->last_partial_flush = jiffies; in il3945_rs_rate_init()
345 rs_sta->last_flush = jiffies; in il3945_rs_rate_init()
346 rs_sta->flush_time = RATE_FLUSH; in il3945_rs_rate_init()
347 rs_sta->last_tx_packets = 0; in il3945_rs_rate_init()
350 il3945_clear_win(&rs_sta->win[i]); in il3945_rs_rate_init()
359 rs_sta->last_txrate_idx = i; in il3945_rs_rate_init()
367 rs_sta->last_txrate_idx += IL_FIRST_OFDM_RATE; in il3945_rs_rate_init()
392 struct il3945_rs_sta *rs_sta; in il3945_rs_alloc_sta() local
398 rs_sta = &psta->rs_sta; in il3945_rs_alloc_sta()
400 spin_lock_init(&rs_sta->lock); in il3945_rs_alloc_sta()
401 timer_setup(&rs_sta->rate_scale_flush, il3945_bg_rate_scale_flush, 0); in il3945_rs_alloc_sta()
404 return rs_sta; in il3945_rs_alloc_sta()
410 struct il3945_rs_sta *rs_sta = il_sta; in il3945_rs_free_sta() local
417 timer_delete_sync(&rs_sta->rate_scale_flush); in il3945_rs_free_sta()
435 struct il3945_rs_sta *rs_sta = il_sta; in il3945_rs_tx_status() local
457 if (!rs_sta->il) { in il3945_rs_tx_status()
462 rs_sta->tx_packets++; in il3945_rs_tx_status()
488 il3945_collect_tx_data(rs_sta, &rs_sta->win[scale_rate_idx], 0, in il3945_rs_tx_status()
501 il3945_collect_tx_data(rs_sta, &rs_sta->win[last_idx], in il3945_rs_tx_status()
508 spin_lock_irqsave(&rs_sta->lock, flags); in il3945_rs_tx_status()
510 if (!rs_sta->flush_pending && in il3945_rs_tx_status()
511 time_after(jiffies, rs_sta->last_flush + rs_sta->flush_time)) { in il3945_rs_tx_status()
513 rs_sta->last_partial_flush = jiffies; in il3945_rs_tx_status()
514 rs_sta->flush_pending = 1; in il3945_rs_tx_status()
515 mod_timer(&rs_sta->rate_scale_flush, in il3945_rs_tx_status()
516 jiffies + rs_sta->flush_time); in il3945_rs_tx_status()
519 spin_unlock_irqrestore(&rs_sta->lock, flags); in il3945_rs_tx_status()
525 il3945_get_adjacent_rate(struct il3945_rs_sta *rs_sta, u8 idx, u16 rate_mask, in il3945_get_adjacent_rate() argument
530 struct il_priv *il __maybe_unused = rs_sta->il; in il3945_get_adjacent_rate()
561 if (rs_sta->tgg) in il3945_get_adjacent_rate()
574 if (rs_sta->tgg) in il3945_get_adjacent_rate()
614 struct il3945_rs_sta *rs_sta = il_sta; in il3945_rs_get_rate() local
630 if (rs_sta && !rs_sta->il) { in il3945_rs_get_rate()
644 idx = min(rs_sta->last_txrate_idx & 0xffff, RATE_COUNT_3945 - 1); in il3945_rs_get_rate()
649 spin_lock_irqsave(&rs_sta->lock, flags); in il3945_rs_get_rate()
654 if (rs_sta->start_rate != RATE_INVALID) { in il3945_rs_get_rate()
655 if (rs_sta->start_rate < idx && in il3945_rs_get_rate()
656 (rate_mask & (1 << rs_sta->start_rate))) in il3945_rs_get_rate()
657 idx = rs_sta->start_rate; in il3945_rs_get_rate()
658 rs_sta->start_rate = RATE_INVALID; in il3945_rs_get_rate()
667 win = &(rs_sta->win[idx]); in il3945_rs_get_rate()
673 spin_unlock_irqrestore(&rs_sta->lock, flags); in il3945_rs_get_rate()
679 rs_sta->expected_tpt ? "not " : ""); in il3945_rs_get_rate()
690 il3945_get_adjacent_rate(rs_sta, idx, rate_mask, sband->band); in il3945_rs_get_rate()
700 low_tpt = rs_sta->win[low].average_tpt; in il3945_rs_get_rate()
703 high_tpt = rs_sta->win[high].average_tpt; in il3945_rs_get_rate()
705 spin_unlock_irqrestore(&rs_sta->lock, flags); in il3945_rs_get_rate()
762 current_tpt > 100 * rs_sta->expected_tpt[low])) in il3945_rs_get_rate()
791 rs_sta->last_txrate_idx = idx; in il3945_rs_get_rate()
794 rs_sta->last_txrate_idx = idx; in il3945_rs_get_rate()
795 info->control.rates[0].idx = rs_sta->last_txrate_idx; in il3945_rs_get_rate()
885 struct il3945_rs_sta *rs_sta; in il3945_rate_scale_init() local
901 rs_sta = &psta->rs_sta; in il3945_rate_scale_init()
903 spin_lock_irqsave(&rs_sta->lock, flags); in il3945_rate_scale_init()
905 rs_sta->tgg = 0; in il3945_rate_scale_init()
910 rs_sta->tgg = 1; in il3945_rate_scale_init()
911 rs_sta->expected_tpt = il3945_expected_tpt_g_prot; in il3945_rate_scale_init()
913 rs_sta->expected_tpt = il3945_expected_tpt_g; in il3945_rate_scale_init()
916 rs_sta->expected_tpt = il3945_expected_tpt_a; in il3945_rate_scale_init()
923 spin_unlock_irqrestore(&rs_sta->lock, flags); in il3945_rate_scale_init()
931 rs_sta->start_rate = il3945_get_rate_idx_by_rssi(rssi, il->band); in il3945_rate_scale_init()
934 rs_sta->start_rate, il3945_rates[rs_sta->start_rate].plcp); in il3945_rate_scale_init()