> Date: Wed, 23 Oct 2002 13:57:49 -0700 > From: David Brownell <[EMAIL PROTECTED]>
> > Out of the blue an ALi engineer contacted me and offered a fix for > > lockups in IBM i-series laptops (RH Bugzilla #50225). I would > > really appreciate if someone ran it on their _regular_ ohci > > to ensure that it does not break non-ALi silicon. Both 2.4 and 2.5 > > are the same (approximately), the patch is against 2.4. > - such problems are not seen with all other ALI setups, this > problem is specific to that i-series configuration or maybe > that rev of ALI silicon (looks like it doesn't like to > enter the OHCI "suspend" state, it's initting wrong). ALi is common in Athlon boards, and it seems to work fine in them. But the workaround does not seem to hurt them, so I'd rather just use the PCI ID without checking the revision. I only saw #3 in lspci traces that I got, but I have no idea if that's constant. -- Pete --- linux-2.4.19/drivers/usb/usb-ohci.c 2002-08-02 17:39:45.000000000 -0700 +++ linux-2.4.19-p3/drivers/usb/usb-ohci.c 2002-10-23 14:22:24.000000000 -0700 @@ -2165,7 +2165,19 @@ /* Reset USB (needed by some controllers) */ writel (0, &ohci->regs->control); - + + /* + * Work around lockups in IBM i1200/i1300. We victimize all similar ALi + * motherboards in the process, but it does not hurt them. + * Fix from Alex T. H. Chou @ALi. + */ + if (ohci->ohci_dev->vendor == PCI_VENDOR_ID_AL && + ohci->ohci_dev->device == PCI_DEVICE_ID_AL_M5237) { + /* Force a state change from USBRESET to USBOPERATIONAL */ + (void) readl (&ohci->regs->control); /* PCI posting above */ + writel (ohci->hc_control = OHCI_USB_OPER, &ohci->regs->control); + } + /* HC Reset requires max 10 ms delay */ writel (OHCI_HCR, &ohci->regs->cmdstatus); while ((readl (&ohci->regs->cmdstatus) & OHCI_HCR) != 0) { ------------------------------------------------------- This sf.net email is sponsored by: Influence the future of Java(TM) technology. Join the Java Community Process(SM) (JCP(SM)) program now. http://ads.sourceforge.net/cgi-bin/redirect.pl?sunm0002en _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel