diff options
Diffstat (limited to 'drivers/acpi/pci_irq.c')
-rw-r--r-- | drivers/acpi/pci_irq.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c index 9c62340c2360..c96887d5289e 100644 --- a/drivers/acpi/pci_irq.c +++ b/drivers/acpi/pci_irq.c | |||
@@ -481,6 +481,10 @@ void acpi_pci_irq_disable(struct pci_dev *dev) | |||
481 | if (!pin) | 481 | if (!pin) |
482 | return; | 482 | return; |
483 | 483 | ||
484 | /* Keep IOAPIC pin configuration when suspending */ | ||
485 | if (dev->dev.power.is_prepared) | ||
486 | return; | ||
487 | |||
484 | entry = acpi_pci_irq_lookup(dev, pin); | 488 | entry = acpi_pci_irq_lookup(dev, pin); |
485 | if (!entry) | 489 | if (!entry) |
486 | return; | 490 | return; |
@@ -498,5 +502,6 @@ void acpi_pci_irq_disable(struct pci_dev *dev) | |||
498 | */ | 502 | */ |
499 | 503 | ||
500 | dev_dbg(&dev->dev, "PCI INT %c disabled\n", pin_name(pin)); | 504 | dev_dbg(&dev->dev, "PCI INT %c disabled\n", pin_name(pin)); |
501 | acpi_unregister_gsi(gsi); | 505 | if (gsi >= 0 && dev->irq > 0) |
506 | acpi_unregister_gsi(gsi); | ||
502 | } | 507 | } |