diff mbox series

ath10k: enable advertising support for channels 32, 68 and 98

Message ID 20200327093147.189390-1-robert.marko@sartura.hr (mailing list archive)
State New, archived
Headers show
Series ath10k: enable advertising support for channels 32, 68 and 98 | expand

Commit Message

Robert Marko March 27, 2020, 9:31 a.m. UTC
Enable advertising support for 5G channels: 32, 68 and 96.
These channels are legal and available for use in ETSI countries.
So lets advertise these and they will be available in accordance with the regulatory domain used.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Cc: Luka Perkov <luka.perkov@sartura.hr>
---
 drivers/net/wireless/ath/ath10k/core.h | 2 +-
 drivers/net/wireless/ath/ath10k/mac.c  | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

Comments

Robert Marko June 4, 2020, 12:07 p.m. UTC | #1
On Fri, Mar 27, 2020 at 10:31 AM Robert Marko <robert.marko@sartura.hr> wrote:
>
> Enable advertising support for 5G channels: 32, 68 and 96.
> These channels are legal and available for use in ETSI countries.
> So lets advertise these and they will be available in accordance with the regulatory domain used.
Hi, are there are remarks on this patch?

Regards
Robert
>
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> Cc: Luka Perkov <luka.perkov@sartura.hr>
> ---
>  drivers/net/wireless/ath/ath10k/core.h | 2 +-
>  drivers/net/wireless/ath/ath10k/mac.c  | 3 +++
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
> index 5101bf2b5b15..480efaa1278c 100644
> --- a/drivers/net/wireless/ath/ath10k/core.h
> +++ b/drivers/net/wireless/ath/ath10k/core.h
> @@ -37,7 +37,7 @@
>  #define WMI_READY_TIMEOUT (5 * HZ)
>  #define ATH10K_FLUSH_TIMEOUT_HZ (5 * HZ)
>  #define ATH10K_CONNECTION_LOSS_HZ (3 * HZ)
> -#define ATH10K_NUM_CHANS 41
> +#define ATH10K_NUM_CHANS 44
>  #define ATH10K_MAX_5G_CHAN 173
>
>  /* Antenna noise floor */
> diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
> index 7fee35ff966b..f98422427b27 100644
> --- a/drivers/net/wireless/ath/ath10k/mac.c
> +++ b/drivers/net/wireless/ath/ath10k/mac.c
> @@ -8363,6 +8363,7 @@ static const struct ieee80211_channel ath10k_2ghz_channels[] = {
>  };
>
>  static const struct ieee80211_channel ath10k_5ghz_channels[] = {
> +       CHAN5G(32, 5160, 0),
>         CHAN5G(36, 5180, 0),
>         CHAN5G(40, 5200, 0),
>         CHAN5G(44, 5220, 0),
> @@ -8371,6 +8372,8 @@ static const struct ieee80211_channel ath10k_5ghz_channels[] = {
>         CHAN5G(56, 5280, 0),
>         CHAN5G(60, 5300, 0),
>         CHAN5G(64, 5320, 0),
> +       CHAN5G(68, 5340, 0),
> +       CHAN5G(96, 5480, 0),
>         CHAN5G(100, 5500, 0),
>         CHAN5G(104, 5520, 0),
>         CHAN5G(108, 5540, 0),
> --
> 2.26.0
>
Kalle Valo June 9, 2020, 11:57 a.m. UTC | #2
Robert Marko <robert.marko@sartura.hr> writes:

> Enable advertising support for 5G channels: 32, 68 and 96.
> These channels are legal and available for use in ETSI countries.
> So lets advertise these and they will be available in accordance with the regulatory domain used.
>
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> Cc: Luka Perkov <luka.perkov@sartura.hr>

What's the use case for this? I was told that the IEEE standard does not
define these channels, that's why I'm asking for more information.

On what hardware and firmware did you test this? It might be that not
all hardware or firmware support this.

There was a concern if this slows down scanning due to more channels
being scanned, but I haven't analysed that yet. Did you measure that?

Also please CC linux-wireless on ath10k patches. Otherwise patchwork
won't see them and it won't be on my radar:

https://wireless.wiki.kernel.org/en/users/drivers/ath10k/submittingpatches
Robert Marko June 10, 2020, 12:18 p.m. UTC | #3
On Tue, Jun 9, 2020 at 1:58 PM Kalle Valo <kvalo@codeaurora.org> wrote:
>
> Robert Marko <robert.marko@sartura.hr> writes:
>
> > Enable advertising support for 5G channels: 32, 68 and 96.
> > These channels are legal and available for use in ETSI countries.
> > So lets advertise these and they will be available in accordance with the regulatory domain used.
> >
> > Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> > Cc: Luka Perkov <luka.perkov@sartura.hr>
>
> What's the use case for this? I was told that the IEEE standard does not
> define these channels, that's why I'm asking for more information.
The primary use case is to enable more of the spectrum to be used, since in
ETSI countries it's legal.
Even 5GHz is getting pretty crowded in cities.
>
> On what hardware and firmware did you test this? It might be that not
> all hardware or firmware support this.
It's tested on IPQ4018, 10.4-3.6-00140 FW if I remember correctly as
some time has passed.
If HW does not support it then BDF-s and caldata should disable it?
>
> There was a concern if this slows down scanning due to more channels
> being scanned, but I haven't analysed that yet. Did you measure that?
No, I have not thought of that.
Even if it does, I don't think that 3 channels more would drastically
increase scan time.
>
> Also please CC linux-wireless on ath10k patches. Otherwise patchwork
> won't see them and it won't be on my radar:
Thanks, completely forgot to do it.
>
> https://wireless.wiki.kernel.org/en/users/drivers/ath10k/submittingpatches
>
> --
> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Markus Theil June 11, 2020, 11:29 a.m. UTC | #4
On 3/27/20 10:31 AM, Robert Marko wrote:
> Enable advertising support for 5G channels: 32, 68 and 96.
> These channels are legal and available for use in ETSI countries.
> So lets advertise these and they will be available in accordance with the regulatory domain used.
>
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> Cc: Luka Perkov <luka.perkov@sartura.hr>
> ---
>  drivers/net/wireless/ath/ath10k/core.h | 2 +-
>  drivers/net/wireless/ath/ath10k/mac.c  | 3 +++
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
> index 5101bf2b5b15..480efaa1278c 100644
> --- a/drivers/net/wireless/ath/ath10k/core.h
> +++ b/drivers/net/wireless/ath/ath10k/core.h
> @@ -37,7 +37,7 @@
>  #define WMI_READY_TIMEOUT (5 * HZ)
>  #define ATH10K_FLUSH_TIMEOUT_HZ (5 * HZ)
>  #define ATH10K_CONNECTION_LOSS_HZ (3 * HZ)
> -#define ATH10K_NUM_CHANS 41
> +#define ATH10K_NUM_CHANS 44
>  #define ATH10K_MAX_5G_CHAN 173
>  
>  /* Antenna noise floor */
> diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
> index 7fee35ff966b..f98422427b27 100644
> --- a/drivers/net/wireless/ath/ath10k/mac.c
> +++ b/drivers/net/wireless/ath/ath10k/mac.c
> @@ -8363,6 +8363,7 @@ static const struct ieee80211_channel ath10k_2ghz_channels[] = {
>  };
>  
>  static const struct ieee80211_channel ath10k_5ghz_channels[] = {
> +	CHAN5G(32, 5160, 0),
>  	CHAN5G(36, 5180, 0),
>  	CHAN5G(40, 5200, 0),
>  	CHAN5G(44, 5220, 0),
> @@ -8371,6 +8372,8 @@ static const struct ieee80211_channel ath10k_5ghz_channels[] = {
>  	CHAN5G(56, 5280, 0),
>  	CHAN5G(60, 5300, 0),
>  	CHAN5G(64, 5320, 0),
> +	CHAN5G(68, 5340, 0),
> +	CHAN5G(96, 5480, 0),
>  	CHAN5G(100, 5500, 0),
>  	CHAN5G(104, 5520, 0),
>  	CHAN5G(108, 5540, 0),

Hi, your patch is incomplete. Mgmt frames cannot be received on channel 32, because of the following lines in wmi.c:

	/* Hardware can Rx CCK rates on 5GHz. In that case phy_mode is set to
	 * MODE_11B. This means phy_mode is not a reliable source for the band
	 * of mgmt rx.
	 */
	if (channel >= 1 && channel <= 14) {
		status->band = NL80211_BAND_2GHZ;
	} else if (channel >= 36 && channel <= ATH10K_MAX_5G_CHAN) {
		status->band = NL80211_BAND_5GHZ;
	} else {
		/* Shouldn't happen unless list of advertised channels to
		 * mac80211 has been changed.
		 */
		WARN_ON_ONCE(1);
		dev_kfree_skb(skb);
		return 0;
	}

Have you tested this patch?

Markus
Markus Theil June 11, 2020, 12:05 p.m. UTC | #5
On 6/11/20 1:29 PM, Markus Theil wrote:
> On 3/27/20 10:31 AM, Robert Marko wrote:
>> Enable advertising support for 5G channels: 32, 68 and 96.
>> These channels are legal and available for use in ETSI countries.
>> So lets advertise these and they will be available in accordance with the regulatory domain used.
>>
>> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
>> Cc: Luka Perkov <luka.perkov@sartura.hr>
>> ---
>>  drivers/net/wireless/ath/ath10k/core.h | 2 +-
>>  drivers/net/wireless/ath/ath10k/mac.c  | 3 +++
>>  2 files changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
>> index 5101bf2b5b15..480efaa1278c 100644
>> --- a/drivers/net/wireless/ath/ath10k/core.h
>> +++ b/drivers/net/wireless/ath/ath10k/core.h
>> @@ -37,7 +37,7 @@
>>  #define WMI_READY_TIMEOUT (5 * HZ)
>>  #define ATH10K_FLUSH_TIMEOUT_HZ (5 * HZ)
>>  #define ATH10K_CONNECTION_LOSS_HZ (3 * HZ)
>> -#define ATH10K_NUM_CHANS 41
>> +#define ATH10K_NUM_CHANS 44
>>  #define ATH10K_MAX_5G_CHAN 173
>>  
>>  /* Antenna noise floor */
>> diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
>> index 7fee35ff966b..f98422427b27 100644
>> --- a/drivers/net/wireless/ath/ath10k/mac.c
>> +++ b/drivers/net/wireless/ath/ath10k/mac.c
>> @@ -8363,6 +8363,7 @@ static const struct ieee80211_channel ath10k_2ghz_channels[] = {
>>  };
>>  
>>  static const struct ieee80211_channel ath10k_5ghz_channels[] = {
>> +	CHAN5G(32, 5160, 0),
>>  	CHAN5G(36, 5180, 0),
>>  	CHAN5G(40, 5200, 0),
>>  	CHAN5G(44, 5220, 0),
>> @@ -8371,6 +8372,8 @@ static const struct ieee80211_channel ath10k_5ghz_channels[] = {
>>  	CHAN5G(56, 5280, 0),
>>  	CHAN5G(60, 5300, 0),
>>  	CHAN5G(64, 5320, 0),
>> +	CHAN5G(68, 5340, 0),
>> +	CHAN5G(96, 5480, 0),
>>  	CHAN5G(100, 5500, 0),
>>  	CHAN5G(104, 5520, 0),
>>  	CHAN5G(108, 5540, 0),
> Hi, your patch is incomplete. Mgmt frames cannot be received on channel 32, because of the following lines in wmi.c:
>
> 	/* Hardware can Rx CCK rates on 5GHz. In that case phy_mode is set to
> 	 * MODE_11B. This means phy_mode is not a reliable source for the band
> 	 * of mgmt rx.
> 	 */
> 	if (channel >= 1 && channel <= 14) {
> 		status->band = NL80211_BAND_2GHZ;
> 	} else if (channel >= 36 && channel <= ATH10K_MAX_5G_CHAN) {
> 		status->band = NL80211_BAND_5GHZ;
> 	} else {
> 		/* Shouldn't happen unless list of advertised channels to
> 		 * mac80211 has been changed.
> 		 */
> 		WARN_ON_ONCE(1);
> 		dev_kfree_skb(skb);
> 		return 0;
> 	}
>
> Have you tested this patch?
I've tested your patch (changed 36 to 32 in wmi.c). And channel 32 does
not work for me, even with that change.
Nevertheless, I was able to use channels 68 and 96 between two ath10k
cards in AP and STA mode. I do not know,
why channel 32 does not work.
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index 5101bf2b5b15..480efaa1278c 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -37,7 +37,7 @@ 
 #define WMI_READY_TIMEOUT (5 * HZ)
 #define ATH10K_FLUSH_TIMEOUT_HZ (5 * HZ)
 #define ATH10K_CONNECTION_LOSS_HZ (3 * HZ)
-#define ATH10K_NUM_CHANS 41
+#define ATH10K_NUM_CHANS 44
 #define ATH10K_MAX_5G_CHAN 173
 
 /* Antenna noise floor */
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 7fee35ff966b..f98422427b27 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -8363,6 +8363,7 @@  static const struct ieee80211_channel ath10k_2ghz_channels[] = {
 };
 
 static const struct ieee80211_channel ath10k_5ghz_channels[] = {
+	CHAN5G(32, 5160, 0),
 	CHAN5G(36, 5180, 0),
 	CHAN5G(40, 5200, 0),
 	CHAN5G(44, 5220, 0),
@@ -8371,6 +8372,8 @@  static const struct ieee80211_channel ath10k_5ghz_channels[] = {
 	CHAN5G(56, 5280, 0),
 	CHAN5G(60, 5300, 0),
 	CHAN5G(64, 5320, 0),
+	CHAN5G(68, 5340, 0),
+	CHAN5G(96, 5480, 0),
 	CHAN5G(100, 5500, 0),
 	CHAN5G(104, 5520, 0),
 	CHAN5G(108, 5540, 0),