--- zzzz-none-000/linux-4.19.183/net/wireless/util.c 2021-03-24 10:07:39.000000000 +0000 +++ bcm63-7530ax-756/linux-4.19.183/net/wireless/util.c 2023-06-28 08:54:21.000000000 +0000 @@ -91,6 +91,14 @@ if (chan < 5) return 56160 + chan * 2160; break; +#ifdef CONFIG_BCM_KF_NL80211_6G_BAND_SUPPORT + case NL80211_BAND_6GHZ: + if (chan == 2) + return 5935; + else if (chan >= 1 && chan <= 233) + return 5950 + chan * 5; + break; +#endif /* CONFIG_BCM_KF_NL80211_6G_BAND_SUPPORT */ default: ; } @@ -107,6 +115,12 @@ return (freq - 2407) / 5; else if (freq >= 4910 && freq <= 4980) return (freq - 4000) / 5; +#ifdef CONFIG_BCM_KF_NL80211_6G_BAND_SUPPORT + else if (freq == 5935) + return 2; + else if (freq >= 5955 && freq <= 7125) + return (freq - 5950) / 5; +#endif /* CONFIG_BCM_KF_NL80211_6G_BAND_SUPPORT */ else if (freq <= 45000) /* DMG band lower limit */ return (freq - 5000) / 5; else if (freq >= 58320 && freq <= 64800) @@ -143,6 +157,9 @@ int i, want; switch (sband->band) { +#ifdef CONFIG_BCM_KF_NL80211_6G_BAND_SUPPORT + case NL80211_BAND_6GHZ: +#endif /* CONFIG_BCM_KF_NL80211_6G_BAND_SUPPORT */ case NL80211_BAND_5GHZ: want = 3; for (i = 0; i < sband->n_bitrates; i++) { @@ -218,7 +235,11 @@ struct key_params *params, int key_idx, bool pairwise, const u8 *mac_addr) { +#ifndef CONFIG_BCM_KF_MISC_BACKPORTS if (key_idx < 0 || key_idx > 5) +#else + if (key_idx < 0 || key_idx > 7) +#endif /* CONFIG_BCM_KF_MISC_BACKPORTS */ return -EINVAL; if (!pairwise && mac_addr && !(rdev->wiphy.flags & WIPHY_FLAG_IBSS_RSN)) @@ -947,6 +968,9 @@ if (dev->ieee80211_ptr->use_4addr) break; /* fall through */ +#ifdef CONFIG_BCM_KF_WL_HOSTAPD + break; +#endif /* CONFIG_BCM_KF_WL_HOSTAPD */ case NL80211_IFTYPE_OCB: case NL80211_IFTYPE_P2P_CLIENT: case NL80211_IFTYPE_ADHOC: @@ -1059,7 +1083,11 @@ static u32 cfg80211_calculate_bitrate_vht(struct rate_info *rate) { +#ifdef CONFIG_BCM_KF_WL_HOSTAPD + static const u32 base[4][12] = { +#else static const u32 base[4][10] = { +#endif /* CONFIG_BCM_KF_WL_HOSTAPD */ { 6500000, 13000000, 19500000, @@ -1071,6 +1099,10 @@ 78000000, /* not in the spec, but some devices use this: */ 86500000, +#ifdef CONFIG_BCM_KF_WL_HOSTAPD + 97500000, + 108300000, +#endif /* CONFIG_BCM_KF_WL_HOSTAPD */ }, { 13500000, 27000000, @@ -1082,6 +1114,10 @@ 135000000, 162000000, 180000000, +#ifdef CONFIG_BCM_KF_WL_HOSTAPD + 202500000, + 225000000, +#endif /* CONFIG_BCM_KF_WL_HOSTAPD */ }, { 29300000, 58500000, @@ -1093,6 +1129,10 @@ 292500000, 351000000, 390000000, +#ifdef CONFIG_BCM_KF_WL_HOSTAPD + 438800000, + 487500000, +#endif /* CONFIG_BCM_KF_WL_HOSTAPD */ }, { 58500000, 117000000, @@ -1104,13 +1144,22 @@ 585000000, 702000000, 780000000, +#ifdef CONFIG_BCM_KF_WL_HOSTAPD + 877500000, + 975000000, +#endif /* CONFIG_BCM_KF_WL_HOSTAPD */ }, }; u32 bitrate; int idx; +#ifdef CONFIG_BCM_KF_WL_HOSTAPD + if (rate->mcs > 11) + goto warn; +#else if (rate->mcs > 9) goto warn; +#endif /* CONFIG_BCM_KF_WL_HOSTAPD */ switch (rate->bw) { case RATE_INFO_BW_160: