diff options
Diffstat (limited to 'recipes/linux/linux-mtx-2-2.4.27/42-usb-ohci-fixes.patch')
-rw-r--r-- | recipes/linux/linux-mtx-2-2.4.27/42-usb-ohci-fixes.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/recipes/linux/linux-mtx-2-2.4.27/42-usb-ohci-fixes.patch b/recipes/linux/linux-mtx-2-2.4.27/42-usb-ohci-fixes.patch new file mode 100644 index 0000000000..aa5a0d45f7 --- /dev/null +++ b/recipes/linux/linux-mtx-2-2.4.27/42-usb-ohci-fixes.patch @@ -0,0 +1,51 @@ +--- linux/drivers/usb/host/usb-ohci.c.orig 2006-03-30 11:38:08.972225500 +0200 ++++ linux/drivers/usb/host/usb-ohci.c 2006-03-30 11:39:46.858343000 +0200 +@@ -104,6 +104,10 @@ + + #define OHCI_UNLINK_TIMEOUT (HZ / 10) + ++static int ohci_delay = 3000; ++MODULE_PARM(ohci_delay, "i"); ++MODULE_PARM_DESC(ohci_delay, "Wait time [ms] for OHCI to come up"); ++ + /*-------------------------------------------------------------------------*/ + + /* AMD-756 (D2 rev) reports corrupt register contents in some cases. +@@ -147,7 +151,7 @@ + ohci->complete_head = urb; + ohci->complete_tail = urb; + } else { +- ohci->complete_head->hcpriv = urb; ++ ohci->complete_tail->hcpriv = urb; + ohci->complete_tail = urb; + } + } +@@ -2587,12 +2591,12 @@ + hc_release_ohci (ohci); + return -ENODEV; + } +- ++#if 0 + /* FIXME this is a second HC reset; why?? */ + writel (ohci->hc_control = OHCI_USB_RESET, &ohci->regs->control); + (void)readl (&ohci->regs->intrdisable); /* PCI posting flush */ + wait_ms (10); +- ++#endif + usb_register_bus (ohci->bus); + + if (request_irq (irq, hc_interrupt, SA_SHIRQ, +@@ -2668,6 +2672,13 @@ + void *mem_base; + int status; + ++ printk ("waiting for ohci to come up\n"); ++ mdelay(ohci_delay); ++ /* We have to wait for about four seconds for some devices to be available. ++ * This may only be a matter of the Option Globetrotter Fusion, ++ * that may need to much time to start up correctly. */ ++ printk ("ohci should be up\n"); ++ + if (pci_enable_device(dev) < 0) + return -ENODEV; + |