diff mbox series

[RFT] ath9k: OF: qca,disable-(2|5)ghz => ieee80211-freq-limit

Message ID 20211029190933.26784-1-chunkeey@gmail.com
State RFC, archived
Delegated to: Christian Lamparter
Headers show
Series [RFT] ath9k: OF: qca,disable-(2|5)ghz => ieee80211-freq-limit | expand

Commit Message

Christian Lamparter Oct. 29, 2021, 7:09 p.m. UTC
OpenWrt maintains two special out-of-tree DT properties:
"qca,disable-5ghz" and "qca,disable-2ghz". These are implemented
in a mac80211 ath9k patch "550-ath9k-disable-bands-via-dt.patch".

With the things being what they are, now might be a good
point to switch the devices to the generic and upstream
"ieee80211-freq-limit" property. This property is much
broader and works differently. Instead of disabling the
drivers logic which would adds the affected band and
channels. It now disables all channels which are not
within the specified frequency range.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
---
 ...-ieee80211-freq-limit-property-to-li.patch | 29 +++++++++++++++++++
 .../550-ath9k-disable-bands-via-dt.patch      | 15 ----------
 .../patches/ath9k/552-ath9k-ahb_of.patch      |  8 +----
 target/linux/ath79/dts/ar9342_ubnt_wa.dtsi    |  2 +-
 .../linux/ath79/dts/ar9344_atheros_db120.dts  |  2 +-
 .../ath79/dts/ar9344_engenius_exx600.dtsi     |  4 +--
 target/linux/ath79/dts/ar9344_pcs_cap324.dts  |  4 +--
 .../boot/dts/lantiq/vr9_bt_homehub-v5a.dts    |  2 +-
 .../boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi   |  2 +-
 9 files changed, 38 insertions(+), 30 deletions(-)
 create mode 100644 package/kernel/mac80211/patches/ath9k/040-ath9k-support-DT-ieee80211-freq-limit-property-to-li.patch
 delete mode 100644 package/kernel/mac80211/patches/ath9k/550-ath9k-disable-bands-via-dt.patch

Comments

Martin Blumenstingl Oct. 29, 2021, 8:42 p.m. UTC | #1
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
Hi Christian,

thank you for working on this!

On Fri, Oct 29, 2021 at 10:13 PM Christian Lamparter <chunkeey@gmail.com> wrote:
>
> OpenWrt maintains two special out-of-tree DT properties:
> "qca,disable-5ghz" and "qca,disable-2ghz". These are implemented
> in a mac80211 ath9k patch "550-ath9k-disable-bands-via-dt.patch".
>
> With the things being what they are, now might be a good
> point to switch the devices to the generic and upstream
> "ieee80211-freq-limit" property. This property is much
> broader and works differently. Instead of disabling the
> drivers logic which would adds the affected band and
typo: s/adds/add/

> channels. It now disables all channels which are not
> within the specified frequency range.
>
> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
apart from above typo this is:
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

as well as:
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> # HH5A


Best regards,
Martin
diff mbox series

Patch

diff --git a/package/kernel/mac80211/patches/ath9k/040-ath9k-support-DT-ieee80211-freq-limit-property-to-li.patch b/package/kernel/mac80211/patches/ath9k/040-ath9k-support-DT-ieee80211-freq-limit-property-to-li.patch
new file mode 100644
index 0000000000..4142cb6ffd
--- /dev/null
+++ b/package/kernel/mac80211/patches/ath9k/040-ath9k-support-DT-ieee80211-freq-limit-property-to-li.patch
@@ -0,0 +1,29 @@ 
+From 03469e79fee9e8e908dae3bd1a80bcd9a66f2a88 Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@gmail.com>
+Date: Mon, 11 Oct 2021 18:18:00 +0300
+Subject: ath9k: support DT ieee80211-freq-limit property to limit channels
+
+The common DT property can be used to limit the available channels
+but ath9k has to manually call wiphy_read_of_freq_limits().
+
+I would have put this into ath9k_of_init(). But it didn't work there.
+The reason is that in ath9k_of_init() the channels and bands are not yet
+registered in the wiphy struct. So there isn't any channel to flag as
+disabled.
+
+Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Link: https://lore.kernel.org/r/20211009212847.1781986-1-chunkeey@gmail.com
+---
+--- a/drivers/net/wireless/ath/ath9k/init.c
++++ b/drivers/net/wireless/ath/ath9k/init.c
+@@ -1094,6 +1094,8 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc,
+ 		ARRAY_SIZE(ath9k_tpt_blink));
+ #endif
+ 
++	wiphy_read_of_freq_limits(hw->wiphy);
++
+ 	/* Register with mac80211 */
+ 	error = ieee80211_register_hw(hw);
+ 	if (error)
+
diff --git a/package/kernel/mac80211/patches/ath9k/550-ath9k-disable-bands-via-dt.patch b/package/kernel/mac80211/patches/ath9k/550-ath9k-disable-bands-via-dt.patch
deleted file mode 100644
index d1593339d2..0000000000
--- a/package/kernel/mac80211/patches/ath9k/550-ath9k-disable-bands-via-dt.patch
+++ /dev/null
@@ -1,15 +0,0 @@ 
---- a/drivers/net/wireless/ath/ath9k/init.c
-+++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -625,6 +625,12 @@ static int ath9k_of_init(struct ath_soft
- 
- 	ath_dbg(common, CONFIG, "parsing configuration from OF node\n");
- 
-+	if (of_property_read_bool(np, "qca,disable-2ghz"))
-+		ah->disable_2ghz = true;
-+
-+	if (of_property_read_bool(np, "qca,disable-5ghz"))
-+		ah->disable_5ghz = true;
-+
- 	if (of_property_read_bool(np, "qca,no-eeprom")) {
- 		/* ath9k-eeprom-<bus>-<id>.bin */
- 		scnprintf(eeprom_name, sizeof(eeprom_name),
diff --git a/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch b/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch
index 2552bbc7a1..fce6db2167 100644
--- a/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch
+++ b/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch
@@ -16,7 +16,7 @@ 
  
  static const struct platform_device_id ath9k_platform_id_table[] = {
  	{
-@@ -69,6 +77,242 @@ static const struct ath_bus_ops ath_ahb_
+@@ -69,6 +77,236 @@ static const struct ath_bus_ops ath_ahb_
  	.eeprom_read = ath_ahb_eeprom_read,
  };
  
@@ -218,12 +218,6 @@ 
 +	else
 +		pdata->led_pin = -1;
 +
-+	if (of_property_read_bool(pdev->dev.of_node, "qca,disable-2ghz"))
-+		pdata->disable_2ghz = true;
-+
-+	if (of_property_read_bool(pdev->dev.of_node, "qca,disable-5ghz"))
-+		pdata->disable_5ghz = true;
-+
 +	if (of_property_read_bool(pdev->dev.of_node, "qca,tx-gain-buffalo"))
 +		pdata->tx_gain_buffalo = true;
 +
diff --git a/target/linux/ath79/dts/ar9342_ubnt_wa.dtsi b/target/linux/ath79/dts/ar9342_ubnt_wa.dtsi
index 549daace7e..ba0f7ad23e 100644
--- a/target/linux/ath79/dts/ar9342_ubnt_wa.dtsi
+++ b/target/linux/ath79/dts/ar9342_ubnt_wa.dtsi
@@ -78,7 +78,7 @@ 
 &wmac {
 	status = "okay";
 
-	qca,disable-5ghz;
+	ieee80211-freq-limit = <2402000 2482000>;
 	mtd-cal-data = <&art 0x1000>;
 };
 
diff --git a/target/linux/ath79/dts/ar9344_atheros_db120.dts b/target/linux/ath79/dts/ar9344_atheros_db120.dts
index f96e31caca..625a8e4fa2 100644
--- a/target/linux/ath79/dts/ar9344_atheros_db120.dts
+++ b/target/linux/ath79/dts/ar9344_atheros_db120.dts
@@ -207,7 +207,7 @@ 
 		compatible = "pci168c,0030";
 		reg = <0x0000 0 0 0 0>;
 		qca,no-eeprom;
-		qca,disable-2ghz;
+		ieee80211-freq-limit = <4900000 5990000>;
 		#gpio-cells = <2>;
 		gpio-controller;
 	};
diff --git a/target/linux/ath79/dts/ar9344_engenius_exx600.dtsi b/target/linux/ath79/dts/ar9344_engenius_exx600.dtsi
index 1c318f2083..09dc5806d7 100644
--- a/target/linux/ath79/dts/ar9344_engenius_exx600.dtsi
+++ b/target/linux/ath79/dts/ar9344_engenius_exx600.dtsi
@@ -69,7 +69,7 @@ 
 	ath9k: wifi@0,0,0 {
 		compatible = "pci168c,0030";
 		reg = <0x0 0 0 0 0>;
-		qca,disable-5ghz;
+		ieee80211-freq-limit = <2402000 2482000>;
 		qca,no-eeprom;
 		#gpio-cells = <2>;
 		gpio-controller;
@@ -79,7 +79,7 @@ 
 &wmac {
 	status = "okay";
 
-	qca,disable-2ghz;
+	ieee80211-freq-limit = <4900000 5990000>;
 
 	mtd-cal-data = <&art 0x1000>;
 };
diff --git a/target/linux/ath79/dts/ar9344_pcs_cap324.dts b/target/linux/ath79/dts/ar9344_pcs_cap324.dts
index 1f15a2e8b8..6ebd6a43bb 100644
--- a/target/linux/ath79/dts/ar9344_pcs_cap324.dts
+++ b/target/linux/ath79/dts/ar9344_pcs_cap324.dts
@@ -123,7 +123,7 @@ 
 		mac-address-increment = <(-2)>;
 		mtd-cal-data = <&art 0x5000>;
 		qca,no-eeprom;
-		qca,disable-5ghz;
+		ieee80211-freq-limit = <2402000 2482000>;
 		#gpio-cells = <2>;
 		gpio-controller;
 	};
@@ -132,7 +132,7 @@ 
 &wmac {
 	status = "okay";
 
-	qca,disable-2ghz;
+	ieee80211-freq-limit = <4900000 5990000>;
 	mtd-cal-data = <&art 0x1000>;
 	nvmem-cells = <&macaddr_art_0>;
 	nvmem-cell-names = "mac-address";
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts
index 76cf69335b..1cd0f2c6b6 100644
--- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts
@@ -256,7 +256,7 @@ 
 		compatible = "pci168c,002d";
 		reg = <0x7000 0 0 0 0>;
 		qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
-		qca,disable-5ghz;
+		ieee80211-freq-limit = <2402000 2482000>;
 	};
 };
 
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi
index bdf98fe98e..5b7c10bb9d 100644
--- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi
@@ -203,7 +203,7 @@ 
 			#gpio-cells = <2>;
 			gpio-controller;
 			qca,no-eeprom;
-			qca,disable-5ghz;
+			ieee80211-freq-limit = <2402000 2482000>;
 			nvmem-cells = <&macaddr_ath9k_cal_f100>;
 			nvmem-cell-names = "mac-address";
 			mac-address-increment = <2>;