ACPI: Do not raise or lower IRQ if IRQ line is set to IRQ 0.
This commit is contained in:
10
src/acpi.c
10
src/acpi.c
@@ -211,7 +211,10 @@ acpi_update_irq(acpi_t *dev)
|
||||
|
||||
if ((dev->regs.pmcntrl & 0x01) && sci_level) switch (dev->irq_mode) {
|
||||
default:
|
||||
picintlevel(1 << dev->irq_line, &dev->irq_state);
|
||||
if (dev->irq_line != 0)
|
||||
picintlevel(1 << dev->irq_line, &dev->irq_state);
|
||||
else
|
||||
dev->irq_state = 1;
|
||||
break;
|
||||
case 1:
|
||||
pci_set_irq(dev->slot, dev->irq_pin, &dev->irq_state);
|
||||
@@ -223,7 +226,10 @@ acpi_update_irq(acpi_t *dev)
|
||||
break;
|
||||
} else switch (dev->irq_mode) {
|
||||
default:
|
||||
picintclevel(1 << dev->irq_line, &dev->irq_state);
|
||||
if (dev->irq_line != 0)
|
||||
picintclevel(1 << dev->irq_line, &dev->irq_state);
|
||||
else
|
||||
dev->irq_state = 0;
|
||||
break;
|
||||
case 1:
|
||||
pci_clear_irq(dev->slot, dev->irq_pin, &dev->irq_state);
|
||||
|
||||
@@ -1699,6 +1699,8 @@ pipc_init(const device_t *info)
|
||||
acpi_set_nvr(dev->acpi, dev->nvr);
|
||||
|
||||
acpi_init_gporeg(dev->acpi, 0xff, 0xbf, 0xff, 0x7f);
|
||||
|
||||
acpi_set_irq_mode(dev->acpi, 0);
|
||||
}
|
||||
|
||||
return dev;
|
||||
|
||||
Reference in New Issue
Block a user