Lines Matching full:rates
47 struct ieee80211_tx_rate *rates) in wfx_tx_policy_build() argument
53 WARN(rates[0].idx < 0, "invalid rate policy"); in wfx_tx_policy_build()
56 if (rates[i].idx < 0) in wfx_tx_policy_build()
58 WARN_ON(rates[i].count > 15); in wfx_tx_policy_build()
59 rateid = wfx_get_hw_rate(wdev, &rates[i]); in wfx_tx_policy_build()
60 /* Pack two values in each byte of policy->rates */ in wfx_tx_policy_build()
61 count = rates[i].count; in wfx_tx_policy_build()
64 policy->rates[rateid / 2] |= count; in wfx_tx_policy_build()
70 return !memcmp(a->rates, b->rates, sizeof(a->rates)); in wfx_tx_policy_is_equal()
101 static int wfx_tx_policy_get(struct wfx_vif *wvif, struct ieee80211_tx_rate *rates, bool *renew) in wfx_tx_policy_get() argument
108 wfx_tx_policy_build(wvif, &wanted, rates); in wfx_tx_policy_get()
123 memcpy(entry->rates, wanted.rates, sizeof(entry->rates)); in wfx_tx_policy_get()
159 is_used = memzcmp(policies[i].rates, sizeof(policies[i].rates)); in wfx_tx_policy_upload()
165 memcpy(tmp_rates, policies[i].rates, sizeof(tmp_rates)); in wfx_tx_policy_upload()
257 static void wfx_tx_fixup_rates(struct ieee80211_tx_rate *rates) in wfx_tx_fixup_rates() argument
263 if (rates[j].idx == -1) in wfx_tx_fixup_rates()
265 /* The device use the rates in descending order, whatever the request from minstrel. in wfx_tx_fixup_rates()
270 if (rates[j].idx >= rates[i - 1].idx) { in wfx_tx_fixup_rates()
271 rates[i - 1].count += rates[j].count; in wfx_tx_fixup_rates()
272 rates[i - 1].count = min_t(u16, 15, rates[i - 1].count); in wfx_tx_fixup_rates()
274 memcpy(rates + i, rates + j, sizeof(rates[i])); in wfx_tx_fixup_rates()
275 if (rates[i].idx == 0) in wfx_tx_fixup_rates()
278 rates[i].flags &= ~IEEE80211_TX_RC_SHORT_GI; in wfx_tx_fixup_rates()
284 rates[i].idx = 0; in wfx_tx_fixup_rates()
285 rates[i].count = 8; /* == hw->max_rate_tries */ in wfx_tx_fixup_rates()
286 rates[i].flags = rates[0].flags & IEEE80211_TX_RC_MCS; in wfx_tx_fixup_rates()
290 memset(rates + i, 0, sizeof(rates[i])); in wfx_tx_fixup_rates()
291 rates[i].idx = -1; in wfx_tx_fixup_rates()
473 rate = &tx_info->status.rates[i]; in wfx_tx_fill_rates()
482 dev_dbg(wdev->dev, "inconsistent tx_info rates: %d != %d\n", in wfx_tx_fill_rates()