These rates are treated the same as 160 MHz in the spec, so it makes no sense to distinguish them. As no driver uses them yet, this is also not a problem, just remove them. In the userspace API the field remains reserved to preserve API and ABI.
Unified · Split
| @@ -875,7 +875,6 @@ int cfg80211_check_station_change(struct wiphy *wiphy, · 874 unmodified lines | ||
| 875 | 875 | * @RATE_INFO_FLAGS_VHT_MCS: mcs field filled with VHT MCS |
| 876 | 876 | * @RATE_INFO_FLAGS_40_MHZ_WIDTH: 40 MHz width transmission |
| 877 | 877 | * @RATE_INFO_FLAGS_80_MHZ_WIDTH: 80 MHz width transmission |
| 878 | − * @RATE_INFO_FLAGS_80P80_MHZ_WIDTH: 80+80 MHz width transmission | |
| 879 | 878 | * @RATE_INFO_FLAGS_160_MHZ_WIDTH: 160 MHz width transmission |
| 880 | 879 | * @RATE_INFO_FLAGS_SHORT_GI: 400ns guard interval |
| 881 | 880 | * @RATE_INFO_FLAGS_60G: 60GHz MCS |
| @@ -885,10 +884,9 @@ enum rate_info_flags { · 3 unmodified lines | ||
| 885 | 884 | RATE_INFO_FLAGS_VHT_MCS = BIT(1), |
| 886 | 885 | RATE_INFO_FLAGS_40_MHZ_WIDTH = BIT(2), |
| 887 | 886 | RATE_INFO_FLAGS_80_MHZ_WIDTH = BIT(3), |
| 888 | − RATE_INFO_FLAGS_80P80_MHZ_WIDTH = BIT(4), | |
| 889 | − RATE_INFO_FLAGS_160_MHZ_WIDTH = BIT(5), | |
| 890 | − RATE_INFO_FLAGS_SHORT_GI = BIT(6), | |
| 891 | − RATE_INFO_FLAGS_60G = BIT(7), | |
| 887 | + RATE_INFO_FLAGS_160_MHZ_WIDTH = BIT(4), | |
| 888 | + RATE_INFO_FLAGS_SHORT_GI = BIT(5), | |
| 889 | + RATE_INFO_FLAGS_60G = BIT(6), | |
| 892 | 890 | }; |
| 893 | 891 | |
| 894 | 892 | /** |
| @@ -2278,7 +2278,8 @@ struct nl80211_sta_flag_update { · 2277 unmodified lines | ||
| 2278 | 2278 | * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) |
| 2279 | 2279 | * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) |
| 2280 | 2280 | * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate |
| 2281 | − * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate | |
| 2281 | + * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: unused - 80+80 is treated the | |
| 2282 | + * same as 160 for purposes of the bitrates | |
| 2282 | 2283 | * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate |
| 2283 | 2284 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use |
| 2284 | 2285 | */ |
| @@ -3614,9 +3614,6 @@ static bool nl80211_put_sta_rate(struct sk_buff *msg, struct rate_info *info, · 3613 unmodified lines | ||
| 3614 | 3614 | if (info->flags & RATE_INFO_FLAGS_80_MHZ_WIDTH && |
| 3615 | 3615 | nla_put_flag(msg, NL80211_RATE_INFO_80_MHZ_WIDTH)) |
| 3616 | 3616 | return false; |
| 3617 | − if (info->flags & RATE_INFO_FLAGS_80P80_MHZ_WIDTH && | |
| 3618 | − nla_put_flag(msg, NL80211_RATE_INFO_80P80_MHZ_WIDTH)) | |
| 3619 | − return false; | |
| 3620 | 3617 | if (info->flags & RATE_INFO_FLAGS_160_MHZ_WIDTH && |
| 3621 | 3618 | nla_put_flag(msg, NL80211_RATE_INFO_160_MHZ_WIDTH)) |
| 3622 | 3619 | return false; |
| @@ -1073,8 +1073,7 @@ static u32 cfg80211_calculate_bitrate_vht(struct rate_info *rate) · 1072 unmodified lines | ||
| 1073 | 1073 | if (WARN_ON_ONCE(rate->mcs > 9)) |
| 1074 | 1074 | return 0; |
| 1075 | 1075 | |
| 1076 | − idx = rate->flags & (RATE_INFO_FLAGS_160_MHZ_WIDTH | | |
| 1077 | − RATE_INFO_FLAGS_80P80_MHZ_WIDTH) ? 3 : | |
| 1076 | + idx = rate->flags & RATE_INFO_FLAGS_160_MHZ_WIDTH ? 3 : | |
| 1078 | 1077 | rate->flags & RATE_INFO_FLAGS_80_MHZ_WIDTH ? 2 : |
| 1079 | 1078 | rate->flags & RATE_INFO_FLAGS_40_MHZ_WIDTH ? 1 : 0; |
| 1080 | 1079 | |