On Sat, 12 Feb 2005, narci22 wrote:

> All,
> 
> I have a problem with a USB2 PCCard Host... I've tried it on the
> 2.4.29, 2.6.10 and 2.6.11-rc3 kernel...
> 
> Everything initialises fine.. the kernel finds everything and accepts
> the PCCard... but when I attach a USB2 external harddrive to it it
> locks up in [usb-storage-scan] mode.. I have no problems with the
> harddrive if I attach it to the internal USB1 interface...
> 
> every command i give to either scsi or usb gets looked up and i need
> to completely remove the USB2 PCCard host to get my out of the loop...

Is your external hard drive an IDE disk with a USB-IDE converter?

> ...the storage device seems to be identified correctly... at least in
> USB1 mode... using the uhci driver...
> 
> ...I've enabled usb-storage-debug in the kernel... 
> 
> dmesg gives me:

> usb-storage: Command READ_10 (10 bytes)
> usb-storage:  28 00 00 00 00 00 00 00 08 00
> usb-storage: Bulk Command S 0x43425355 T 0x6 L 4096 F 128 Trg 0 LUN 0 CL 10
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_sglist: xfer 4096 bytes, 1 entries
> usb-storage: command_abort called
> usb-storage: usb_stor_stop_transport called
> usb-storage: -- cancelling sg request

Did the log stop there?  I'd expect to see a lot more error messages, as 
the READ command was retried and failed over and over again.

This is an important question.  If the log stopped there, it indicates 
something is wrong with the PC card or its driver.  If the log continues, 
it indicates something is wrong with the hard disk.

> If I compare this log to the log I have when I attach it to the
> internal USB1 interface the usb-storage: Bulk Commands seem to be
> different...

They should all be the same except for the "T" (Tag) entries.

> If anyone has any suggestions on how I can get this to work... pls respond... 

Here's one thing you can try.  In the source code directory for the 
usb-storage driver (drivers/usb/storage in your kernel source), edit the 
transport.c file.  You'll see one place that mentions "udelay"; it looks 
like this in 2.6.11-rc3:

        if (le16_to_cpu(us->pusb_dev->descriptor.idVendor) == 
USB_VENDOR_ID_GENESYS)
                udelay(110);

(Yours will be slightly different depending on which kernel version you
work on.)  You can try commenting out or removing entirely the "if"  
line, leaving just the "udelay" part.  Maybe your device needs that delay,
even though it's not made by Genesys.

Alan Stern



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to