Search Linux Wireless

ath5k: no interrupts

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

 



I am using Atheros AR5414 card in a custom Geode LX-based board.
It is a mini-PCI card with PCI ID 168c:001b.

Under the 2.6.25 kernel, the ath5k driver works.
Under the 3.0.9 and 3.2.0 kernels, the card does not work.
By 'does not work' I mean that it can't find any access points.  After digging
a bit, it looks like interrupts are not occurring.

Here is a snippet of the kernel log (Geode LX/3.0.9):
[    1.712119] cfg80211: Calling CRDA to update world regulatory domain
[    1.801089] ath5k 0000:00:0c.0: PCI INT A -> Link[LNKA] -> GSI 10
(level, low) -> IRQ 10
[    1.801270] ath5k 0000:00:0c.0: registered as 'phy0'
[    2.468139] ath: EEPROM regdomain: 0x0
[    2.468158] ath: EEPROM indicates default country code should be used
[    2.468176] ath: doing EEPROM country->regdmn map search
[    2.468200] ath: country maps to regdmn code: 0x3a
[    2.468217] ath: Country alpha2 being used: US
[    2.468233] ath: Regpair used: 0x3a
[    2.468862] ieee80211 phy0: Selected rate control algorithm 'pid'
[    2.471545] ath5k phy0: Atheros AR5414 chip found (MAC: 0xa5, PHY: 0x61)

~ # cat /proc/interrupts
          CPU0
 0:      43630    XT-PIC-XT-PIC    timer
 2:          0    XT-PIC-XT-PIC    cascade
 3:          1    XT-PIC-XT-PIC
 4:          1    XT-PIC-XT-PIC
 8:          0    XT-PIC-XT-PIC    rtc0
 9:          0    XT-PIC-XT-PIC    acpi
10:          0    XT-PIC-XT-PIC    ath
11:       2373    XT-PIC-XT-PIC    ehci_hcd:usb1, ohci_hcd:usb2, eth0
14:        418    XT-PIC-XT-PIC    pata_cs5536
NMI:          0   Non-maskable interrupts
LOC:          0   Local timer interrupts
SPU:          0   Spurious interrupts
PMI:          0   Performance monitoring interrupts
IWI:          0   IRQ work interrupts
ERR:          0
MIS:          0

The 'registers' from debugfs show that an interrupt is pending.
~ # cat /debug/ieee80211/phy1/ath5k/registers
AR5K_CR                  0x00000004
AR5K_RXDP                0x1f3524e0
AR5K_CFG                 0x00000100
AR5K_IER                 0x00000001
AR5K_BCR                 0x00000000
AR5K_RTSD0               0x00000000
AR5K_RTSD1               0x00000000
AR5K_TXCFG               0x00000015
AR5K_RXCFG               0x00000005
AR5K_RXJLA               0x1f3524f0
AR5K_MIBC                0x00000001
AR5K_TOPS                0x00000008
AR5K_RXNOFRM             0x00000000
AR5K_TXNOFRM             0x00000000
AR5K_RPGTO               0x00000000
AR5K_RFCNT               0x0000001f
AR5K_MISC                0x00000000
AR5K_QCUDCU_CLKGT        0x00de96a1
AR5K_ISR                 0x00000000
AR5K_PISR                0x00045005
AR5K_SISR0               0x00000000
AR5K_SISR1               0x00000000
AR5K_SISR2               0x88800000
AR5K_SISR3               0x00000000
AR5K_SISR4               0x00000000
AR5K_IMR                 0x00000000
AR5K_PIMR                0x800814b5
AR5K_SIMR0               0x00cf0000
AR5K_SIMR1               0x004f0000
AR5K_SIMR2               0x00070000
AR5K_SIMR3               0x00000000
AR5K_SIMR4               0x00000000
AR5K_DCM_ADDR            0x00000012
AR5K_DCCFG               0x00000000
AR5K_CCFG                0x00000000
AR5K_CPC0                0x00000000
AR5K_CPC1                0x00000000
AR5K_CPC2                0x00000000
AR5K_CPC3                0x00000000
AR5K_CPCOVF              0x00000000
AR5K_RESET_CTL           0x00000000
AR5K_SLEEP_CTL           0x00000000
AR5K_INTPEND             0x00000001
AR5K_SFR                 0x00000000
AR5K_PCICFG              0x00000014
AR5K_GPIOCR              0x00008000
AR5K_GPIODO              0x00000001
AR5K_SREV                0x000000a5


For comparison, I also have an older Geode GX-based board with the same Atheros
card.  The exact same 3.0.9 image works just fine on that board.
Here is the same group of kernel logs:
[    6.033111] cfg80211: Calling CRDA to update world regulatory domain
[    6.455114] ath5k 0000:00:0d.0: guessed PCI INT A -> IRQ 11
[    6.455965] ath5k 0000:00:0d.0: registered as 'phy0'
[    7.228768] ath: EEPROM regdomain: 0x0
[    7.228800] ath: EEPROM indicates default country code should be used
[    7.228828] ath: doing EEPROM country->regdmn map search
[    7.228865] ath: country maps to regdmn code: 0x3a
[    7.228893] ath: Country alpha2 being used: US
[    7.228918] ath: Regpair used: 0x3a
[    7.230164] ieee80211 phy0: Selected rate control algorithm 'pid'
[    7.234204] ath5k phy0: Atheros AR5414 chip found (MAC: 0xa5, PHY: 0x61)

The only significant difference is the line that shows the IRQ.


At this point, I'm not sure if this is a problem with the ath5k driver or with
the something else that changed in the kernel between the two versions, or with
the CPU board itself.

I have not yet done a bisect to see when the driver stopped working on the LX.
I plan to do that next.

Any suggestions as to what to look for would be helpful.

Thanks,
Ben
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux