diff options
Diffstat (limited to 'drivers')
| -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 | } |
