Commit ff4e68e9 authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman

[PATCH] USB: Enable interrupts in UHCI after PM resume

On Mon, 23 Feb 2004, Chip Salzenberg wrote:

> It works ... perfectly!  I can now suspend and resume my A30 with
> impunity, and the USB keyboard works fine after each resume.
>
> Thanks much, Alan.
>
> (Now if I could just get the alsa guys to fix snd-intel8x0...)

This patch re-initializes the UHCI Interrupt Enable register following a
PM resume.  Apparently some systems clear the register during suspend,
which causes obvious problems later on.
parent b86a731c
...@@ -2471,9 +2471,16 @@ static int uhci_resume(struct usb_hcd *hcd) ...@@ -2471,9 +2471,16 @@ static int uhci_resume(struct usb_hcd *hcd)
pci_set_master(to_pci_dev(uhci_dev(uhci))); pci_set_master(to_pci_dev(uhci_dev(uhci)));
if (uhci->state == UHCI_SUSPENDED) if (uhci->state == UHCI_SUSPENDED) {
/*
* Some systems clear the Interrupt Enable register during
* PM suspend/resume, so reinitialize it.
*/
outw(USBINTR_TIMEOUT | USBINTR_RESUME | USBINTR_IOC |
USBINTR_SP, uhci->io_addr + USBINTR);
uhci->resume_detect = 1; uhci->resume_detect = 1;
else { } else {
reset_hc(uhci); reset_hc(uhci);
start_hc(uhci); start_hc(uhci);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment