diff options
Diffstat (limited to 'drivers/acpi/pci_irq.c')
| -rw-r--r-- | drivers/acpi/pci_irq.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c index b0a71ecee68..e4804fb05e2 100644 --- a/drivers/acpi/pci_irq.c +++ b/drivers/acpi/pci_irq.c @@ -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;  |