[openwrt/openwrt] apm821xx: provide legacy interrupts for PCIe in DT

LEDE Commits lede-commits at lists.infradead.org
Sat Sep 5 17:34:28 EDT 2020


chunkeey pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/252197f014932c03cea7c080d8ab90e0a963a281

commit 252197f014932c03cea7c080d8ab90e0a963a281
Author: Christian Lamparter <chunkeey at gmail.com>
AuthorDate: Thu Sep 3 21:24:16 2020 +0200

    apm821xx: provide legacy interrupts for PCIe in DT
    
    Devices with PCIe-Switches like the WNDR4700, MR24 and WNDAP660
    need to have the interrupts property specified in the device-tree
    for the legacy pci interrupt signaling method to work.
    
    If the proper interrupt value is not specified, the default INTA
    IRQ 12 is taken for all devices. This is especially bad, if the
    device is setup to use INTC, because these interrupts will not
    be serviced.
    
    Russell Senior reported his experience on the MR24:
    "The symptom is client devices can't see the beacons.
    Wifi ifaces appear, can scan and hear other networks,
    but clients can't see the MR24's SSIDs."
    
    (The interrupts-property on the WNDAP620 was optional since it
    uses INTA by default. Likewise the MX60W is in the same category)
    
    Reported-by: Russell Senior <russell at personaltelco.net>
    Signed-off-by: Christian Lamparter <chunkeey at gmail.com>
---
 target/linux/apm821xx/dts/meraki-mr24.dts      | 2 ++
 target/linux/apm821xx/dts/meraki-mx60.dts      | 1 +
 target/linux/apm821xx/dts/netgear-wndap620.dts | 1 +
 target/linux/apm821xx/dts/netgear-wndap660.dts | 2 ++
 target/linux/apm821xx/dts/netgear-wndr4700.dts | 3 +++
 5 files changed, 9 insertions(+)

diff --git a/target/linux/apm821xx/dts/meraki-mr24.dts b/target/linux/apm821xx/dts/meraki-mr24.dts
index 37032fb865..660cf8f789 100644
--- a/target/linux/apm821xx/dts/meraki-mr24.dts
+++ b/target/linux/apm821xx/dts/meraki-mr24.dts
@@ -212,6 +212,7 @@
 					/* Atheros AR9380 2.4GHz */
 					compatible = "pci168c,0030";
 					reg = <0x00430000 0 0 0 0>;
+					interrupts = <3>; /* INTC 4.1.1 */
 				};
 			};
 
@@ -226,6 +227,7 @@
 					/* Atheros AR9380 5GHz */
 					compatible = "pci168c,0030";
 					reg = <0x00440000 0 0 0 0>;
+					interrupts = <4>; /* INTD 4.1.1 */
 				};
 			};
 		};
diff --git a/target/linux/apm821xx/dts/meraki-mx60.dts b/target/linux/apm821xx/dts/meraki-mx60.dts
index 6773028191..9bddbdd25d 100644
--- a/target/linux/apm821xx/dts/meraki-mx60.dts
+++ b/target/linux/apm821xx/dts/meraki-mx60.dts
@@ -189,6 +189,7 @@
 			/* Atheros AR9380 2.4/5GHz */
 			compatible = "pci168c,0030";
 			reg = <0x00410000 0 0 0 0>;
+			interrupts = <1>; /* INTA */
 		};
 	};
 };
diff --git a/target/linux/apm821xx/dts/netgear-wndap620.dts b/target/linux/apm821xx/dts/netgear-wndap620.dts
index e92c5638cb..d72aef4def 100644
--- a/target/linux/apm821xx/dts/netgear-wndap620.dts
+++ b/target/linux/apm821xx/dts/netgear-wndap620.dts
@@ -38,6 +38,7 @@
 			/* Atheros AR9380 5GHz */
 			compatible = "pci168c,0030";
 			reg = <0x00410000 0 0 0 0>;
+			interrupts = <1>; /* INTA */
 		};
 	};
 };
diff --git a/target/linux/apm821xx/dts/netgear-wndap660.dts b/target/linux/apm821xx/dts/netgear-wndap660.dts
index c15970b6b2..e9f45abe0e 100644
--- a/target/linux/apm821xx/dts/netgear-wndap660.dts
+++ b/target/linux/apm821xx/dts/netgear-wndap660.dts
@@ -65,6 +65,7 @@
 					/* Atheros AR9380 2.4/5GHz */
 					compatible = "pci168c,0030";
 					reg = <0x00430000 0 0 0 0>;
+					interrupts = <3>; /* INTC */
 				};
 			};
 
@@ -79,6 +80,7 @@
 					/* Atheros AR9380 2.4/5GHz */
 					compatible = "pci168c,0030";
 					reg = <0x00440000 0 0 0 0>;
+					interrupts = <4>; /* INTD */
 				};
 			};
 		};
diff --git a/target/linux/apm821xx/dts/netgear-wndr4700.dts b/target/linux/apm821xx/dts/netgear-wndr4700.dts
index f711eb7782..0a1b2f4f32 100644
--- a/target/linux/apm821xx/dts/netgear-wndr4700.dts
+++ b/target/linux/apm821xx/dts/netgear-wndr4700.dts
@@ -454,6 +454,7 @@
 					/* Atheros AR9380 5GHz */
 					compatible = "pci168c,0030";
 					reg = <0x00430000 0 0 0 0>;
+					interrupts = <3>; /* INTC */
 					qca,no-eeprom;
 					/* wifi CAL & MAC is stored in nvram */
 
@@ -476,6 +477,7 @@
 					/* Atheros AR9381 2.4GHz */
 					compatible = "pci168c,0033";
 					reg = <0x00440000 0 0 0 0>;
+					interrupts = <4>; /* INTD */
 					qca,no-eeprom;
 					/* wifi CAL & MAC is stored in nvram */
 				};
@@ -492,6 +494,7 @@
 					/* Renesas uPD720202 */
 					compatible = "pci1912,0015";
 					reg = <0x00450000 0 0 0 0>;
+					interrupts = <1>; /* INTA */
 
 					#address-cells = <1>;
 					#size-cells = <0>;



More information about the lede-commits mailing list