Lines Matching refs:rates

70 	struct ieee80211_tx_rate *rates, size_t count)  in tx_policy_build()  argument
75 BUG_ON(rates[0].idx < 0); in tx_policy_build()
80 if (rates[i].idx < 0) { in tx_policy_build()
84 if (rates[i].idx > rates[i - 1].idx) { in tx_policy_build()
85 struct ieee80211_tx_rate tmp = rates[i - 1]; in tx_policy_build()
86 rates[i - 1] = rates[i]; in tx_policy_build()
87 rates[i] = tmp; in tx_policy_build()
92 total = rates[0].count; in tx_policy_build()
94 if (rates[j].idx == rates[i].idx) { in tx_policy_build()
95 rates[i].count += rates[j].count; in tx_policy_build()
96 } else if (rates[j].idx > rates[i].idx) { in tx_policy_build()
101 rates[i] = rates[j]; in tx_policy_build()
103 total += rates[j].count; in tx_policy_build()
115 if (rates[i].count > limit - left) in tx_policy_build()
116 rates[i].count = limit - left; in tx_policy_build()
117 limit -= rates[i].count; in tx_policy_build()
127 if (count == 2 && !(rates[0].flags & IEEE80211_TX_RC_MCS) && in tx_policy_build()
128 rates[0].idx > 4 && rates[0].count > 2 && in tx_policy_build()
129 rates[1].idx < 2) { in tx_policy_build()
130 int mid_rate = (rates[0].idx + 4) >> 1; in tx_policy_build()
133 rates[0].count -= 2; in tx_policy_build()
137 rates[3] = rates[1]; in tx_policy_build()
140 rates[2].idx = 4; in tx_policy_build()
141 rates[2].count = 1; in tx_policy_build()
142 rates[2].flags = rates[1].flags; in tx_policy_build()
145 rates[1].idx = mid_rate; in tx_policy_build()
146 rates[1].count = 1; in tx_policy_build()
153 if (rates[0].count >= 3) { in tx_policy_build()
154 --rates[0].count; in tx_policy_build()
155 ++rates[2].count; in tx_policy_build()
162 rates[2] = rates[1]; in tx_policy_build()
165 rates[1].idx = 4; in tx_policy_build()
166 rates[1].count = 2; in tx_policy_build()
173 policy->defined = cw1200_get_tx_rate(priv, &rates[0])->hw_value + 1; in tx_policy_build()
178 rateid = cw1200_get_tx_rate(priv, &rates[i])->hw_value; in tx_policy_build()
182 retries = rates[i].count; in tx_policy_build()
184 rates[i].count = 0x0f; in tx_policy_build()
193 rates[0].idx, rates[0].count, in tx_policy_build()
194 rates[1].idx, rates[1].count, in tx_policy_build()
195 rates[2].idx, rates[2].count, in tx_policy_build()
196 rates[3].idx, rates[3].count); in tx_policy_build()
300 struct ieee80211_tx_rate *rates, in tx_policy_get() argument
307 tx_policy_build(priv, &wanted, rates, count); in tx_policy_get()
416 u32 cw1200_rate_mask_to_wsm(struct cw1200_common *priv, u32 rates) in cw1200_rate_mask_to_wsm() argument
421 if (rates & BIT(i)) in cw1200_rate_mask_to_wsm()
422 ret |= BIT(priv->rates[i].hw_value); in cw1200_rate_mask_to_wsm()
648 t->tx_info->control.rates, IEEE80211_TX_MAX_RATES, in cw1200_tx_h_rate_policy()
656 &t->tx_info->control.rates[0]), in cw1200_tx_h_rate_policy()
939 if (tx->status.rates[i].count >= tx_count) { in cw1200_tx_confirm_cb()
940 tx->status.rates[i].count = tx_count; in cw1200_tx_confirm_cb()
943 tx_count -= tx->status.rates[i].count; in cw1200_tx_confirm_cb()
944 if (tx->status.rates[i].flags & IEEE80211_TX_RC_MCS) in cw1200_tx_confirm_cb()
945 tx->status.rates[i].flags |= ht_flags; in cw1200_tx_confirm_cb()
949 tx->status.rates[i].count = 0; in cw1200_tx_confirm_cb()
950 tx->status.rates[i].idx = -1; in cw1200_tx_confirm_cb()