diff mbox series

[v5,2/8] ath11k: add support for 6GHz radio in driver

Message ID 20200603001724.12161-3-pradeepc@codeaurora.org
State New
Headers show
Series add 6GHz radio support in ath11k driver | expand

Commit Message

Pradeep Kumar Chitrapu June 3, 2020, 12:17 a.m. UTC
This patch adds 6GHz band support and mac80211 registration for
the 6G phy radio.

Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
---
v5:
 - do not add ht/vht caps in 6ghz band.
v3:
 - update 6GHz starting frequency as defined in IEEE P802.11ax/D6.1

 drivers/net/wireless/ath/ath11k/core.h |  6 +-
 drivers/net/wireless/ath/ath11k/mac.c  | 93 +++++++++++++++++++++-----
 drivers/net/wireless/ath/ath11k/wmi.c  | 16 ++++-
 3 files changed, 94 insertions(+), 21 deletions(-)

Comments

Wen Gong Sept. 15, 2020, 11:16 a.m. UTC | #1
On 2020-06-03 08:17, Pradeep Kumar Chitrapu wrote:
> This patch adds 6GHz band support and mac80211 registration for

> the 6G phy radio.

> 

> Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>

> ---

> v5:

>  - do not add ht/vht caps in 6ghz band.

> v3:

>  - update 6GHz starting frequency as defined in IEEE P802.11ax/D6.1

> 

>  drivers/net/wireless/ath/ath11k/core.h |  6 +-

>  drivers/net/wireless/ath/ath11k/mac.c  | 93 +++++++++++++++++++++-----

>  drivers/net/wireless/ath/ath11k/wmi.c  | 16 ++++-

>  3 files changed, 94 insertions(+), 21 deletions(-)

> 

[...]
> @@ -3482,7 +3494,7 @@ static void ath11k_mac_setup_ht_vht_cap(struct 

> ath11k *ar,

>  						    rate_cap_rx_chainmask);

>  	}

> 

> -	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP) {

> +	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP && 

> !ar->supports_6ghz) {

>  		band = &ar->mac.sbands[NL80211_BAND_5GHZ];

>  		ht_cap = cap->band[NL80211_BAND_5GHZ].ht_cap_info;

>  		if (ht_cap_info)

After this change, when 6G is support, it removed HT/VHT of 5G band from 
"iw list", when connect to an 11AX AP of 5G, it used non-HT.
caused together with this commit 
75e296e9b22aef6fa467523ace87ef623dac1fad(mac80211: simplify and improve 
HT/VHT/HE disable code)
+       /* disable HT/VHT/HE if we don't support them */
+       if (!sband->ht_cap.ht_supported) {
+               ifmgd->flags |= IEEE80211_STA_DISABLE_HT;
+               ifmgd->flags |= IEEE80211_STA_DISABLE_VHT;
+               ifmgd->flags |= IEEE80211_STA_DISABLE_HE;
+       }

after remove this change in ath11k, it become correct to HE
iw wls1 station dump:
rx bitrate:     149.7 MBit/s HE-MCS 6 HE-NSS 2 HE-GI 0 HE-DCM 0

[...]
Wen Gong Sept. 15, 2020, 12:32 p.m. UTC | #2
On 2020-09-15 19:16, Wen Gong wrote:
> On 2020-06-03 08:17, Pradeep Kumar Chitrapu wrote:
>> This patch adds 6GHz band support and mac80211 registration for
>> the 6G phy radio.
>> 
>> Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
>> ---
>> v5:
>>  - do not add ht/vht caps in 6ghz band.
>> v3:
>>  - update 6GHz starting frequency as defined in IEEE P802.11ax/D6.1
>> 
>>  drivers/net/wireless/ath/ath11k/core.h |  6 +-
>>  drivers/net/wireless/ath/ath11k/mac.c  | 93 
>> +++++++++++++++++++++-----
>>  drivers/net/wireless/ath/ath11k/wmi.c  | 16 ++++-
>>  3 files changed, 94 insertions(+), 21 deletions(-)
>> 
> [...]
>> @@ -3482,7 +3494,7 @@ static void ath11k_mac_setup_ht_vht_cap(struct 
>> ath11k *ar,
>>  						    rate_cap_rx_chainmask);
>>  	}
>> 
>> -	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP) {
>> +	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP && 
>> !ar->supports_6ghz) {
>>  		band = &ar->mac.sbands[NL80211_BAND_5GHZ];
>>  		ht_cap = cap->band[NL80211_BAND_5GHZ].ht_cap_info;
>>  		if (ht_cap_info)
> After this change, when 6G is support, it removed HT/VHT of 5G band
> from "iw list", when connect to an 11AX AP of 5G, it used non-HT.
> caused together with this commit
> 75e296e9b22aef6fa467523ace87ef623dac1fad(mac80211: simplify and
> improve HT/VHT/HE disable code)
> +       /* disable HT/VHT/HE if we don't support them */
> +       if (!sband->ht_cap.ht_supported) {
> +               ifmgd->flags |= IEEE80211_STA_DISABLE_HT;
> +               ifmgd->flags |= IEEE80211_STA_DISABLE_VHT;
> +               ifmgd->flags |= IEEE80211_STA_DISABLE_HE;
> +       }
> 
> after remove this change in ath11k, it become correct to HE
> iw wls1 station dump:
> rx bitrate:     149.7 MBit/s HE-MCS 6 HE-NSS 2 HE-GI 0 HE-DCM 0
> 
Hi Pradeep Kumar Chitrapu,
For QCA6390, it is single_pdev, the pdev support all 2G/5G/6G,
Is it have 3 pdev/ath11k in your chip for 2G/5G/6G?
And the pdev/ath11k of 6G have WMI_HOST_WLAN_5G_CAP of 
cap->supported_bands?
> [...]
Pradeep Kumar Chitrapu Sept. 15, 2020, 11:07 p.m. UTC | #3
>>> 
>>> -	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP) {
>>> +	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP && 
>>> !ar->supports_6ghz) {
>>>  		band = &ar->mac.sbands[NL80211_BAND_5GHZ];
>>>  		ht_cap = cap->band[NL80211_BAND_5GHZ].ht_cap_info;
>>>  		if (ht_cap_info)
>> After this change, when 6G is support, it removed HT/VHT of 5G band
>> from "iw list", when connect to an 11AX AP of 5G, it used non-HT.
>> caused together with this commit
>> 75e296e9b22aef6fa467523ace87ef623dac1fad(mac80211: simplify and
>> improve HT/VHT/HE disable code)
>> +       /* disable HT/VHT/HE if we don't support them */
>> +       if (!sband->ht_cap.ht_supported) {
>> +               ifmgd->flags |= IEEE80211_STA_DISABLE_HT;
>> +               ifmgd->flags |= IEEE80211_STA_DISABLE_VHT;
>> +               ifmgd->flags |= IEEE80211_STA_DISABLE_HE;
>> +       }
>> 
>> after remove this change in ath11k, it become correct to HE
>> iw wls1 station dump:
>> rx bitrate:     149.7 MBit/s HE-MCS 6 HE-NSS 2 HE-GI 0 HE-DCM 0
Hi Wen,

Do you have 
https://lore.kernel.org/linux-wireless/20200528213443.25687d2695bc.I3f9747c1147480f65445f13eda5c4a5ed4e86757@changeid/?

>> 
> Hi Pradeep Kumar Chitrapu,
> For QCA6390, it is single_pdev, the pdev support all 2G/5G/6G,
> Is it have 3 pdev/ath11k in your chip for 2G/5G/6G?
> And the pdev/ath11k of 6G have WMI_HOST_WLAN_5G_CAP of 
> cap->supported_bands?
>> [...]
Yes, ath11k receives WMI_HOST_WLAN_5G_CAP from firmware for 6G as well.
Wen Gong Sept. 16, 2020, 2:33 a.m. UTC | #4
On 2020-09-16 07:07, Pradeep Kumar Chitrapu wrote:
>>>> 

>>>> -	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP) {

>>>> +	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP && 

>>>> !ar->supports_6ghz) {

>>>>  		band = &ar->mac.sbands[NL80211_BAND_5GHZ];

>>>>  		ht_cap = cap->band[NL80211_BAND_5GHZ].ht_cap_info;

>>>>  		if (ht_cap_info)

>>> After this change, when 6G is support, it removed HT/VHT of 5G band

>>> from "iw list", when connect to an 11AX AP of 5G, it used non-HT.

>>> caused together with this commit

>>> 75e296e9b22aef6fa467523ace87ef623dac1fad(mac80211: simplify and

>>> improve HT/VHT/HE disable code)

>>> +       /* disable HT/VHT/HE if we don't support them */

>>> +       if (!sband->ht_cap.ht_supported) {

>>> +               ifmgd->flags |= IEEE80211_STA_DISABLE_HT;

>>> +               ifmgd->flags |= IEEE80211_STA_DISABLE_VHT;

>>> +               ifmgd->flags |= IEEE80211_STA_DISABLE_HE;

>>> +       }

>>> 

>>> after remove this change in ath11k, it become correct to HE

>>> iw wls1 station dump:

>>> rx bitrate:     149.7 MBit/s HE-MCS 6 HE-NSS 2 HE-GI 0 HE-DCM 0

> Hi Wen,

> 

> Do you have

> https://lore.kernel.org/linux-wireless/20200528213443.25687d2695bc.I3f9747c1147480f65445f13eda5c4a5ed4e86757@changeid/?

yes, I have it.
> 

>>> 

>> Hi Pradeep Kumar Chitrapu,

>> For QCA6390, it is single_pdev, the pdev support all 2G/5G/6G,

>> Is it have 3 pdev/ath11k in your chip for 2G/5G/6G?

>> And the pdev/ath11k of 6G have WMI_HOST_WLAN_5G_CAP of 

>> cap->supported_bands?

>>> [...]

> Yes, ath11k receives WMI_HOST_WLAN_5G_CAP from firmware for 6G as well.

Ok, so it need to add logic for single_pdev for it(single_pdev is added 
in 
https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/drivers/net/wireless/ath/ath11k?id=5f859bc02c7bc7a4094bfba0b4ed145edd7661f2, 
it is later than your 6G patches), maybe I will add it later.
Wen Gong Sept. 16, 2020, 3:56 a.m. UTC | #5
On 2020-06-03 08:17, Pradeep Kumar Chitrapu wrote:
> This patch adds 6GHz band support and mac80211 registration for
> the 6G phy radio.
> 
> Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
> ---
> v5:
>  - do not add ht/vht caps in 6ghz band.
> v3:
>  - update 6GHz starting frequency as defined in IEEE P802.11ax/D6.1
> 
>  drivers/net/wireless/ath/ath11k/core.h |  6 +-
>  drivers/net/wireless/ath/ath11k/mac.c  | 93 +++++++++++++++++++++-----
>  drivers/net/wireless/ath/ath11k/wmi.c  | 16 ++++-
>  3 files changed, 94 insertions(+), 21 deletions(-)
> 
[...]
> diff --git a/drivers/net/wireless/ath/ath11k/wmi.c
> b/drivers/net/wireless/ath/ath11k/wmi.c
> index c2a972377687..291fb274134f 100644
> --- a/drivers/net/wireless/ath/ath11k/wmi.c
> +++ b/drivers/net/wireless/ath/ath11k/wmi.c
> @@ -368,6 +368,17 @@ ath11k_pull_mac_phy_cap_svc_ready_ext(struct
> ath11k_pdev_wmi *wmi_handle,
>  	memcpy(&cap_band->he_ppet, &mac_phy_caps->he_ppet5g,
>  	       sizeof(struct ath11k_ppe_threshold));
> 
> +	cap_band = &pdev_cap->band[NL80211_BAND_6GHZ];
> +	cap_band->max_bw_supported = mac_phy_caps->max_bw_supported_5g;
> +	cap_band->ht_cap_info = mac_phy_caps->ht_cap_info_5g;
> +	cap_band->he_cap_info[0] = mac_phy_caps->he_cap_info_5g;
> +	cap_band->he_cap_info[1] = mac_phy_caps->he_cap_info_5g_ext;
> +	cap_band->he_mcs = mac_phy_caps->he_supp_mcs_5g;
> +	memcpy(cap_band->he_cap_phy_info, &mac_phy_caps->he_cap_phy_info_5g,
> +	       sizeof(u32) * PSOC_HOST_MAX_PHY_SIZE);
> +	memcpy(&cap_band->he_ppet, &mac_phy_caps->he_ppet5g,
> +	       sizeof(struct ath11k_ppe_threshold));
> +
>  	return 0;
>  }
> 
I want to move this under below check(if (mac_phy_caps->supported_bands 
& WMI_HOST_WLAN_5G_CAP) ),
becuase single_pdev 
introduced(https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/drivers/net/wireless/ath/ath11k?id=5f859bc02c7bc7a4094bfba0b4ed145edd7661f2)

Is it will distrub your original logic?
[...]
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index 7e51445cfa20..602a7fd765df 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -353,7 +353,10 @@  struct ath11k_sta {
 #endif
 };
 
-#define ATH11K_NUM_CHANS 41
+#define ATH11K_MIN_5G_FREQ 4150
+#define ATH11K_MIN_6G_FREQ 5945
+#define ATH11K_MAX_6G_FREQ 7115
+#define ATH11K_NUM_CHANS 100
 #define ATH11K_MAX_5G_CHAN 173
 
 enum ath11k_state {
@@ -431,6 +434,7 @@  struct ath11k {
 	u32 vht_cap_info;
 	struct ath11k_he ar_he;
 	enum ath11k_state state;
+	bool supports_6ghz;
 	struct {
 		struct completion started;
 		struct completion completed;
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 45ffe9543c63..6e4096f6bda6 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -205,6 +205,17 @@  ath11k_phymodes[NUM_NL80211_BANDS][ATH11K_CHAN_WIDTH_NUM] = {
 			[NL80211_CHAN_WIDTH_160] = MODE_11AX_HE160,
 			[NL80211_CHAN_WIDTH_80P80] = MODE_11AX_HE80_80,
 	},
+	[NL80211_BAND_6GHZ] = {
+			[NL80211_CHAN_WIDTH_5] = MODE_UNKNOWN,
+			[NL80211_CHAN_WIDTH_10] = MODE_UNKNOWN,
+			[NL80211_CHAN_WIDTH_20_NOHT] = MODE_11AX_HE20,
+			[NL80211_CHAN_WIDTH_20] = MODE_11AX_HE20,
+			[NL80211_CHAN_WIDTH_40] = MODE_11AX_HE40,
+			[NL80211_CHAN_WIDTH_80] = MODE_11AX_HE80,
+			[NL80211_CHAN_WIDTH_160] = MODE_11AX_HE160,
+			[NL80211_CHAN_WIDTH_80P80] = MODE_11AX_HE80_80,
+	},
+
 };
 
 const struct htt_rx_ring_tlv_filter ath11k_mac_mon_status_filter_default = {
@@ -1560,6 +1571,7 @@  static void ath11k_peer_assoc_h_phymode(struct ath11k *ar,
 		}
 		break;
 	case NL80211_BAND_5GHZ:
+	case NL80211_BAND_6GHZ:
 		/* Check HE first */
 		if (sta->he_cap.has_he) {
 			phymode = ath11k_mac_get_phymode_he(ar, sta);
@@ -3482,7 +3494,7 @@  static void ath11k_mac_setup_ht_vht_cap(struct ath11k *ar,
 						    rate_cap_rx_chainmask);
 	}
 
-	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP) {
+	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP && !ar->supports_6ghz) {
 		band = &ar->mac.sbands[NL80211_BAND_5GHZ];
 		ht_cap = cap->band[NL80211_BAND_5GHZ].ht_cap_info;
 		if (ht_cap_info)
@@ -3748,6 +3760,17 @@  static void ath11k_mac_setup_he_cap(struct ath11k *ar,
 		band->iftype_data = ar->mac.iftype[NL80211_BAND_5GHZ];
 		band->n_iftype_data = count;
 	}
+
+	if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP &&
+	    ar->supports_6ghz) {
+		count = ath11k_mac_copy_he_cap(ar, cap,
+					       ar->mac.iftype[NL80211_BAND_6GHZ],
+					       NL80211_BAND_6GHZ);
+		band = &ar->mac.sbands[NL80211_BAND_6GHZ];
+		band->iftype_data = ar->mac.iftype[NL80211_BAND_6GHZ];
+		band->n_iftype_data = count;
+	}
+
 }
 
 static int __ath11k_set_antenna(struct ath11k *ar, u32 tx_ant, u32 rx_ant)
@@ -4190,6 +4213,12 @@  ath11k_mac_setup_vdev_create_params(struct ath11k_vif *arvif,
 		params->chains[NL80211_BAND_5GHZ].tx = ar->num_tx_chains;
 		params->chains[NL80211_BAND_5GHZ].rx = ar->num_rx_chains;
 	}
+	if (pdev->cap.supported_bands & WMI_HOST_WLAN_5G_CAP &&
+	    ar->supports_6ghz) {
+		params->chains[NL80211_BAND_6GHZ].tx = ar->num_tx_chains;
+		params->chains[NL80211_BAND_6GHZ].rx = ar->num_rx_chains;
+	}
+
 }
 
 static u32
@@ -5322,7 +5351,7 @@  ath11k_mac_get_single_legacy_rate(struct ath11k *ar,
 
 	rate_idx = ffs(mask->control[band].legacy) - 1;
 
-	if (band == NL80211_BAND_5GHZ)
+	if (band == NL80211_BAND_5GHZ || band == NL80211_BAND_6GHZ)
 		rate_idx += ATH11K_MAC_FIRST_OFDM_RATE_IDX;
 
 	hw_rate = ath11k_legacy_rates[rate_idx].hw_value;
@@ -5788,7 +5817,8 @@  static int ath11k_mac_setup_channels_rates(struct ath11k *ar,
 	void *channels;
 
 	BUILD_BUG_ON((ARRAY_SIZE(ath11k_2ghz_channels) +
-		      ARRAY_SIZE(ath11k_5ghz_channels)) !=
+		      ARRAY_SIZE(ath11k_5ghz_channels) +
+		      ARRAY_SIZE(ath11k_6ghz_channels)) !=
 		     ATH11K_NUM_CHANS);
 
 	reg_cap = &ar->ab->hal_reg_cap[ar->pdev_idx];
@@ -5801,6 +5831,7 @@  static int ath11k_mac_setup_channels_rates(struct ath11k *ar,
 			return -ENOMEM;
 
 		band = &ar->mac.sbands[NL80211_BAND_2GHZ];
+		band->band = NL80211_BAND_2GHZ;
 		band->n_channels = ARRAY_SIZE(ath11k_2ghz_channels);
 		band->channels = channels;
 		band->n_bitrates = ath11k_g_rates_size;
@@ -5812,23 +5843,48 @@  static int ath11k_mac_setup_channels_rates(struct ath11k *ar,
 	}
 
 	if (supported_bands & WMI_HOST_WLAN_5G_CAP) {
-		channels = kmemdup(ath11k_5ghz_channels,
-				   sizeof(ath11k_5ghz_channels),
-				   GFP_KERNEL);
-		if (!channels) {
-			kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels);
-			return -ENOMEM;
+		if (reg_cap->high_5ghz_chan >= ATH11K_MAX_6G_FREQ) {
+			channels = kmemdup(ath11k_6ghz_channels,
+					   sizeof(ath11k_6ghz_channels), GFP_KERNEL);
+			if (!channels) {
+				kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels);
+				return -ENOMEM;
+			}
+
+			ar->supports_6ghz = true;
+			band = &ar->mac.sbands[NL80211_BAND_6GHZ];
+			band->band = NL80211_BAND_6GHZ;
+			band->n_channels = ARRAY_SIZE(ath11k_6ghz_channels);
+			band->channels = channels;
+			band->n_bitrates = ath11k_a_rates_size;
+			band->bitrates = ath11k_a_rates;
+			ar->hw->wiphy->bands[NL80211_BAND_6GHZ] = band;
+			ath11k_mac_update_ch_list(ar, band,
+						  reg_cap->low_5ghz_chan,
+						  reg_cap->high_5ghz_chan);
 		}
 
-		band = &ar->mac.sbands[NL80211_BAND_5GHZ];
-		band->n_channels = ARRAY_SIZE(ath11k_5ghz_channels);
-		band->channels = channels;
-		band->n_bitrates = ath11k_a_rates_size;
-		band->bitrates = ath11k_a_rates;
-		ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band;
-		ath11k_mac_update_ch_list(ar, band,
-					  reg_cap->low_5ghz_chan,
-					  reg_cap->high_5ghz_chan);
+		if (reg_cap->low_5ghz_chan < ATH11K_MIN_6G_FREQ) {
+			channels = kmemdup(ath11k_5ghz_channels,
+					   sizeof(ath11k_5ghz_channels),
+					   GFP_KERNEL);
+			if (!channels) {
+				kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels);
+				kfree(ar->mac.sbands[NL80211_BAND_6GHZ].channels);
+				return -ENOMEM;
+			}
+
+			band = &ar->mac.sbands[NL80211_BAND_5GHZ];
+			band->band = NL80211_BAND_5GHZ;
+			band->n_channels = ARRAY_SIZE(ath11k_5ghz_channels);
+			band->channels = channels;
+			band->n_bitrates = ath11k_a_rates_size;
+			band->bitrates = ath11k_a_rates;
+			ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band;
+			ath11k_mac_update_ch_list(ar, band,
+						  reg_cap->low_5ghz_chan,
+						  reg_cap->high_5ghz_chan);
+		}
 	}
 
 	return 0;
@@ -5882,6 +5938,7 @@  static void __ath11k_mac_unregister(struct ath11k *ar)
 
 	kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels);
 	kfree(ar->mac.sbands[NL80211_BAND_5GHZ].channels);
+	kfree(ar->mac.sbands[NL80211_BAND_6GHZ].channels);
 
 	SET_IEEE80211_DEV(ar->hw, NULL);
 }
diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c
index c2a972377687..291fb274134f 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -368,6 +368,17 @@  ath11k_pull_mac_phy_cap_svc_ready_ext(struct ath11k_pdev_wmi *wmi_handle,
 	memcpy(&cap_band->he_ppet, &mac_phy_caps->he_ppet5g,
 	       sizeof(struct ath11k_ppe_threshold));
 
+	cap_band = &pdev_cap->band[NL80211_BAND_6GHZ];
+	cap_band->max_bw_supported = mac_phy_caps->max_bw_supported_5g;
+	cap_band->ht_cap_info = mac_phy_caps->ht_cap_info_5g;
+	cap_band->he_cap_info[0] = mac_phy_caps->he_cap_info_5g;
+	cap_band->he_cap_info[1] = mac_phy_caps->he_cap_info_5g_ext;
+	cap_band->he_mcs = mac_phy_caps->he_supp_mcs_5g;
+	memcpy(cap_band->he_cap_phy_info, &mac_phy_caps->he_cap_phy_info_5g,
+	       sizeof(u32) * PSOC_HOST_MAX_PHY_SIZE);
+	memcpy(&cap_band->he_ppet, &mac_phy_caps->he_ppet5g,
+	       sizeof(struct ath11k_ppe_threshold));
+
 	return 0;
 }
 
@@ -5206,9 +5217,10 @@  static void ath11k_mgmt_rx_event(struct ath11k_base *ab, struct sk_buff *skb)
 		goto exit;
 	}
 
-	if (rx_ev.phy_mode == MODE_11B && status->band == NL80211_BAND_5GHZ)
+	if (rx_ev.phy_mode == MODE_11B &&
+	    (status->band == NL80211_BAND_5GHZ || status->band == NL80211_BAND_6GHZ))
 		ath11k_dbg(ab, ATH11K_DBG_WMI,
-			   "wmi mgmt rx 11b (CCK) on 5GHz\n");
+			   "wmi mgmt rx 11b (CCK) on 5/6GHz, band = %d\n", status->band);
 
 	sband = &ar->mac.sbands[status->band];