[openwrt/openwrt] ipq40xx: fix second 5ghz radio on Netgear RBx40
LEDE Commits
lede-commits at lists.infradead.org
Tue Dec 16 01:30:32 PST 2025
robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-25.12:
https://git.openwrt.org/ce54f6e893a11a4f02169217db77ecbd79c39c5d
commit ce54f6e893a11a4f02169217db77ecbd79c39c5d
Author: Christoph Krapp <achterin at gmail.com>
AuthorDate: Sat Nov 22 20:42:33 2025 +0100
ipq40xx: fix second 5ghz radio on Netgear RBx40
When support was added for the RBR40 and RBS40 it was assumed that they
also share the same second 5ghz wifi chip as their bigger siblings.
Turns out that instead of QCA9984 (RBx50, SRx60) these devices use
QCA9886 like the RBx20 devices to.
They also load different boardfiles for the IPQ4019 chip.
This moves the wifi nodes from the orbi.dtsi to each device dts file and
change the RBx40 boardfile variants.
Signed-off-by: Christoph Krapp <achterin at gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20877
Signed-off-by: Robert Marko <robimarko at gmail.com>
(cherry picked from commit f0909f7a05cbc0f3d91bae55df2d251f065a5b68)
---
.../arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi | 21 ---------------------
.../arch/arm/boot/dts/qcom/qcom-ipq4019-rbr40.dts | 21 +++++++++++++++++++++
.../arch/arm/boot/dts/qcom/qcom-ipq4019-rbr50.dts | 21 +++++++++++++++++++++
.../arch/arm/boot/dts/qcom/qcom-ipq4019-rbs40.dts | 21 +++++++++++++++++++++
.../arch/arm/boot/dts/qcom/qcom-ipq4019-rbs50.dts | 21 +++++++++++++++++++++
.../arch/arm/boot/dts/qcom/qcom-ipq4019-srr60.dts | 21 +++++++++++++++++++++
.../arch/arm/boot/dts/qcom/qcom-ipq4019-srs60.dts | 21 +++++++++++++++++++++
target/linux/ipq40xx/image/generic.mk | 5 ++++-
8 files changed, 130 insertions(+), 22 deletions(-)
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi
index 10aa56de27..9e58e0de40 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi
@@ -288,24 +288,3 @@
perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
};
-
-&pcie_bridge0 {
- wifi at 0,0 {
- compatible = "qcom,ath10k";
- reg = <0x00010000 0 0 0 0>;
- ieee80211-freq-limit = <5470000 5875000>;
- qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
- };
-};
-
-&wifi0 {
- status = "okay";
-
- qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
-};
-
-&wifi1 {
- status = "okay";
-
- qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
-};
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr40.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr40.dts
index 1c579dcdfb..799a1df1df 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr40.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr40.dts
@@ -10,3 +10,24 @@
bootargs = "root=/dev/mmcblk0p20 blkdevparts=mmcblk0:512K at 17K(0:SBL1)ro,512K(0:BOOTCONFIG)ro,512K(0:QSEE)ro,512K(0:QSEE_ALT)ro,256K(0:CDT)ro,256K(0:CDT_ALT)ro,256K(0:DDRPARAMS)ro,256K(0:APPSBLENV)ro,1M(0:APPSBL)ro,1M(0:APPSBL_ALT)ro,256K(0:ART)ro,256K(ARTMTD)ro,2M(language)ro,256K(config)ro,256K(pot)ro,256K(traffic_meter)ro,256K(pot_bak)ro,256K(traffic_meter.bak)ro,3840K(kernel),31488K(rootfs),35328K at 9233K(firmware),256K(mtdoops)ro,1457651200(reserved)ro,-(unallocated) rootfstype=squas [...]
};
};
+
+&pcie_bridge0 {
+ wifi at 0,0 {
+ compatible = "qcom,ath10k";
+ reg = <0x00010000 0 0 0 0>;
+ ieee80211-freq-limit = <5170000 5350000>;
+ qcom,ath10k-calibration-variant = "Netgear-RBK40";
+ };
+};
+
+&wifi0 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-RBK40";
+};
+
+&wifi1 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-RBK40";
+};
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr50.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr50.dts
index 81e846fb1f..902ee821ee 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr50.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr50.dts
@@ -26,3 +26,24 @@
&usb2 {
status = "okay";
};
+
+&pcie_bridge0 {
+ wifi at 0,0 {
+ compatible = "qcom,ath10k";
+ reg = <0x00010000 0 0 0 0>;
+ ieee80211-freq-limit = <5470000 5875000>;
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+ };
+};
+
+&wifi0 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+};
+
+&wifi1 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+};
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs40.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs40.dts
index 6ff0ed8bb1..882af0bb61 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs40.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs40.dts
@@ -10,3 +10,24 @@
bootargs = "root=/dev/mmcblk0p20 blkdevparts=mmcblk0:512K at 17K(0:SBL1)ro,512K(0:BOOTCONFIG)ro,512K(0:QSEE)ro,512K(0:QSEE_ALT)ro,256K(0:CDT)ro,256K(0:CDT_ALT)ro,256K(0:DDRPARAMS)ro,256K(0:APPSBLENV)ro,1M(0:APPSBL)ro,1M(0:APPSBL_ALT)ro,256K(0:ART)ro,256K(ARTMTD)ro,2M(language)ro,256K(config)ro,256K(pot)ro,256K(traffic_meter)ro,256K(pot_bak)ro,256K(traffic_meter.bak)ro,3840K(kernel),31488K(rootfs),35328K at 9233K(firmware),256K(mtdoops)ro,1457651200(reserved)ro,-(unallocated) rootfstype=squas [...]
};
};
+
+&pcie_bridge0 {
+ wifi at 0,0 {
+ compatible = "qcom,ath10k";
+ reg = <0x00010000 0 0 0 0>;
+ ieee80211-freq-limit = <5170000 5350000>;
+ qcom,ath10k-calibration-variant = "Netgear-RBK40";
+ };
+};
+
+&wifi0 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-RBK40";
+};
+
+&wifi1 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-RBK40";
+};
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs50.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs50.dts
index 3ac6df3761..5453ad5f6d 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs50.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs50.dts
@@ -26,3 +26,24 @@
&usb2 {
status = "okay";
};
+
+&pcie_bridge0 {
+ wifi at 0,0 {
+ compatible = "qcom,ath10k";
+ reg = <0x00010000 0 0 0 0>;
+ ieee80211-freq-limit = <5470000 5875000>;
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+ };
+};
+
+&wifi0 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+};
+
+&wifi1 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+};
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srr60.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srr60.dts
index c137b41ee8..0e1d855255 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srr60.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srr60.dts
@@ -10,3 +10,24 @@
bootargs = "root=/dev/mmcblk0p20 blkdevparts=mmcblk0:512K at 17K(0:SBL1)ro,512K(0:BOOTCONFIG)ro,512K(0:QSEE)ro,512K(0:QSEE_1)ro,256K(0:CDT)ro,256K(0:CDT_1)ro,512K(0:BOOTCONFIG1)ro,256K(0:APPSBLENV)ro,1M(0:APPSBL)ro,1M(0:APPSBL_1)ro,256K(0:ART)ro,256K(ARTMTD)ro,2M(language)ro,256K(config)ro,256K(pot)ro,256K(traffic_meter)ro,256K(pot_bak)ro,256K(traffic_meter.bak)ro,3840K(kernel),31488K(rootfs),35328K at 9233K(firmware),256K(mtdoops)ro,64K(cert)ro,3840K(kernel-2)ro,31488K(rootfs-2)ro,35328K at 44 [...]
};
};
+
+&pcie_bridge0 {
+ wifi at 0,0 {
+ compatible = "qcom,ath10k";
+ reg = <0x00010000 0 0 0 0>;
+ ieee80211-freq-limit = <5470000 5875000>;
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+ };
+};
+
+&wifi0 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+};
+
+&wifi1 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+};
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srs60.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srs60.dts
index 5b09e1ee24..70b4b896a7 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srs60.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srs60.dts
@@ -10,3 +10,24 @@
bootargs = "root=/dev/mmcblk0p20 blkdevparts=mmcblk0:512K at 17K(0:SBL1)ro,512K(0:BOOTCONFIG)ro,512K(0:QSEE)ro,512K(0:QSEE_1)ro,256K(0:CDT)ro,256K(0:CDT_1)ro,512K(0:BOOTCONFIG1)ro,256K(0:APPSBLENV)ro,1M(0:APPSBL)ro,1M(0:APPSBL_1)ro,256K(0:ART)ro,256K(ARTMTD)ro,2M(language)ro,256K(config)ro,256K(pot)ro,256K(traffic_meter)ro,256K(pot_bak)ro,256K(traffic_meter.bak)ro,3840K(kernel),31488K(rootfs),35328K at 9233K(firmware),256K(mtdoops)ro,64K(cert)ro,3840K(kernel-2)ro,31488K(rootfs-2)ro,35328K at 44 [...]
};
};
+
+&pcie_bridge0 {
+ wifi at 0,0 {
+ compatible = "qcom,ath10k";
+ reg = <0x00010000 0 0 0 0>;
+ ieee80211-freq-limit = <5470000 5875000>;
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+ };
+};
+
+&wifi0 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+};
+
+&wifi1 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
+};
diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk
index 36f7e4047f..1d02a2fc1f 100644
--- a/target/linux/ipq40xx/image/generic.mk
+++ b/target/linux/ipq40xx/image/generic.mk
@@ -904,7 +904,7 @@ define Device/netgear_orbi
append-rootfs | pad-rootfs | netgear-dni
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to 64k | \
sysupgrade-tar rootfs=$$$$@ | append-metadata
- DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup
+ DEVICE_PACKAGES := e2fsprogs kmod-fs-ext4 losetup
endef
define Device/netgear_lbr20
@@ -967,6 +967,7 @@ define Device/netgear_rbx40
KERNEL_SIZE := 3932160
ROOTFS_SIZE := 32243712
IMAGE_SIZE := 36175872
+ DEVICE_PACKAGES += ipq-wifi-netgear_rbk40 ath10k-firmware-qca9888-ct
endef
define Device/netgear_rbr40
@@ -991,6 +992,7 @@ define Device/netgear_rbx50
KERNEL_SIZE := 3932160
ROOTFS_SIZE := 32243712
IMAGE_SIZE := 36175872
+ DEVICE_PACKAGES += ath10k-firmware-qca9984-ct
endef
define Device/netgear_rbr50
@@ -1015,6 +1017,7 @@ define Device/netgear_srx60
KERNEL_SIZE := 3932160
ROOTFS_SIZE := 32243712
IMAGE_SIZE := 36175872
+ DEVICE_PACKAGES += ath10k-firmware-qca9984-ct
endef
define Device/netgear_srr60
More information about the lede-commits
mailing list