mirror of https://gitee.com/openkylin/linux.git
[PATCH] usb/core/hcd-pci.c: don't free_irq() on suspend
the free_irq() in USB suspend breaks resume on some setups where USB (ohci/ehci) shares the interrupt with an other device. Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
1294b118cb
commit
03cdc0c304
|
@ -242,7 +242,6 @@ int usb_hcd_pci_suspend (struct pci_dev *dev, pm_message_t message)
|
|||
case HC_STATE_SUSPENDED:
|
||||
/* no DMA or IRQs except when HC is active */
|
||||
if (dev->current_state == PCI_D0) {
|
||||
free_irq (hcd->irq, hcd);
|
||||
pci_save_state (dev);
|
||||
pci_disable_device (dev);
|
||||
}
|
||||
|
@ -374,14 +373,6 @@ int usb_hcd_pci_resume (struct pci_dev *dev)
|
|||
|
||||
hcd->state = HC_STATE_RESUMING;
|
||||
hcd->saw_irq = 0;
|
||||
retval = request_irq (dev->irq, usb_hcd_irq, SA_SHIRQ,
|
||||
hcd->irq_descr, hcd);
|
||||
if (retval < 0) {
|
||||
dev_err (hcd->self.controller,
|
||||
"can't restore IRQ after resume!\n");
|
||||
usb_hc_died (hcd);
|
||||
return retval;
|
||||
}
|
||||
|
||||
retval = hcd->driver->resume (hcd);
|
||||
if (!HC_IS_RUNNING (hcd->state)) {
|
||||
|
|
Loading…
Reference in New Issue