diff options
Diffstat (limited to 'drivers/ieee1394')
-rw-r--r-- | drivers/ieee1394/ohci1394.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/ieee1394/ohci1394.c b/drivers/ieee1394/ohci1394.c index e509e13cb7a7..066726bcb0ee 100644 --- a/drivers/ieee1394/ohci1394.c +++ b/drivers/ieee1394/ohci1394.c | |||
@@ -3381,6 +3381,7 @@ static int ohci1394_pci_suspend(struct pci_dev *dev, pm_message_t state) | |||
3381 | ohci_devctl(ohci->host, RESET_BUS, LONG_RESET_NO_FORCE_ROOT); | 3381 | ohci_devctl(ohci->host, RESET_BUS, LONG_RESET_NO_FORCE_ROOT); |
3382 | ohci_soft_reset(ohci); | 3382 | ohci_soft_reset(ohci); |
3383 | 3383 | ||
3384 | free_irq(dev->irq, ohci); | ||
3384 | err = pci_save_state(dev); | 3385 | err = pci_save_state(dev); |
3385 | if (err) { | 3386 | if (err) { |
3386 | PRINT(KERN_ERR, "pci_save_state failed with %d", err); | 3387 | PRINT(KERN_ERR, "pci_save_state failed with %d", err); |
@@ -3421,6 +3422,13 @@ static int ohci1394_pci_resume(struct pci_dev *dev) | |||
3421 | reg_write(ohci, OHCI1394_IntEventClear, 0xffffffff); | 3422 | reg_write(ohci, OHCI1394_IntEventClear, 0xffffffff); |
3422 | reg_write(ohci, OHCI1394_IntMaskClear, 0xffffffff); | 3423 | reg_write(ohci, OHCI1394_IntMaskClear, 0xffffffff); |
3423 | mdelay(50); | 3424 | mdelay(50); |
3425 | |||
3426 | if (request_irq(dev->irq, ohci_irq_handler, IRQF_SHARED, | ||
3427 | OHCI1394_DRIVER_NAME, ohci)) { | ||
3428 | PRINT_G(KERN_ERR, "Failed to allocate interrupt %d", dev->irq); | ||
3429 | return -EIO; | ||
3430 | } | ||
3431 | |||
3424 | ohci_initialize(ohci); | 3432 | ohci_initialize(ohci); |
3425 | 3433 | ||
3426 | hpsb_resume_host(ohci->host); | 3434 | hpsb_resume_host(ohci->host); |