2018-07-30 17:15:45

by Sven Eckelmann

[permalink] [raw]
Subject: [PATCH] ath10k: Limit available channels via DT ieee80211-freq-limit

Tri-band devices (1x 2.4GHz + 2x 5GHz) often incorporate special filters in
the RX and TX path. These filtered channel can in theory still be used by
the hardware but the signal strength is reduced so much that it makes no
sense.

There is already a DT property to limit the available channels but ath10k
has to manually call this functionality to limit the currrently set wiphy
channels further.

Signed-off-by: Sven Eckelmann <[email protected]>
---
drivers/net/wireless/ath/ath10k/mac.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 95243b48a179..8ed37ffd320f 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -18,6 +18,7 @@

#include "mac.h"

+#include <net/cfg80211.h>
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <linux/acpi.h>
@@ -8306,6 +8307,7 @@ int ath10k_mac_register(struct ath10k *ar)
ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band;
}

+ wiphy_read_of_freq_limits(ar->hw->wiphy);
ath10k_mac_setup_ht_vht_cap(ar);

ar->hw->wiphy->interface_modes =
--
2.11.0


2018-07-30 20:32:33

by Arend Van Spriel

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Limit available channels via DT ieee80211-freq-limit

On 7/30/2018 8:54 PM, Arend van Spriel wrote:
> + Rafał
>
> On 7/30/2018 5:39 PM, Sven Eckelmann wrote:
>> Tri-band devices (1x 2.4GHz + 2x 5GHz) often incorporate special
>> filters in
>> the RX and TX path. These filtered channel can in theory still be used by
>> the hardware but the signal strength is reduced so much that it makes no
>> sense.
>>
>> There is already a DT property to limit the available channels but ath10k
>> has to manually call this functionality to limit the currrently set wiphy
>> channels further.
>
> Wondering whether we can call it in wiphy_register() like below. Not
> sure why we did not explore that with the introduction of it by Rafał.
> Maybe he remembers. I did not find something in that direction in
> patchwork, but may have missed it. I know mt76 drops the band reference
> if it ends up with all channels disabled. Maybe that was the reason.

Sorry for sending this twice. My wifi connection was quirky.

Gr. AvS

2018-07-30 20:31:06

by Arend Van Spriel

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Limit available channels via DT ieee80211-freq-limit

+ Rafał

On 7/30/2018 5:39 PM, Sven Eckelmann wrote:
> Tri-band devices (1x 2.4GHz + 2x 5GHz) often incorporate special filters in
> the RX and TX path. These filtered channel can in theory still be used by
> the hardware but the signal strength is reduced so much that it makes no
> sense.
>
> There is already a DT property to limit the available channels but ath10k
> has to manually call this functionality to limit the currrently set wiphy
> channels further.

Wondering whether we can call it in wiphy_register() like below. Not
sure why we did not explore that with the introduction of it by Rafał.
Maybe he remembers. I did not find something in that direction in
patchwork, but may have missed it. I know mt76 drops the band reference
if it ends up with all channels disabled. Maybe that was the reason.

Regards,
Arend
---
diff --git a/net/wireless/core.c b/net/wireless/core.c
index a88551f..2e00cb1 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -742,6 +742,8 @@ int wiphy_register(struct wiphy *wiphy)
if (res)
return res;

+ wiphy_read_of_freq_limits(wiphy);
+
/* sanity check supported bands/channels */
for (band = 0; band < NUM_NL80211_BANDS; band++) {
u16 types = 0;

2018-07-30 20:26:39

by Arend Van Spriel

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Limit available channels via DT ieee80211-freq-limit

+ Rafał

On 7/30/2018 5:39 PM, Sven Eckelmann wrote:
> Tri-band devices (1x 2.4GHz + 2x 5GHz) often incorporate special filters in
> the RX and TX path. These filtered channel can in theory still be used by
> the hardware but the signal strength is reduced so much that it makes no
> sense.
>
> There is already a DT property to limit the available channels but ath10k
> has to manually call this functionality to limit the currrently set wiphy
> channels further.

Wondering whether we can call it in wiphy_register() like below. Not
sure why we did not explore that with the introduction of it by Rafał.
Maybe he remembers. I did not find something in that direction in
patchwork, but may have missed it. I know mt76 drops the band reference
if it ends up with all channels disabled. Maybe that was the reason.

Regards,
Arend
---
diff --git a/net/wireless/core.c b/net/wireless/core.c
index a88551f..2e00cb1 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -742,6 +742,8 @@ int wiphy_register(struct wiphy *wiphy)
if (res)
return res;

+ wiphy_read_of_freq_limits(wiphy);
+
/* sanity check supported bands/channels */
for (band = 0; band < NUM_NL80211_BANDS; band++) {
u16 types = 0;

2018-08-28 17:42:49

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Limit available channels via DT ieee80211-freq-limit

Sven Eckelmann <[email protected]> wrote:

> Tri-band devices (1x 2.4GHz + 2x 5GHz) often incorporate special filters in
> the RX and TX path. These filtered channel can in theory still be used by
> the hardware but the signal strength is reduced so much that it makes no
> sense.
>
> There is already a DT property to limit the available channels but ath10k
> has to manually call this functionality to limit the currrently set wiphy
> channels further.
>
> Signed-off-by: Sven Eckelmann <[email protected]>
> Signed-off-by: Kalle Valo <[email protected]>

Patch applied to ath-next branch of ath.git, thanks.

34d5629d2ca8 ath10k: limit available channels via DT ieee80211-freq-limit

--
https://patchwork.kernel.org/patch/10549245/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2018-08-24 15:21:10

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Limit available channels via DT ieee80211-freq-limit

Arend van Spriel <[email protected]> writes:

> + Rafa=C5=82
>
> On 7/30/2018 5:39 PM, Sven Eckelmann wrote:
>> Tri-band devices (1x 2.4GHz + 2x 5GHz) often incorporate special filters=
in
>> the RX and TX path. These filtered channel can in theory still be used by
>> the hardware but the signal strength is reduced so much that it makes no
>> sense.
>>
>> There is already a DT property to limit the available channels but ath10k
>> has to manually call this functionality to limit the currrently set wiphy
>> channels further.
>
> Wondering whether we can call it in wiphy_register() like below. Not
> sure why we did not explore that with the introduction of it by Rafa=C5=
=82.
> Maybe he remembers. I did not find something in that direction in
> patchwork, but may have missed it. I know mt76 drops the band
> reference if it ends up with all channels disabled. Maybe that was the
> reason.
>
> Regards,
> Arend
> ---
> diff --git a/net/wireless/core.c b/net/wireless/core.c
> index a88551f..2e00cb1 100644
> --- a/net/wireless/core.c
> +++ b/net/wireless/core.c
> @@ -742,6 +742,8 @@ int wiphy_register(struct wiphy *wiphy)
> if (res)
> return res;
>
> + wiphy_read_of_freq_limits(wiphy);
> +
> /* sanity check supported bands/channels */
> for (band =3D 0; band < NUM_NL80211_BANDS; band++) {
> u16 types =3D 0;

Nobody commented to this, so not sure what to do. Maybe it's best to
apply Sven's patch now and we can later move the call to cfg80211 if
needed. Sounds good?

--=20
Kalle Valo