WRT3200ACM and WRT32x routers always report a fixed US regulatory domain from the mwifiex ROM, which conflicts with the platform regulatory configuration on units sold outside the US market. For example: - phy0 mwlwifi 5 GHz, hard-coded region 98 EU mapped to FR - phy1 mwlwifi 2.4 GHz, hard-coded region 98 EU mapped to FR - phy2 mwifiex 2.4 and 5 GHz, hard-coded region US When the system boots, it detects a conflict between the user selected region and the radios, e.g. BG FR US, and applies extreme restrictions, preventing phy0 from starting on any DFS channel. phy2 works. Add a flag marvell,invalid-reg-hint-in-rom to the WRT3200ACM device-tree, which signals mwifiex that its regulatory hint from ROM conflicts with the platform and should be ignored, so the platform regulatory domain can be used. This does not allow the user to change the regulatory config of any radio. It only allows phy0 to start and operate according to its certified configuration. All radios in WRT3200ACM/WRT32x are locked to the hard-coded configuration for which they are certified. On WRT3200ACM, the platform configuration is stored on the devinfo mtd3 partition, which is read-only: cert_region=EU modelNumber=WRT3200ACM-EU The Linux kernel sources do not have support for WRT32x. An equivalent patch for these routers has to be sent to OpenWrt. [1] https://github.com/kaloz/mwlwifi/issues/173#issuecomment-307879699 [2] https://github.com/openwrt/openwrt/issues/9956 Cc: stable@vger.kernel.org Signed-off-by: Georgi Valkov --- arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts b/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts index 4ab45f294de2..2bf29981a031 100644 --- a/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts +++ b/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts @@ -165,6 +165,15 @@ &sdhci { wp-inverted; bus-width = <8>; status = "okay"; + + #address-cells = <1>; + #size-cells = <0>; + + wifi@1 { + compatible = "marvell,sd8897"; + reg = <1>; + marvell,invalid-reg-hint-in-rom; + }; }; &usb3_1_vbus { -- 2.55.0