|
@@ -401,11 +401,13 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
|
|
|
* driver reported one, then use it. Exit in any case.
|
|
|
*/
|
|
|
if (gsi < 0) {
|
|
|
+ u32 dev_gsi;
|
|
|
dev_warn(&dev->dev, "PCI INT %c: no GSI", pin_name(pin));
|
|
|
/* Interrupt Line values above 0xF are forbidden */
|
|
|
- if (dev->irq > 0 && (dev->irq <= 0xF)) {
|
|
|
- printk(" - using IRQ %d\n", dev->irq);
|
|
|
- acpi_register_gsi(&dev->dev, dev->irq,
|
|
|
+ if (dev->irq > 0 && (dev->irq <= 0xF) &&
|
|
|
+ (acpi_isa_irq_to_gsi(dev->irq, &dev_gsi) == 0)) {
|
|
|
+ printk(" - using ISA IRQ %d\n", dev->irq);
|
|
|
+ acpi_register_gsi(&dev->dev, dev_gsi,
|
|
|
ACPI_LEVEL_SENSITIVE,
|
|
|
ACPI_ACTIVE_LOW);
|
|
|
return 0;
|