The follow stops my Palmax from hanging on resume. It seems the OHCI irq
line comes back floating high and kills us totally otherwise
--- linux.vanilla/drivers/usb/usb-ohci.c Sat Mar 11 13:59:12 2000
+++ linux.ac/drivers/usb/usb-ohci.c Fri Mar 17 23:00:05 2000
@@ -1747,16 +1747,27 @@
ohci_t * ohci = (ohci_t*) dev->data;
if (ohci) {
switch (rqst) {
+ /*
+ * We have to disable the OHCI irq. This sucks because we'd rather
+ * not disable a potentially shared IRQ since the other user might
+ * want an IRQ event during suspend. Unfortunately at least some
+ * machines come back with the IRQ floating and if we don't do
+ * this we are dead, defunct, pushing up the silicon daisies.
+ */
case PM_SUSPEND:
dbg("USB-Bus suspend: %p", ohci);
writel (ohci->hc_control = 0xFF, &ohci->regs->control);
wait_ms (10);
+ if(ohci->irq > 0)
+ disable_irq(ohci->irq);
break;
case PM_RESUME:
dbg("USB-Bus resume: %p", ohci);
writel (ohci->hc_control = 0x7F, &ohci->regs->control);
wait_ms (20);
writel (ohci->hc_control = 0xBF, &ohci->regs->control);
+ if(ohci->irq > 0)
+ enable_irq(ohci->irq);
break;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]