summaryrefslogtreecommitdiff
path: root/packages/linux/linux-mtx-1-2.4.27/42-usb-ohci-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/linux-mtx-1-2.4.27/42-usb-ohci-fixes.patch')
-rw-r--r--packages/linux/linux-mtx-1-2.4.27/42-usb-ohci-fixes.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/packages/linux/linux-mtx-1-2.4.27/42-usb-ohci-fixes.patch b/packages/linux/linux-mtx-1-2.4.27/42-usb-ohci-fixes.patch
new file mode 100644
index 0000000000..4c3058ce00
--- /dev/null
+++ b/packages/linux/linux-mtx-1-2.4.27/42-usb-ohci-fixes.patch
@@ -0,0 +1,42 @@
+--- 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.
+@@ -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;
+