On Tue, Feb 25, 2014 at 11:22:57PM +0100, Richard Schütz wrote: > Hi everybody! > > I am experiencing a problem with my USB card reader and xHCI. Simply > using dd to write an image to a SD card results in USB resets after > a few seconds. Reading with dd or using cp after creating a > filesystem on the card also triggers the issue but usually not as > quick as writing to it with dd. All in all it is unusable. Sometimes > these resets also happen immediately after connecting the reader. > With EHCI everything just works fine. Did it ever work under xHCI? If so, which kernel version did it work on? I'm Ccing the usb-storage developers, in case the usbmon trace provides some insight. > relevant kernel output: > usb 1-2: new high-speed USB device number 19 using xhci_hcd > usb-storage 1-2:1.0: USB Mass Storage device detected > scsi22 : usb-storage 1-2:1.0 > scsi 22:0:0:0: Direct-Access Generic USB SD Reader 1.00 PQ: > 0 ANSI: 0 > scsi 22:0:0:1: Direct-Access Generic USB CF Reader 1.01 PQ: > 0 ANSI: 0 > scsi 22:0:0:2: Direct-Access Generic USB SM Reader 1.02 PQ: > 0 ANSI: 0 > scsi 22:0:0:3: Direct-Access Generic USB MS Reader 1.03 PQ: > 0 ANSI: 0 > sd 22:0:0:0: [sdb] 15646720 512-byte logical blocks: (8.01 GB/7.46 GiB) > sd 22:0:0:0: [sdb] Write Protect is off > sd 22:0:0:0: [sdb] Mode Sense: 03 00 00 00 > sd 22:0:0:0: [sdb] No Caching mode page found > sd 22:0:0:0: [sdb] Assuming drive cache: write through > sd 22:0:0:1: [sdc] Attached SCSI removable disk > sd 22:0:0:2: [sdd] Attached SCSI removable disk > sd 22:0:0:3: [sde] Attached SCSI removable disk > sd 22:0:0:0: [sdb] No Caching mode page found > sd 22:0:0:0: [sdb] Assuming drive cache: write through > sdb: unknown partition table > sd 22:0:0:0: [sdb] No Caching mode page found > sd 22:0:0:0: [sdb] Assuming drive cache: write through > sd 22:0:0:0: [sdb] Attached SCSI removable disk > usb 1-2: reset high-speed USB device number 19 using xhci_hcd > xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled > ep ffff8801b6837600 > xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled > ep ffff8801b6837640 > sd 22:0:0:0: [sdb] Media Changed > sd 22:0:0:0: [sdb] > Result: hostbyte=0x00 driverbyte=0x08 > sd 22:0:0:0: [sdb] > Sense Key : 0x6 [current] > Info fld=0x0 > sd 22:0:0:0: [sdb] > ASC=0x28 ASCQ=0x0 > sd 22:0:0:0: [sdb] CDB: > cdb[0]=0x28: 28 00 00 00 1d 20 00 00 08 00 > end_request: I/O error, dev sdb, sector 7456 > sd 22:0:0:0: [sdb] No Caching mode page found > sd 22:0:0:0: [sdb] Assuming drive cache: write through > sd 22:0:0:0: [sdb] No Caching mode page found > sd 22:0:0:0: [sdb] Assuming drive cache: write through > sdb: unknown partition table It might help you to turn on CONFIG_USB_STORAGE_DEBUG, to see which SCSI command is failing. > $ uname -r > 3.13.5-1-ARCH > > $ lspci -nn|grep USB > 00:14.0 USB controller [0c03]: Intel Corporation 7 Series/C210 > Series Chipset Family USB xHCI Host Controller [8086:1e31] (rev 04) > 00:1a.0 USB controller [0c03]: Intel Corporation 7 Series/C210 > Series Chipset Family USB Enhanced Host Controller #2 [8086:1e2d] > (rev 04) > 00:1d.0 USB controller [0c03]: Intel Corporation 7 Series/C210 > Series Chipset Family USB Enhanced Host Controller #1 [8086:1e26] > (rev 04) > > # lsusb -d 058f:6362 -v Can you blacklist the usb-storage driver, and get the lsusb output when the device is plugged into a USB 3.0 port? I'd like to see the SuperSpeed Endpoint Companion Descriptor, to see what the Link PM U1/U2 timeout values are. > Bus 001 Device 020: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 2.00 > bDeviceClass 0 (Defined at Interface level) > bDeviceSubClass 0 > bDeviceProtocol 0 > bMaxPacketSize0 64 > idVendor 0x058f Alcor Micro Corp. > idProduct 0x6362 Flash Card Reader/Writer > bcdDevice 1.29 > iManufacturer 1 Generic > iProduct 2 Mass Storage Device > iSerial 3 058F312D81B > bNumConfigurations 1 > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 32 > bNumInterfaces 1 > bConfigurationValue 1 > iConfiguration 0 > bmAttributes 0x80 > (Bus Powered) > MaxPower 250mA > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 0 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 8 Mass Storage > bInterfaceSubClass 6 SCSI > bInterfaceProtocol 80 Bulk-Only > 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 0x0200 1x 512 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 0x0200 1x 512 bytes > bInterval 0 > Device Qualifier (for other device speed): > bLength 10 > bDescriptorType 6 > bcdUSB 2.00 > bDeviceClass 0 (Defined at Interface level) > bDeviceSubClass 0 > bDeviceProtocol 0 > bMaxPacketSize0 64 > bNumConfigurations 1 > Device Status: 0x0000 > (Bus Powered) > > usbmon trace (writing /dev/zero to card with dd triggering the issue): > http://pastebin.com/raw.php?i=dNbtUeJY Sarah Sharp -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html