Hi USB hackers!

I'm a newbie in EHCI hacking land (and not very good at USB internals in 
general), but I'm working with a Linux port for a MIPS-based microcontroller 
with a good old NEC uPD720101 USB 2.0 Host Controller connected to a PCI bus 
on the board. I'm currently running kernel 2.6.17.8, but I would assume that 
this is somewhat stable things that haven't moved too much lately.

Anyway, I have a little problem with the USB/EHCI parts so I was hoping that 
perhaps someone here could offer a little clue or a pointer to where I can get 
more clues myself.

The problem I have is that when I insert my USB cable from my usb-storage 
device into my Linux board, I get a few USB IRQs fine and the USB layer 
detects the presence of a new device and all and sets it up like:

usb 1-1: new high speed USB device using ehci_hcd and address 2

After a short while it fails and I get this back:

usb 1-1: device descriptor read/64, error -145

The timeout (-145) is the one in
drivers/usb/core/message.c:usb_start_wait_urb(). If I follow that function 
(usb_submit_urb) it goes on to hcd_submit_urb() and here's my question coming 
up:

In hcd_submit_urb() it sets up urb->setup_dma and urb->transfer_dma, and it 
calls ehci_urb_enqueue() and then submit_async() ...

But usb_start_wait_urb() in usb/core/message.c times out after 1000 ms, so 
that timeout_kill() is called and usb_unlink_urb() etc.

Does anyone have any interesting clue to offer to what functionality that is 
missing here? I can see it it using usb_internal_control_msg() a couple of 
times just fine before it reaches this point where it fails, but the failing 
point is the first usage of the urb->*_dma stuff.

When the timeout occurs, are "we" waiting for an USB IRQ at that point? Anyone 
feel familiar with the problem and might have an idea what the problem is?

Since this is my own Linux port still, there might be HW-init etc related 
problems and everything, but I feel that I don't quite understand what error 
this is indicating so I'm a bit in the dark right now.

I'll be grateful for whatever hint, advice, pointer or similar I get. If you 
think these are things I should already know about, please enlighten me where 
a good place to pick this knowledge up would be!

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to