Return-path: Received: from mail-wr0-f172.google.com ([209.85.128.172]:36231 "EHLO mail-wr0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751120AbdHZXbl (ORCPT ); Sat, 26 Aug 2017 19:31:41 -0400 Received: by mail-wr0-f172.google.com with SMTP id p14so8679796wrg.3 for ; Sat, 26 Aug 2017 16:31:41 -0700 (PDT) MIME-Version: 1.0 From: M D Date: Sat, 26 Aug 2017 16:31:39 -0700 Message-ID: (sfid-20170827_013153_607516_7B4FE625) Subject: atheros ath9k_htc - EP4 Issue / BOGUS urb xfer, pipe 1 != type 3 To: linux-wireless@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-wireless-owner@vger.kernel.org List-ID: 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