Neither ehci nor ohci can communicate with newer Corsair Voyager 16GB memory sticks

Bug #123167 reported by mbaker
6
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Won't Fix
Undecided
axion
Nominated for Dapper by axion
Nominated for Feisty by axion
Declined for Gutsy by Luca Falavigna
Nominated for Hardy by axion
Nominated for Intrepid by axion

Bug Description

Older versions of the Corsair Voyager 16GB flash drive work fine, but newer ones do not, with either ehci_hcd or ohci_hcd. Other sticks still work fine on the same machine. Same issue was reported by another user on the Corsair web site. dmesg output:

[11280.012000] usb 1-6: new high speed USB device using ehci_hcd and address 8
[11280.128000] usb 1-6: device descriptor read/64, error -32
[11280.348000] usb 1-6: device descriptor read/64, error -32
[11280.564000] usb 1-6: new high speed USB device using ehci_hcd and address 9
[11280.680000] usb 1-6: device descriptor read/64, error -32
[11280.900000] usb 1-6: device descriptor read/64, error -32
[11281.116000] usb 1-6: new high speed USB device using ehci_hcd and address 10
[11281.524000] usb 1-6: device not accepting address 10, error -32
[11281.636000] usb 1-6: new high speed USB device using ehci_hcd and address 11
[11282.044000] usb 1-6: device not accepting address 11, error -32

USB drivers loaded:

:~# lsmod | grep hci
ehci_hcd 34828 0
ohci1394 36912 0
ieee1394 300088 2 sbp2,ohci1394
ohci_hcd 23172 0
usbcore 135304 7 ehci_hcd,usb_storage,libusual,xpad,usbhid,ohci_hcd

If I try it with uhci instead, the dmesg output looks like this:

[12557.308000] usb 2-6: new full speed USB device using ohci_hcd and address 123
[12559.344000] usb 2-6: device descriptor read/64, error -32
[12559.632000] usb 2-6: device descriptor read/64, error -32
[12559.912000] usb 2-6: new full speed USB device using ohci_hcd and address 124
[12560.096000] usb 2-6: device descriptor read/64, error -32
[12560.384000] usb 2-6: device descriptor read/64, error -32
[12560.664000] usb 2-6: new full speed USB device using ohci_hcd and address 125
[12561.072000] usb 2-6: device not accepting address 125, error -32
[12561.248000] usb 2-6: new full speed USB device using ohci_hcd and address 126
[12561.656000] usb 2-6: device not accepting address 126, error -32

Drivers:

:~# lsmod | grep hci
uhci_hcd 25744 0
ohci1394 36912 0
ieee1394 300088 2 sbp2,ohci1394
ohci_hcd 23172 0
usbcore 135304 7 uhci_hcd,usb_storage,libusual,xpad,usbhid,ohci_hcd

kernel version:
Linux mark-ubuntu704 2.6.20-16-homegrown2 #6 SMP Sun Jun 3 13:40:57 MST 2007 i686 GNU/Linux

Compiled from Ubuntu 7.04 kernel source; only change is 64GB himem support.

The manufacturer seems to have made a design change in this product that broke comm with the Linux USB drivers. It does work in Windows, however, so it seems the Linux drivers are missing something, unless Windows is doing something outside the USB spec.

Revision history for this message
mbaker (mark-baker2) wrote :

Could this be due to design changes made in the device for Vista compatibility? If so, are other flash memory devices affected?

Revision history for this message
Nanley Chery (nanoman) wrote :

Do you still have this issue?

Revision history for this message
axion (bugzilla-axion) wrote :

The solution to this problem is in changing the scsi-inq_timeout of the kernel.

This memory stick has firmware that allows you to create and encrypted security partition. This same firmware checks the stick upon insertion for security partitions. This only happens if you have ever created a second partition, or a non fat32 partition. This check takes more then 5 seconds ( approximately 14 seconds ) so the driver gets timed out and retries to access the stick.

A fix for this problem is changing the timeout either before inserting or reinserting the stick.

Another not so elegant solution is: low-level-formatting or wiping the stick on a windows system and creating a fat32 partition with the tools available on the manufacturers website.

The timeout can be changed with a simple command line instruction:

echo 15 >/sys/module/scsi_mod/parameters/inq_timeout

Or append the following to the kernel boot options:

scsi_mod.inq_timeout=15

For more information see the kernel bugzilla:

http://bugzilla.kernel.org/show_bug.cgi?id=11640

Also see the corsair forum:

http://www.houseofhelp.com/forums/showthread.php?t=73036

This problem arises in all flash-mass-storage devices controlled by a Prolific PL2528 USB-Flash controller. ( http://www.prolific.com.tw/eng/Products.asp?ID=75 ) I have notified Prolific-us of this problem, the us prolific technician has passed this problem on to a Taiwanese technician. The Taiwanese technician has yet to respond.

Revision history for this message
axion (bugzilla-axion) wrote :

Applies to :
  idVendor 0x067b Prolific Technology, Inc.
  idProduct 0x2528

( see sudo lsusb )

In my example it was a AData pd16 ( sports )

Revision history for this message
axion (bugzilla-axion) wrote :

Btw this is a problem in all kernels from 2.4.x all the way to 2.6.26.5 on powerpc as well as x86 platforms

Luke Faraone (lfaraone)
affects: ubuntu → linux (Ubuntu)
Revision history for this message
Brad Figg (brad-figg) wrote : Unsupported series, setting status to "Won't Fix".

This bug was filed against a series that is no longer supported and so is being marked as Won't Fix. If this issue still exists in a supported series, please file a new bug.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.