apm821xx: provide legacy interrupts for PCIe in DT
authorChristian Lamparter <chunkeey@gmail.com>
Thu, 3 Sep 2020 19:24:16 +0000 (21:24 +0200)
committerChristian Lamparter <chunkeey@gmail.com>
Sat, 5 Sep 2020 21:26:05 +0000 (23:26 +0200)
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@personaltelco.net>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
target/linux/apm821xx/dts/meraki-mr24.dts
target/linux/apm821xx/dts/meraki-mx60.dts
target/linux/apm821xx/dts/netgear-wndap620.dts
target/linux/apm821xx/dts/netgear-wndap660.dts
target/linux/apm821xx/dts/netgear-wndr4700.dts

index 37032fb865d4858ad8838c28d85ccb5bd19a8741..660cf8f789e9dca5975314ee95789d2ba972640f 100644 (file)
                                        /* Atheros AR9380 2.4GHz */
                                        compatible = "pci168c,0030";
                                        reg = <0x00430000 0 0 0 0>;
+                                       interrupts = <3>; /* INTC 4.1.1 */
                                };
                        };
 
                                        /* Atheros AR9380 5GHz */
                                        compatible = "pci168c,0030";
                                        reg = <0x00440000 0 0 0 0>;
+                                       interrupts = <4>; /* INTD 4.1.1 */
                                };
                        };
                };
index 67730281915c8a36249d46a316c0befc17042c45..9bddbdd25d23085ef1d9c709a0cdcc4729142985 100644 (file)
                        /* Atheros AR9380 2.4/5GHz */
                        compatible = "pci168c,0030";
                        reg = <0x00410000 0 0 0 0>;
+                       interrupts = <1>; /* INTA */
                };
        };
 };
index e92c5638cb601ac924e5d5f39f7c2def0525e733..d72aef4def3a610638db4434d8a61f5b53ee2b14 100644 (file)
@@ -38,6 +38,7 @@
                        /* Atheros AR9380 5GHz */
                        compatible = "pci168c,0030";
                        reg = <0x00410000 0 0 0 0>;
+                       interrupts = <1>; /* INTA */
                };
        };
 };
index c15970b6b2d72e5019961b77ab26f4841073a63e..e9f45abe0e719d25d78a48936177c9994116a479 100644 (file)
@@ -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 */
                                };
                        };
                };
index f711eb7782e46689bc963a5040ddd5bc7c35e1bb..0a1b2f4f3250fa96f9ce4d03ecf3f668c0da5601 100644 (file)
                                        /* 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 */
 
                                        /* 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 */
                                };
                                        /* Renesas uPD720202 */
                                        compatible = "pci1912,0015";
                                        reg = <0x00450000 0 0 0 0>;
+                                       interrupts = <1>; /* INTA */
 
                                        #address-cells = <1>;
                                        #size-cells = <0>;