On Mon, 16 Jul 2007, Branden Sletteland wrote:
> I was able to get my usb storage devices to be recognized as High
> speed devices by commenting out these lines in ehci-hcd.c in a
> 2.6.21.5 kernel:
>
> in function ehci_run:
> hcd->uses_new_polling = 1;
> in function ehci_irq:
> if (pcd_status & STS_PCD)
> usb_hcd_poll_rh_status(hcd);
>
> Any ideas why?
Not a clue.
Do you have CONFIG_USB_SUSPEND enabled? If you do, I would expect that
commenting out those lines in ehci_irq would prevent your controller
from recognizing new devices plugged into a high-speed hub.
Perhaps changing these lines in ehci_hub_control() will work better:
/*
* caller must wait, then call GetPortStatus
* usb 2.0 spec says 50 ms resets on root
*/
ehci->reset_done [wIndex] = jiffies
+ msecs_to_jiffies (50);
Increase the 50 to something like 80 or 100.
As another possibility, you could try putting everything back to its
original state and applying the patch below.
Alan Stern
Index: usb-2.6/drivers/usb/host/ehci-hcd.c
===================================================================
--- usb-2.6.orig/drivers/usb/host/ehci-hcd.c
+++ usb-2.6/drivers/usb/host/ehci-hcd.c
@@ -720,8 +720,10 @@ static irqreturn_t ehci_irq (struct usb_
pcd_status = status;
/* resume root hub? */
- if (!(ehci_readl(ehci, &ehci->regs->command) & CMD_RUN))
+ if (!(ehci_readl(ehci, &ehci->regs->command) & CMD_RUN)) {
usb_hcd_resume_root_hub(hcd);
+ pcd_status = 0;
+ }
while (i--) {
int pstatus = ehci_readl(ehci,
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel