Re: Card reader not working properly with xHCI

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

 



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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux