On Tue, Mar 21, 2023 at 10:55 AM Tim Harvey <tharvey@xxxxxxxxxxxxx> wrote: > > On Mon, Mar 20, 2023 at 1:46 PM Tim Harvey <tharvey@xxxxxxxxxxxxx> wrote: > > > > (+linux-pci, Fabio, Richard) > > > > Daniel, > > > > I may have two different issues going on here: > > 1) issues with ath9k MSI interrupts > > 2) issues with ath9k legacy interrupts on IMX8MM > > Lucas, > > I've found an old thread [1] where you state that Designware PCIe core > (not just IMX6) has an issue where as soon as any MSI interrupt is > enabled the core does not forward legacy IRQs anymore so if any card > in your system needs legacy interrupts you must disable MSI > completely. > > I assume this is still the understanding and also applies then to > IMX8MM/IMX8MP? This would explain why I'm unable to get legacy > interrupts working without pci=nomsi as the PME driver requests an MSI > interrupt. > > Do you know any reason why I can get legacy IRQ's to work with > pci=nomsi on IMX6Q/DL with and without a bridge but on IMX8MM I can > only get it to work without a bridge? > > Best Regards, > > Tim > [1] https://patchwork.kernel.org/project/linux-pci/patch/20181120165626.26424-2-stefan@xxxxxxxx/#22345435 > Lucas, Do you have any ideas regarding why imx8mm/imx8mp legacy interrupts with pci=nomsi won't work through a bridge? Best Regards, Tim > > > > To rule out the PCIe switch being an issue for me I moved to an > > imx8mm-venice-gw71xx-0x which has an IMX8MM and no PCIe switch. > > > > I've found that with MSI enabled globally, but ath9k not using MSI I > > fail to get any interrupts from the radio with nothing abnormal from > > dmesg: > > # uname -r > > 6.2.0-09243-ge911eb7b8ec1 > > # cat /proc/cmdline > > > > # lspci -n > > 00:00.0 0604: 16c3:abcd (rev 01) > > 01:00.0 0280: 168c:0036 (rev 01) > > # dmesg | grep pci > > [ 1.524560] imx6q-pcie 33800000.pcie: host bridge > > /soc@0/pcie@33800000 ranges: > > [ 1.531870] imx6q-pcie 33800000.pcie: IO > > 0x001ff80000..0x001ff8ffff -> 0x0000000000 > > [ 1.544109] imx6q-pcie 33800000.pcie: MEM > > 0x0018000000..0x001fefffff -> 0x0018000000 > > [ 1.767610] imx6q-pcie 33800000.pcie: iATU: unroll T, 4 ob, 4 ib, > > align 64K, limit 4G > > [ 1.875571] imx6q-pcie 33800000.pcie: PCIe Gen.1 x1 link up > > [ 1.881241] imx6q-pcie 33800000.pcie: PCIe Gen.1 x1 link up > > [ 1.886843] imx6q-pcie 33800000.pcie: Link up, Gen1 > > [ 1.891746] imx6q-pcie 33800000.pcie: PCIe Gen.1 x1 link up > > [ 1.897674] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00 > > [ 1.904078] pci_bus 0000:00: root bus resource [bus 00-ff] > > [ 1.909585] pci_bus 0000:00: root bus resource [io 0x0000-0xffff] > > [ 1.915784] pci_bus 0000:00: root bus resource [mem 0x18000000-0x1fefffff] > > [ 1.922706] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400 > > [ 1.928746] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff] > > [ 1.935043] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref] > > [ 1.941820] pci 0000:00:00.0: supports D1 > > [ 1.945849] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold > > [ 1.954254] pci 0000:01:00.0: [168c:0036] type 00 class 0x028000 > > [ 1.960394] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x0007ffff 64bit] > > [ 1.967342] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref] > > [ 1.974389] pci 0000:01:00.0: supports D1 D2 > > [ 1.978681] pci 0000:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold > > [ 1.995483] pci 0000:00:00.0: BAR 0: assigned [mem 0x18000000-0x180fffff] > > [ 2.002334] pci 0000:00:00.0: BAR 14: assigned [mem 0x18100000-0x181fffff] > > [ 2.009240] pci 0000:00:00.0: BAR 15: assigned [mem > > 0x18200000-0x182fffff pref] > > [ 2.016576] pci 0000:00:00.0: BAR 6: assigned [mem > > 0x18300000-0x1830ffff pref] > > [ 2.023833] pci 0000:01:00.0: BAR 0: assigned [mem > > 0x18100000-0x1817ffff 64bit] > > [ 2.031214] pci 0000:01:00.0: BAR 6: assigned [mem > > 0x18200000-0x1820ffff pref] > > [ 2.038462] pci 0000:00:00.0: PCI bridge to [bus 01-ff] > > [ 2.043711] pci 0000:00:00.0: bridge window [mem 0x18100000-0x181fffff] > > [ 2.050518] pci 0000:00:00.0: bridge window [mem > > 0x18200000-0x182fffff pref] > > [ 2.058205] pcieport 0000:00:00.0: PME: Signaling with IRQ 205 > > # dmesg | grep ath > > [ 2.064379] ath9k 0000:01:00.0: enabling device (0000 -> 0002) > > [ 2.070445] ath: phy0: WB335 2-ANT card detected > > [ 2.075092] ath: phy0: Set BT/WLAN RX diversity capability > > [ 2.088891] ath: phy0: Enable LNA combining > > [ 2.094278] ath: EEPROM regdomain: 0x6a > > [ 2.094285] ath: EEPROM indicates we should expect a direct regpair map > > [ 2.094293] ath: Country alpha2 being used: 00 > > [ 2.094297] ath: Regpair used: 0x6a > > [ 14.228284] ath9k 0000:01:00.0 wlp1s0: renamed from wlan0 > > # wpa_supplicant -i wlp1s0 -c wpa_supplicant.conf > > Successfully initialized wpa_supplicant > > <snip authentication details> > > # grep ath /proc/interrupts > > 204: 0 0 0 0 GICv3 157 Level ath9k > > # cat /proc/interrupts > > CPU0 CPU1 CPU2 CPU3 > > 11: 2196 1753 1883 3509 GICv3 30 Level > > arch_timer > > 14: 0 0 0 0 GICv3 79 Level > > timer@306a0000 > > 15: 0 0 0 0 GICv3 23 Level arm-pmu > > 16: 0 0 0 0 GICv3 135 Level > > 302c0000.dma-controller > > 17: 0 0 0 0 GICv3 66 Level > > 302b0000.dma-controller > > 18: 0 0 0 0 GICv3 34 Level > > 30bd0000.dma-controller > > 19: 0 0 0 0 GICv3 58 Level > > 30860000.serial > > 20: 0 0 0 0 GICv3 60 Level > > 30880000.serial > > 21: 503 0 0 0 GICv3 59 Level > > 30890000.serial > > 22: 0 0 0 0 GICv3 110 Level > > 30280000.watchdog > > 23: 418 0 0 0 GICv3 56 Level mmc2 > > 41: 0 0 0 0 gpio-mxc 15 Edge pps.-1 > > 66: 0 0 0 0 gpio-mxc 6 Level > > gateworks-gsc > > 194: 750 0 0 0 GICv3 67 Level > > 30a20000.i2c > > 195: 0 0 0 0 gateworks-gsc 4 > > Edge 0-0023 > > 196: 25 0 0 0 GICv3 68 Level > > 30a30000.i2c > > 197: 0 0 0 0 GICv3 69 Level > > 30a40000.i2c > > 198: 0 0 0 0 GICv3 64 Level > > 30830000.spi > > 199: 0 0 0 0 GICv3 150 Level > > 30be0000.ethernet > > 200: 0 0 0 0 GICv3 151 Level > > 30be0000.ethernet > > 201: 0 0 0 0 GICv3 152 Level > > 30be0000.ethernet > > 202: 0 0 0 0 GICv3 153 Level > > 30be0000.ethernet > > 204: 0 0 0 0 GICv3 157 Level ath9k > > 205: 0 0 0 0 PCI-MSI 0 Edge > > PCIe PME > > 206: 0 0 0 0 GICv3 72 Level > > 32e40000.usb > > 207: 18 0 0 0 GICv3 73 Level > > 32e50000.usb > > 208: 0 0 0 0 gateworks-gsc 0 > > Edge user_pb1x > > 209: 0 0 0 0 gateworks-gsc 1 > > Edge key_erased > > 210: 0 0 0 0 gateworks-gsc 2 > > Edge eeprom_wp > > 211: 0 0 0 0 gateworks-gsc 5 > > Edge tamper > > 212: 0 0 0 0 gateworks-gsc 7 > > Edge switch_hold > > 213: 0 0 0 0 0-0023 2 Edge user_pb > > IPI0: 620 751 665 109 Rescheduling interrupts > > IPI1: 361 1387 1285 509 Function call interrupts > > IPI2: 0 0 0 0 CPU stop interrupts > > IPI3: 0 0 0 0 CPU stop (for > > crash dump) interrupts > > IPI4: 0 0 0 0 Timer broadcast > > interrupts > > IPI5: 5 9 10 2 IRQ work interrupts > > IPI6: 0 0 0 0 CPU wake-up interrupts > > Err: 0 > > ^^^ no interrupts from ath9k radio > > ^^^ is MSI enabled for the controller but ath9k electing to use legacy > > INT's a valid configuration? > > > > With MSI disabled globally via pci=nomsi ath9k gets interrupts and works fine: > > # cat /proc/cmdline > > pci=nomsi > > # dmesg | grep ath > > [ 2.052527] ath9k 0000:01:00.0: enabling device (0000 -> 0002) > > [ 2.058556] ath: phy0: WB335 2-ANT card detected > > [ 2.063199] ath: phy0: Set BT/WLAN RX diversity capability > > [ 2.077381] ath: phy0: Enable LNA combining > > [ 2.082799] ath: EEPROM regdomain: 0x6a > > [ 2.082805] ath: EEPROM indicates we should expect a direct regpair map > > [ 2.082813] ath: Country alpha2 being used: 00 > > [ 2.082818] ath: Regpair used: 0x6a > > [ 11.620093] ath9k 0000:01:00.0 wlp1s0: renamed from wlan0 > > # wpa_supplicant -i wlp1s0 -c wpa_supplicant.conf > > Successfully initialized wpa_supplicant > > <snip authentication details> > > # > > # grep ath /proc/interrupts > > 203: 379 0 0 0 GICv3 157 Level > > PCIe PME, ath9k > > # cat /proc/interrupts > > CPU0 CPU1 CPU2 CPU3 > > 11: 1622 2152 3288 2005 GICv3 30 Level > > arch_timer > > 14: 0 0 0 0 GICv3 79 Level > > timer@306a0000 > > 15: 0 0 0 0 GICv3 23 Level arm-pmu > > 16: 0 0 0 0 GICv3 135 Level > > 302c0000.dma-controller > > 17: 0 0 0 0 GICv3 66 Level > > 302b0000.dma-controller > > 18: 0 0 0 0 GICv3 34 Level > > 30bd0000.dma-controller > > 19: 0 0 0 0 GICv3 58 Level > > 30860000.serial > > 20: 0 0 0 0 GICv3 60 Level > > 30880000.serial > > 21: 597 0 0 0 GICv3 59 Level > > 30890000.serial > > 22: 0 0 0 0 GICv3 110 Level > > 30280000.watchdog > > 23: 414 0 0 0 GICv3 56 Level mmc2 > > 41: 0 0 0 0 gpio-mxc 15 Edge pps.-1 > > 66: 0 0 0 0 gpio-mxc 6 Level > > gateworks-gsc > > 194: 978 0 0 0 GICv3 67 Level > > 30a20000.i2c > > 195: 0 0 0 0 gateworks-gsc 4 > > Edge 0-0023 > > 196: 25 0 0 0 GICv3 68 Level > > 30a30000.i2c > > 197: 0 0 0 0 GICv3 69 Level > > 30a40000.i2c > > 198: 0 0 0 0 GICv3 64 Level > > 30830000.spi > > 199: 0 0 0 0 GICv3 150 Level > > 30be0000.ethernet > > 200: 0 0 0 0 GICv3 151 Level > > 30be0000.ethernet > > 201: 0 0 0 0 GICv3 152 Level > > 30be0000.ethernet > > 202: 0 0 0 0 GICv3 153 Level > > 30be0000.ethernet > > 203: 379 0 0 0 GICv3 157 Level > > PCIe PME, ath9k > > 204: 0 0 0 0 GICv3 72 Level > > 32e40000.usb > > 205: 18 0 0 0 GICv3 73 Level > > 32e50000.usb > > 206: 0 0 0 0 gateworks-gsc 0 > > Edge user_pb1x > > 207: 0 0 0 0 gateworks-gsc 1 > > Edge key_erased > > 208: 0 0 0 0 gateworks-gsc 2 > > Edge eeprom_wp > > 209: 0 0 0 0 gateworks-gsc 5 > > Edge tamper > > 210: 0 0 0 0 gateworks-gsc 7 > > Edge switch_hold > > 211: 0 0 0 0 0-0023 2 Edge user_pb > > IPI0: 501 506 73 759 Rescheduling interrupts > > IPI1: 878 846 718 1169 Function call interrupts > > IPI2: 0 0 0 0 CPU stop interrupts > > IPI3: 0 0 0 0 CPU stop (for > > crash dump) interrupts > > IPI4: 0 0 0 0 Timer broadcast > > interrupts > > IPI5: 5 4 9 20 IRQ work interrupts > > IPI6: 0 0 0 0 CPU wake-up interrupts > > Err: 0 > > ^^^ legacy interrupts working as long as I disable MSI globally for IMX8MM > > > > And with MSI enabled globally as well as ath9k (ath9k.use_msi=1) ath9k > > fails to get interrupts and shows the interrupt error I ran into > > previously: > > # cat /proc/cmdline > > ath9k.use_msi=1 > > # dmesg | grep ath > > [ 0.000000] Kernel command line: ath9k.use_msi=1 > > [ 2.056381] ath9k 0000:01:00.0: enabling device (0000 -> 0002) > > [ 2.062571] ath9k 0000:01:00.0: Using MSI > > [ 2.066651] ath: phy0: WB335 2-ANT card detected > > [ 2.071288] ath: phy0: Set BT/WLAN RX diversity capability > > [ 2.085083] ath: phy0: Enable LNA combining > > [ 2.090470] ath: EEPROM regdomain: 0x6a > > [ 2.090476] ath: EEPROM indicates we should expect a direct regpair map > > [ 2.090484] ath: Country alpha2 being used: 00 > > [ 2.090489] ath: Regpair used: 0x6a > > [ 13.999159] ath9k 0000:01:00.0 wlp1s0: renamed from wlan0 > > # wpa_supplicant -i wlp1s0 -c wpa_supplicant.conf > > Successfully initialized wpa_supplicant > > [ 66.790178] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0x6A0C9C8 > > [ 66.798000] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0x6A0C9C8 > > [ 66.811551] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0x6A0C9C8 > > [ 66.937204] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0x6A0C9C8 > > [ 66.950679] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0x6A0C9C8 > > [ 67.020994] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.092917] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.164905] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.236957] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.308928] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.380902] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.452954] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.524881] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.596917] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.668907] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.740908] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > [ 67.860948] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 > > ... > > <snip authentication details> > > # grep ath /proc/interrupts > > 206: 0 0 0 0 PCI-MSI 524288 Edge > > ath9k > > # cat /proc/interrupts > > CPU0 CPU1 CPU2 CPU3 > > 11: 1421 3067 1999 2767 GICv3 30 Level > > arch_timer > > 14: 0 0 0 0 GICv3 79 Level > > timer@306a0000 > > 15: 0 0 0 0 GICv3 23 Level arm-pmu > > 16: 0 0 0 0 GICv3 135 Level > > 302c0000.dma-controller > > 17: 0 0 0 0 GICv3 66 Level > > 302b0000.dma-controller > > 18: 0 0 0 0 GICv3 34 Level > > 30bd0000.dma-controller > > 19: 0 0 0 0 GICv3 58 Level > > 30860000.serial > > 20: 0 0 0 0 GICv3 60 Level > > 30880000.serial > > 21: 289 0 0 0 GICv3 59 Level > > 30890000.serial > > 22: 0 0 0 0 GICv3 110 Level > > 30280000.watchdog > > 23: 390 0 0 0 GICv3 56 Level mmc2 > > 41: 0 0 0 0 gpio-mxc 15 Edge pps.-1 > > 66: 0 0 0 0 gpio-mxc 6 Level > > gateworks-gsc > > 194: 1054 0 0 0 GICv3 67 Level > > 30a20000.i2c > > 195: 0 0 0 0 gateworks-gsc 4 > > Edge 0-0023 > > 196: 25 0 0 0 GICv3 68 Level > > 30a30000.i2c > > 197: 0 0 0 0 GICv3 69 Level > > 30a40000.i2c > > 198: 0 0 0 0 GICv3 64 Level > > 30830000.spi > > 199: 0 0 0 0 GICv3 150 Level > > 30be0000.ethernet > > 200: 0 0 0 0 GICv3 151 Level > > 30be0000.ethernet > > 201: 0 0 0 0 GICv3 152 Level > > 30be0000.ethernet > > 202: 0 0 0 0 GICv3 153 Level > > 30be0000.ethernet > > 205: 6891 0 0 0 PCI-MSI 0 Edge > > PCIe PME > > 206: 0 0 0 0 PCI-MSI 524288 Edge > > ath9k > > 207: 0 0 0 0 GICv3 72 Level > > 32e40000.usb > > 208: 18 0 0 0 GICv3 73 Level > > 32e50000.usb > > 209: 0 0 0 0 gateworks-gsc 0 > > Edge user_pb1x > > 210: 0 0 0 0 gateworks-gsc 1 > > Edge key_erased > > 211: 0 0 0 0 gateworks-gsc 2 > > Edge eeprom_wp > > 212: 0 0 0 0 gateworks-gsc 5 > > Edge tamper > > 213: 0 0 0 0 gateworks-gsc 7 > > Edge switch_hold > > 214: 0 0 0 0 0-0023 2 Edge user_pb > > IPI0: 646 64 692 808 Rescheduling interrupts > > IPI1: 1211 893 503 1097 Function call interrupts > > IPI2: 0 0 0 0 CPU stop interrupts > > IPI3: 0 0 0 0 CPU stop (for > > crash dump) interrupts > > IPI4: 0 0 0 0 Timer broadcast > > interrupts > > IPI5: 9 13 12 8 IRQ work interrupts > > IPI6: 0 0 0 0 CPU wake-up interrupts > > Err: 0 > > ^^^ It looks to me like when using MSI above the interrupts are going > > to the PME driver MSI 0 and the ath9k MSI interrupt shows as 524288 > > which aligns to 4 but seems strange that its so large. > > > > Does this jive with what you encountered? > > > > Note that ath10k which require MSI interrupts are working fine on this > > platform and the MSI interrupt is also 524288: > > 205: 0 0 0 0 PCI-MSI 0 Edge > > PCIe PME > > 206: 632 0 0 0 PCI-MSI 524288 Edge > > ath10k_pci > > > > Note that ath11k which requires MSI interrupts is also working fine on > > this board: > > 205: 0 0 0 0 PCI-MSI 0 Edge > > PCIe PME > > 206: 4 0 0 0 PCI-MSI 524288 Edge bhi > > 207: 4 0 0 0 PCI-MSI 524289 Edge mhi > > 208: 39 0 0 0 PCI-MSI 524290 Edge mhi > > 209: 3 0 0 0 PCI-MSI 524291 Edge ce0 > > 210: 26 0 0 1 PCI-MSI 524292 Edge ce1 > > 211: 267 0 0 1 PCI-MSI 524293 Edge ce2 > > 212: 88 0 0 0 PCI-MSI 524294 Edge ce3 > > 213: 0 0 0 1 PCI-MSI 524295 Edge ce5 > > 214: 2 0 0 0 PCI-MSI 524296 Edge > > DP_EXT_IRQ > > 215: 0 0 0 0 PCI-MSI 524297 Edge > > DP_EXT_IRQ > > 216: 0 0 0 0 PCI-MSI 524298 Edge > > DP_EXT_IRQ > > 217: 15 0 0 0 PCI-MSI 524299 Edge > > DP_EXT_IRQ > > 218: 0 0 0 0 PCI-MSI 524300 Edge > > DP_EXT_IRQ > > 219: 2 0 0 0 PCI-MSI 524301 Edge > > DP_EXT_IRQ > > 220: 0 0 0 0 PCI-MSI 524302 Edge > > DP_EXT_IRQ > > 221: 0 0 0 0 PCI-MSI 524303 Edge > > DP_EXT_IRQ > > > > Now, if I move back to an imx8mm-venice-gw73xx-0x which has an IMX8MM > > and a PCI bridge I can't even get the legacy IRQ configuration to work > > (no interrupts): > > # cat /proc/cmdline > > pci=nomsi > > # lspci > > 00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 / PCIe bridge (rev 01) > > 01:00.0 PCI bridge: Pericom Semiconductor Device b404 (rev 01) > > 02:01.0 PCI bridge: Pericom Semiconductor Device b404 (rev 01) > > 02:02.0 PCI bridge: Pericom Semiconductor Device b404 (rev 01) > > 02:03.0 PCI bridge: Pericom Semiconductor Device b404 (rev 01) > > 04:00.0 Network controller: Qualcomm Atheros QCA9565 / AR9565 Wireless > > Network Adapter (rev 01) > > 05:00.0 Ethernet controller: Microchip Technology / SMSC Device 7430 (rev 11) > > # dmesg | grep ath > > [ 2.475134] ath9k 0000:04:00.0: enabling device (0000 -> 0002) > > [ 2.481157] ath: phy0: WB335 2-ANT card detected > > [ 2.485797] ath: phy0: Set BT/WLAN RX diversity capability > > [ 2.499443] ath: phy0: Enable LNA combining > > [ 2.504837] ath: EEPROM regdomain: 0x6a > > [ 2.504845] ath: EEPROM indicates we should expect a direct regpair map > > [ 2.504853] ath: Country alpha2 being used: 00 > > [ 2.504858] ath: Regpair used: 0x6a > > [ 10.237297] ath9k 0000:04:00.0 wlp4s0: renamed from wlan0 > > # wpa_supplicant -i wlp4s0 -c wpa_supplicant.conf > > <snip failed auth> > > # grep -i pci /proc/interrupts > > 204: 0 0 0 0 GICv3 157 Level > > PCIe PME, ath9k > > # cat /proc/interrupts > > CPU0 CPU1 CPU2 CPU3 > > 11: 1550 3047 2199 4301 GICv3 30 Level > > arch_timer > > 14: 0 0 0 0 GICv3 79 Level > > timer@306a0000 > > 15: 0 0 0 0 GICv3 23 Level arm-pmu > > 16: 0 0 0 0 GICv3 135 Level > > 302c0000.dma-controller > > 17: 0 0 0 0 GICv3 66 Level > > 302b0000.dma-controller > > 18: 332 0 0 0 GICv3 34 Level > > 30bd0000.dma-controller > > 19: 0 0 0 0 GICv3 58 Level > > 30860000.serial > > 20: 773 0 0 0 GICv3 59 Level > > 30890000.serial > > 21: 0 0 0 0 GICv3 61 Level > > 30a60000.serial > > 22: 0 0 0 0 GICv3 110 Level > > 30280000.watchdog > > 23: 433 0 0 0 GICv3 56 Level mmc2 > > 41: 0 0 0 0 gpio-mxc 15 Edge pps.-1 > > 66: 0 0 0 0 gpio-mxc 6 Level > > gateworks-gsc > > 72: 0 0 0 0 gpio-mxc 12 Edge > > 30b50000.mmc cd > > 170: 4 0 0 0 gpio-mxc 8 Edge > > 30880000.serial > > 194: 1282 0 0 0 GICv3 67 Level > > 30a20000.i2c > > 195: 0 0 0 0 gateworks-gsc 4 > > Edge 0-0023 > > 196: 25 0 0 0 GICv3 68 Level > > 30a30000.i2c > > 197: 0 0 0 0 GICv3 69 Level > > 30a40000.i2c > > 198: 0 0 0 0 GICv3 60 Level > > 30880000.serial > > 199: 0 0 0 0 GICv3 64 Level > > 30830000.spi > > 200: 0 0 0 0 GICv3 150 Level > > 30be0000.ethernet > > 201: 0 0 0 0 GICv3 151 Level > > 30be0000.ethernet > > 202: 0 0 0 0 GICv3 152 Level > > 30be0000.ethernet > > 203: 0 0 0 0 GICv3 153 Level > > 30be0000.ethernet > > 204: 0 0 0 0 GICv3 157 Level > > PCIe PME, ath9k > > 205: 0 0 0 0 GICv3 72 Level > > 32e40000.usb > > 206: 105 0 0 0 GICv3 73 Level > > 32e50000.usb > > 207: 6244 0 0 0 GICv3 54 Level mmc0 > > 208: 0 0 0 0 GICv3 55 Level mmc1 > > 209: 0 0 0 0 gateworks-gsc 0 > > Edge user_pb1x > > 210: 0 0 0 0 gateworks-gsc 1 > > Edge key_erased > > 211: 0 0 0 0 gateworks-gsc 2 > > Edge eeprom_wp > > 212: 0 0 0 0 gateworks-gsc 5 > > Edge tamper > > 213: 0 0 0 0 gateworks-gsc 7 > > Edge switch_hold > > 214: 0 0 0 0 0-0023 2 Edge user_pb > > IPI0: 367 486 444 286 Rescheduling interrupts > > IPI1: 972 1283 1202 1630 Function call interrupts > > IPI2: 0 0 0 0 CPU stop interrupts > > IPI3: 0 0 0 0 CPU stop (for > > crash dump) interrupts > > IPI4: 0 0 0 0 Timer broadcast > > interrupts > > IPI5: 5 6 7 36 IRQ work interrupts > > IPI6: 0 0 0 0 CPU wake-up interrupts > > Err: 0 > > ^^^ why no interrupts on this board when disabling MSI globally and > > using ath9k legacy interrupts.... something to do with the bridge? > > > > Best Regards, > > > > Tim > > > > > > > > On Mon, Mar 20, 2023 at 4:29 AM Daniel Drake <drake@xxxxxxxxxxxxx> wrote: > > > > > > On Sat, Mar 18, 2023 at 8:17 AM Tim Harvey <tharvey@xxxxxxxxxxxxx> wrote: > > > > It seems that Daniel may have been running into something similar back > > > > when commit 7368160f0ab0 ("ath9k: add MSI support") was merged > > > > [1][2][3] > > > > > > > > Does anyone have any advice here about what can be going on? > > > > > > The issue we found earlier was that ath9k MSI is broken unless the MSI > > > IRQ number coincidentally is aligned to 4. > > > > > > Worked around with: > > > https://github.com/endlessm/linux/commit/0a2d86a2b9da8f936d873addf0a97e341177fe8a > > > https://github.com/endlessm/linux/commit/970d2b4b59465cd926e5213e0feb633f6b623447 > > > > > > IIRC the PCI patch wasn't accepted upstream at the time and I never > > > got any response from Atheros/Qualcomm about this device > > > hardware/firmware bug. > > > > > > Daniel