Search Linux Wireless

atheros ath9k_htc - EP4 Issue / BOGUS urb xfer, pipe 1 != type 3

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

 



Hi,
I am using the TPLink TL721N on an ARM MX21 platform, Linux Kernel 3.0

I am facing the following issue when the adapter is connected directly
to the USB Hub.

1) ifconfig -a does not show the wlan node
2) the adapter is detected on the USB bus
3) The ath9k_htc modules are loaded

 lsmod | grep ath

ath9k_htc              62752  0
mac80211              246895  1 ath9k_htc
ath9k_common            1844  1 ath9k_htc
ath9k_hw              420273  2 ath9k_htc,ath9k_common
ath                    14838  3 ath9k_htc,ath9k_common,ath9k_hw
cfg80211              185010  3 ath9k_htc,mac80211,ath
compat                 10249  5
ath9k_htc,mac80211,ath9k_common,ath9k_hw,cfg80211

3) A particular process goes into the D state when this issue occurs

root       2281  0.0  0.0      0     0 ?        D    01:59   0:00
[firmware/htc_92]

4) dmesg shows the following

[   78.304878] Loading modules backported from Linux version v3.12.8-0-g97f15f1
[   78.304949] Backport generated by backports.git v3.12.8-1-0-geb41fad
[   78.769683] cfg80211: Calling CRDA to update world regulatory domain
[   79.806939] usb 1-2: ath9k_htc: Firmware htc_9271.fw requested
[   79.811791] usbcore: registered new interface driver ath9k_htc
[   80.336612] usb 1-2: ath9k_htc: Transferred FW: htc_9271.fw, size: 51008
[   80.621685] ath9k_htc 1-2:1.0: ath9k_htc: HTC initialized with 33 credits

The htc_9271.fw being used is version 1.4 taken from here
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/htc_9271.fw?id=216de39deef589d1a233abb2037d765aebbf4151


The ath9k_htc drivers are being used from the backports project and
contains this patch
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/net/wireless/ath/ath9k/hif_usb.c?id=2b721118b7821107757eb1d37af4b60e877b27e7

However inspite of this Endpoint 4 is configured as Bulk

Bus 001 Device 002: ID 0cf3:9271 Atheros Communications, Inc. AR9271 802.11n
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0        64
  idVendor           0x0cf3 Atheros Communications, Inc.
  idProduct          0x9271 AR9271 802.11n
  bcdDevice           ff.ff
  iManufacturer          16
  iProduct               32
  iSerial                48
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           60
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           6
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x05  EP 5 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0


If I enable CONFIG_USB_DEBUG, then I always get the following error message
BOGUS urb xfer, pipe 1 != type 3

If I do not enable CONFIG_USB_DEBUG, the adapter works sometimes and
sometimes it does not. To get the adapter in a working state, I must
un plug it from the USB and then plug it back again.

AFTER A REBOOT
Once the above issue occurs, a software reboot renders the adapter not
to be enumerated/detected on the USB. That is a lsusb does not display
the model/serial of the adapter.

dmesg log:
usb 1-2: device descriptor read/64, error -110
usb 1-2: device descriptor read/64, error -110
usb 1-2: new full speed USB device number 5 using imx21-hcd
usb 1-2: device descriptor read/64, error -110
usb 1-2: device descriptor read/64, error -110
hub 1-0:1.0: unable to enumerate USB device on port 2


I referred to the instructions as mentioned here and ensured that
https://github.com/qca/open-ath9k-htc-firmware/wiki/usb-related-issues#bogus-urb-xfer-pipe-1--type-3

1) the driver has the patch
2) the firmware being used is 1.4

However the device is being configured in Full Speed mode.
usb 1-2: new full speed USB device number 2 using imx21-hcd

Could someone offer some suggestions if there are some workarounds in
the software? Is there anything more that I can try out or any areas I
can investigate to try and fix this issue? I am presently reading
through the device driver to see if I can fix it there, but am not
making much progress.

Regards,
Max



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux