diff mbox series

[12/12] ath11k: set the multiple bssid hw cap

Message ID 20200604070952.15481-13-john@phrozen.org (mailing list archive)
State New, archived
Headers show
Series mac80211: add multiple bssid support | expand

Commit Message

John Crispin June 4, 2020, 7:09 a.m. UTC
This patch sets the SUPPORTS_MULTI_BSSID inside ath11k.

Signed-off-by: John Crispin <john@phrozen.org>
---
 drivers/net/wireless/ath/ath11k/mac.c | 4 ++++
 drivers/net/wireless/ath/ath11k/wmi.h | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

Comments

Kalle Valo June 8, 2020, 11:09 a.m. UTC | #1
John Crispin <john@phrozen.org> writes:

> This patch sets the SUPPORTS_MULTI_BSSID inside ath11k.
>
> Signed-off-by: John Crispin <john@phrozen.org>

On what hardware and firmware did you test this?

> --- a/drivers/net/wireless/ath/ath11k/wmi.h
> +++ b/drivers/net/wireless/ath/ath11k/wmi.h
> @@ -109,8 +109,8 @@ enum {
>  
>  enum {
>  	WMI_HOST_VDEV_FLAGS_NON_MBSSID_AP	= 1,
> -	WMI_HOST_VDEV_FLAGS_TRANSMIT_AP		= 2,
> -	WMI_HOST_VDEV_FLAGS_NON_TRANSMIT_AP	= 4,
> +	WMI_HOST_VDEV_FLAGS_NON_TRANSMIT_AP	= 2,
> +	WMI_HOST_VDEV_FLAGS_TRANSMIT_AP		= 4,

I wonder if this is a safe thing to do? Do all firmware branches use
these new values?
John Crispin June 8, 2020, 11:29 a.m. UTC | #2
On 08.06.20 13:09, Kalle Valo wrote:
> John Crispin <john@phrozen.org> writes:
> 
>> This patch sets the SUPPORTS_MULTI_BSSID inside ath11k.
>>
>> Signed-off-by: John Crispin <john@phrozen.org>
> 
> On what hardware and firmware did you test this?
> 
>> --- a/drivers/net/wireless/ath/ath11k/wmi.h
>> +++ b/drivers/net/wireless/ath/ath11k/wmi.h
>> @@ -109,8 +109,8 @@ enum {
>>   
>>   enum {
>>   	WMI_HOST_VDEV_FLAGS_NON_MBSSID_AP	= 1,
>> -	WMI_HOST_VDEV_FLAGS_TRANSMIT_AP		= 2,
>> -	WMI_HOST_VDEV_FLAGS_NON_TRANSMIT_AP	= 4,
>> +	WMI_HOST_VDEV_FLAGS_NON_TRANSMIT_AP	= 2,
>> +	WMI_HOST_VDEV_FLAGS_TRANSMIT_AP		= 4,
> 
> I wonder if this is a safe thing to do? Do all firmware branches use
> these new values?
> 

Hi,
looks like i folded the fix patch into the wrong patch. these values get 
added in this same patchset. Johannes commented on the nl80211 part 
already and i will send out a V2 this week.
	John
Rajkumar Manoharan June 11, 2020, 4:44 a.m. UTC | #3
On 2020-06-04 00:09, John Crispin wrote:
> This patch sets the SUPPORTS_MULTI_BSSID inside ath11k.
> 
> Signed-off-by: John Crispin <john@phrozen.org>
> 
[...]

> diff --git a/drivers/net/wireless/ath/ath11k/wmi.h
> b/drivers/net/wireless/ath/ath11k/wmi.h
> index 548fa05cb1f6..14cffda43ed0 100644
> --- a/drivers/net/wireless/ath/ath11k/wmi.h
> +++ b/drivers/net/wireless/ath/ath11k/wmi.h
> @@ -109,8 +109,8 @@ enum {
> 
>  enum {
>  	WMI_HOST_VDEV_FLAGS_NON_MBSSID_AP	= 1,
> -	WMI_HOST_VDEV_FLAGS_TRANSMIT_AP		= 2,
> -	WMI_HOST_VDEV_FLAGS_NON_TRANSMIT_AP	= 4,
> +	WMI_HOST_VDEV_FLAGS_NON_TRANSMIT_AP	= 2,
> +	WMI_HOST_VDEV_FLAGS_TRANSMIT_AP		= 4,
>  };
> 
John,

Not sure how you got the above values? Please confirm.

#define VDEV_FLAGS_NON_MBSSID_AP      0x00000001   /* legacy AP */
#define VDEV_FLAGS_TRANSMIT_AP        0x00000002   /* indicate if this 
vdev is transmitting AP */
#define VDEV_FLAGS_NON_TRANSMIT_AP    0x00000004   /* explicitly 
indicate this vdev is non-transmitting AP */
#define VDEV_FLAGS_EMA_MODE           0x00000008   /* vdev is EMA and 
supports multiple beacon profiles. */

-Rajkumar
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 8ec11c654b3e..55876600b7c5 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -5980,17 +5980,20 @@  static int ath11k_mac_setup_channels_rates(struct ath11k *ar,
 
 static const u8 ath11k_if_types_ext_capa[] = {
 	[0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING,
+	[2] = WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT,
 	[7] = WLAN_EXT_CAPA8_OPMODE_NOTIF,
 };
 
 static const u8 ath11k_if_types_ext_capa_sta[] = {
 	[0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING,
+	[2] = WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT,
 	[7] = WLAN_EXT_CAPA8_OPMODE_NOTIF,
 	[9] = WLAN_EXT_CAPA10_TWT_REQUESTER_SUPPORT,
 };
 
 static const u8 ath11k_if_types_ext_capa_ap[] = {
 	[0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING,
+	[2] = WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT,
 	[7] = WLAN_EXT_CAPA8_OPMODE_NOTIF,
 	[9] = WLAN_EXT_CAPA10_TWT_RESPONDER_SUPPORT,
 };
@@ -6101,6 +6104,7 @@  static int __ath11k_mac_register(struct ath11k *ar)
 	ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
 	ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
 	ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);
+	ieee80211_hw_set(ar->hw, SUPPORTS_MULTI_BSSID);
 	if (ht_cap & WMI_HT_CAP_ENABLED) {
 		ieee80211_hw_set(ar->hw, AMPDU_AGGREGATION);
 		ieee80211_hw_set(ar->hw, TX_AMPDU_SETUP_IN_HW);
diff --git a/drivers/net/wireless/ath/ath11k/wmi.h b/drivers/net/wireless/ath/ath11k/wmi.h
index 548fa05cb1f6..14cffda43ed0 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.h
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
@@ -109,8 +109,8 @@  enum {
 
 enum {
 	WMI_HOST_VDEV_FLAGS_NON_MBSSID_AP	= 1,
-	WMI_HOST_VDEV_FLAGS_TRANSMIT_AP		= 2,
-	WMI_HOST_VDEV_FLAGS_NON_TRANSMIT_AP	= 4,
+	WMI_HOST_VDEV_FLAGS_NON_TRANSMIT_AP	= 2,
+	WMI_HOST_VDEV_FLAGS_TRANSMIT_AP		= 4,
 };
 
 /*