Greetings, I'm running into an issue regarding ath9k interrupts on imx8mm SoC's. I'm using the latest kernel source (master) but have recreated this all the way back to 5.15. I find on boards with an IMX8MM (ie imx8mm-venice-gw320x-0x device-tree) ath9k will not trigger any legacy interrupts. # dmesg | grep ath [ 2.468657] ath9k 0000:04:00.0: enabling device (0000 -> 0002) [ 2.474702] ath: phy0: WB335 2-ANT card detected [ 2.479341] ath: phy0: Set BT/WLAN RX diversity capability [ 2.493720] ath: phy0: Enable LNA combining [ 2.499099] ath: EEPROM regdomain: 0x6a [ 2.499106] ath: EEPROM indicates we should expect a direct regpair map [ 2.499114] ath: Country alpha2 being used: 00 [ 2.499119] ath: Regpair used: 0x6a [ 8.167876] ath9k 0000:04:00.0 wlp4s0: renamed from wlan0 # wpa_supplicant -i wlp4s0 -c wpa_supplicant.conf -B Successfully initialized wpa_supplicant # [ 143.368897] wlp4s0: authenticate with 04:f0:21:59:3c:f8 [ 143.374230] wlp4s0: 80 MHz not supported, disabling VHT [ 143.391982] wlp4s0: send auth to 04:f0:21:59:3c:f8 (try 1/3) [ 144.831653] wlp4s0: send auth to 04:f0:21:59:3c:f8 (try 2/3) [ 145.823657] wlp4s0: send auth to 04:f0:21:59:3c:f8 (try 3/3) [ 146.815655] wlp4s0: authentication with 04:f0:21:59:3c:f8 timed out [ 147.896946] wlp4s0: authenticate with 04:f0:21:59:3c:f8 [ 147.902290] wlp4s0: 80 MHz not supported, disabling VHT .... # grep ath /proc/interrupts 205: 0 0 0 0 GICv3 157 Level ath9k ^^^ no interrupts I've read that some SoC miniPCIe controllers don't support legacy interrupts so I try again adding 'ath9k.use_msi=1' to bootargs: root@jammy-venice:~# dmesg | grep ath [ 4.314829] systemd[1]: Reached target Path Units. [ 7.707747] usbcore: registered new interface driver ath3k [ 7.792173] ath9k 0000:03:00.0: enabling device (0000 -> 0002) [ 7.792471] ath9k 0000:03:00.0: Using MSI [ 7.796661] ath: phy0: WB335 2-ANT card detected [ 7.796674] ath: phy0: Set BT/WLAN RX diversity capability [ 7.804722] ath: phy0: Enable LNA combining [ 7.805995] ath: EEPROM regdomain: 0x6a [ 7.806008] ath: EEPROM indicates we should expect a direct regpair map [ 7.806015] ath: Country alpha2 being used: 00 [ 7.806019] ath: Regpair used: 0x6a [ 8.493786] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0x6A0C9C8 [ 8.501691] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0x6A0C9C8 [ 8.515139] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0x6A0C9C8 [ 8.632850] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0x6A0C9C8 [ 8.646438] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0x6A0C9C8 [ 8.716020] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 [ 8.787447] ath: phy0: __ath9k_hw_enable_interrupts: _msi_reg = 0xEA0C9C8 ... root@jammy-venice:~# grep ath /proc/interrupts 239: 0 0 0 0 PCI-MSI 1572864 Edge ath9k ^^^ now the driver is having trouble with MSI interrupts and the device doesn't work Strangely when I use the same radio and kernel on an IMX6Q board (ie imx6q-gw54xx) (which has the same PCI MAC but different PHY than the IMX8MM) I find that I 'must' use legacy interrupts and trying to use MSI interrupts results in the above behavior. Note that the boards I'm using have a PCI switch and I'm wondering if that is causing the issue. Additionally I can say that ath10k cards work fine on the same imx8mm board with MSI interrupts. 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? Best Regards, Tim [1] https://patchwork.kernel.org/project/linux-wireless/patch/20171011101806.6295-1-rhu@xxxxxxxxxxxxxxxx/ [2] https://marc.info/?l=linux-pci&m=150238260826803&w=2 [3] https://marc.info/?l=linux-pci&m=150831581725596&w=2