Lines Matching refs:rates
67 struct ieee80211_tx_rate *rates, size_t count)
72 BUG_ON(rates[0].idx < 0);
75 /* Sort rates in descending order. */
77 if (rates[i].idx < 0) {
81 if (rates[i].idx > rates[i - 1].idx) {
82 struct ieee80211_tx_rate tmp = rates[i - 1];
83 rates[i - 1] = rates[i];
84 rates[i] = tmp;
89 total = rates[0].count;
91 if (rates[j].idx == rates[i].idx) {
92 rates[i].count += rates[j].count;
93 } else if (rates[j].idx > rates[i].idx) {
98 rates[i] = rates[j];
100 total += rates[j].count;
112 if (rates[i].count > limit - left)
113 rates[i].count = limit - left;
114 limit -= rates[i].count;
121 * As a workaround, additional g-rates are injected to the
124 if (count == 2 && !(rates[0].flags & IEEE80211_TX_RC_MCS) &&
125 rates[0].idx > 4 && rates[0].count > 2 &&
126 rates[1].idx < 2) {
127 int mid_rate = (rates[0].idx + 4) >> 1;
130 rates[0].count -= 2;
134 rates[3] = rates[1];
137 rates[2].idx = 4;
138 rates[2].count = 1;
139 rates[2].flags = rates[1].flags;
142 rates[1].idx = mid_rate;
143 rates[1].count = 1;
150 if (rates[0].count >= 3) {
151 --rates[0].count;
152 ++rates[2].count;
155 /* Adjust amount of rates defined */
159 rates[2] = rates[1];
162 rates[1].idx = 4;
163 rates[1].count = 2;
165 /* Adjust amount of rates defined */
170 policy->defined = cw1200_get_tx_rate(priv, &rates[0])->hw_value + 1;
175 rateid = cw1200_get_tx_rate(priv, &rates[i])->hw_value;
179 retries = rates[i].count;
181 rates[i].count = 0x0f;
190 rates[0].idx, rates[0].count,
191 rates[1].idx, rates[1].count,
192 rates[2].idx, rates[2].count,
193 rates[3].idx, rates[3].count);
297 struct ieee80211_tx_rate *rates,
304 tx_policy_build(priv, &wanted, rates, count);
413 u32 cw1200_rate_mask_to_wsm(struct cw1200_common *priv, u32 rates)
418 if (rates & BIT(i))
419 ret |= BIT(priv->rates[i].hw_value);
645 t->tx_info->control.rates, IEEE80211_TX_MAX_RATES,
653 &t->tx_info->control.rates[0]);
933 if (tx->status.rates[i].count >= tx_count) {
934 tx->status.rates[i].count = tx_count;
937 tx_count -= tx->status.rates[i].count;
938 if (tx->status.rates[i].flags & IEEE80211_TX_RC_MCS)
939 tx->status.rates[i].flags |= ht_flags;
943 tx->status.rates[i].count = 0;
944 tx->status.rates[i].idx = -1;