Lines Matching refs:amrr
1736 iwp_amrr_t *amrr; in iwp_node_alloc() local
1738 amrr = kmem_zalloc(sizeof (iwp_amrr_t), KM_SLEEP); in iwp_node_alloc()
1739 if (NULL == amrr) { in iwp_node_alloc()
1745 iwp_amrr_init(amrr); in iwp_node_alloc()
1747 return (&amrr->in); in iwp_node_alloc()
2347 iwp_amrr_t *amrr; in iwp_tx_intr() local
2353 amrr = (iwp_amrr_t *)ic->ic_bss; in iwp_tx_intr()
2355 amrr->txcnt++; in iwp_tx_intr()
2357 "tx: %d cnt\n", amrr->txcnt)); in iwp_tx_intr()
2360 amrr->retrycnt++; in iwp_tx_intr()
4718 #define is_success(amrr) \ argument
4719 ((amrr)->retrycnt < (amrr)->txcnt / 10)
4720 #define is_failure(amrr) \ argument
4721 ((amrr)->retrycnt > (amrr)->txcnt / 3)
4722 #define is_enough(amrr) \ argument
4723 ((amrr)->txcnt > 200)
4724 #define not_very_few(amrr) \ argument
4725 ((amrr)->txcnt > 40)
4734 #define reset_cnt(amrr) \ argument
4735 { (amrr)->txcnt = (amrr)->retrycnt = 0; }
4741 iwp_amrr_init(iwp_amrr_t *amrr) in iwp_amrr_init() argument
4743 amrr->success = 0; in iwp_amrr_init()
4744 amrr->recovery = 0; in iwp_amrr_init()
4745 amrr->txcnt = amrr->retrycnt = 0; in iwp_amrr_init()
4746 amrr->success_threshold = IWP_AMRR_MIN_SUCCESS_THRESHOLD; in iwp_amrr_init()
4770 iwp_amrr_t *amrr = (iwp_amrr_t *)in; in iwp_amrr_ratectl() local
4773 if (is_success(amrr) && is_enough(amrr)) { in iwp_amrr_ratectl()
4774 amrr->success++; in iwp_amrr_ratectl()
4775 if (amrr->success >= amrr->success_threshold && in iwp_amrr_ratectl()
4777 amrr->recovery = 1; in iwp_amrr_ratectl()
4778 amrr->success = 0; in iwp_amrr_ratectl()
4783 in->in_txrate, amrr->txcnt, in iwp_amrr_ratectl()
4784 amrr->retrycnt)); in iwp_amrr_ratectl()
4787 amrr->recovery = 0; in iwp_amrr_ratectl()
4789 } else if (not_very_few(amrr) && is_failure(amrr)) { in iwp_amrr_ratectl()
4790 amrr->success = 0; in iwp_amrr_ratectl()
4792 if (amrr->recovery) { in iwp_amrr_ratectl()
4793 amrr->success_threshold++; in iwp_amrr_ratectl()
4794 if (amrr->success_threshold > in iwp_amrr_ratectl()
4796 amrr->success_threshold = in iwp_amrr_ratectl()
4800 amrr->success_threshold = in iwp_amrr_ratectl()
4807 in->in_txrate, amrr->txcnt, in iwp_amrr_ratectl()
4808 amrr->retrycnt)); in iwp_amrr_ratectl()
4811 amrr->recovery = 0; /* paper is incorrect */ in iwp_amrr_ratectl()
4814 if (is_enough(amrr) || need_change) { in iwp_amrr_ratectl()
4815 reset_cnt(amrr); in iwp_amrr_ratectl()