mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
cfg80211: change bandwidth reporting to explicit field
For some reason, we made the bandwidth separate flags, which is rather confusing - a single rate cannot have different bandwidths at the same time. Change this to no longer be flags but use a separate field for the bandwidth ('bw') instead. While at it, add support for 5 and 10 MHz rates - these are reported as regular legacy rates with their real bitrate, but tagged as 5/10 now to make it easier to distinguish them. In the nl80211 API, the flags are preserved, but the code now can also clearly only set a single one of the flags. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
97d910d0aa
commit
b51f3beecf
8 changed files with 125 additions and 50 deletions
|
@ -1073,9 +1073,24 @@ static u32 cfg80211_calculate_bitrate_vht(struct rate_info *rate)
|
|||
if (WARN_ON_ONCE(rate->mcs > 9))
|
||||
return 0;
|
||||
|
||||
idx = rate->flags & RATE_INFO_FLAGS_160_MHZ_WIDTH ? 3 :
|
||||
rate->flags & RATE_INFO_FLAGS_80_MHZ_WIDTH ? 2 :
|
||||
rate->flags & RATE_INFO_FLAGS_40_MHZ_WIDTH ? 1 : 0;
|
||||
switch (rate->bw) {
|
||||
case RATE_INFO_BW_160:
|
||||
idx = 3;
|
||||
break;
|
||||
case RATE_INFO_BW_80:
|
||||
idx = 2;
|
||||
break;
|
||||
case RATE_INFO_BW_40:
|
||||
idx = 1;
|
||||
break;
|
||||
case RATE_INFO_BW_5:
|
||||
case RATE_INFO_BW_10:
|
||||
default:
|
||||
WARN_ON(1);
|
||||
/* fall through */
|
||||
case RATE_INFO_BW_20:
|
||||
idx = 0;
|
||||
}
|
||||
|
||||
bitrate = base[idx][rate->mcs];
|
||||
bitrate *= rate->nss;
|
||||
|
@ -1106,8 +1121,7 @@ u32 cfg80211_calculate_bitrate(struct rate_info *rate)
|
|||
modulation = rate->mcs & 7;
|
||||
streams = (rate->mcs >> 3) + 1;
|
||||
|
||||
bitrate = (rate->flags & RATE_INFO_FLAGS_40_MHZ_WIDTH) ?
|
||||
13500000 : 6500000;
|
||||
bitrate = (rate->bw == RATE_INFO_BW_40) ? 13500000 : 6500000;
|
||||
|
||||
if (modulation < 4)
|
||||
bitrate *= (modulation + 1);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue