mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 06:41:39 +00:00
mac80211: Modify sta_get_rates to give basic rates
Signed-off-by: Ashok Nagarajan <ashok@cozybit.com> Signed-off-by: Thomas Pedersen <thomas@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
657c3e0c41
commit
9ebb61a23d
5 changed files with 23 additions and 11 deletions
|
@ -1109,7 +1109,7 @@ void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst,
|
|||
|
||||
u32 ieee80211_sta_get_rates(struct ieee80211_local *local,
|
||||
struct ieee802_11_elems *elems,
|
||||
enum ieee80211_band band)
|
||||
enum ieee80211_band band, u32 *basic_rates)
|
||||
{
|
||||
struct ieee80211_supported_band *sband;
|
||||
struct ieee80211_rate *bitrates;
|
||||
|
@ -1130,15 +1130,25 @@ u32 ieee80211_sta_get_rates(struct ieee80211_local *local,
|
|||
elems->ext_supp_rates_len; i++) {
|
||||
u8 rate = 0;
|
||||
int own_rate;
|
||||
bool is_basic;
|
||||
if (i < elems->supp_rates_len)
|
||||
rate = elems->supp_rates[i];
|
||||
else if (elems->ext_supp_rates)
|
||||
rate = elems->ext_supp_rates
|
||||
[i - elems->supp_rates_len];
|
||||
own_rate = 5 * (rate & 0x7f);
|
||||
for (j = 0; j < num_rates; j++)
|
||||
if (bitrates[j].bitrate == own_rate)
|
||||
is_basic = !!(rate & 0x80);
|
||||
|
||||
if (is_basic && (rate & 0x7f) == BSS_MEMBERSHIP_SELECTOR_HT_PHY)
|
||||
continue;
|
||||
|
||||
for (j = 0; j < num_rates; j++) {
|
||||
if (bitrates[j].bitrate == own_rate) {
|
||||
supp_rates |= BIT(j);
|
||||
if (basic_rates && is_basic)
|
||||
*basic_rates |= BIT(j);
|
||||
}
|
||||
}
|
||||
}
|
||||
return supp_rates;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue