Re: ath9k legacy vs MSI interrupt issue on imx8mm soc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux