broadwell: Disable GPIO controller interrupt
The GPIO controller (configured as IRQ14 by default) is level triggered and active high according to documentation. At the moment it seems to be misbehaving and firing constantly which is preventing package C-states since one core is always busy servicing imaginary events. Until this is understood and fixed don't report an interrupt for the GPIO controller. Since there are 16 peripheral IRQ capable GPIOs this is not used currently. Also remove the hardcoded MADT IRQ override entry for IRQ14 since we are using the GPIO controller in ACPI mode so it gets the interrupt configuration from _CRS. BUG=chrome-os-partner:29548 BRANCH=None TEST=boot on wtm2 and check for package C-state entry with powertop Change-Id: Ibf562fe3512e68d3944fda61a023a1631f7acd57 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/203645 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
1eb65e0583
commit
2d17e98ede
2 changed files with 3 additions and 7 deletions
|
|
@ -604,10 +604,5 @@ unsigned long acpi_madt_irq_overrides(unsigned long current)
|
|||
irqovr = (void *)current;
|
||||
current += acpi_create_madt_irqoverride(irqovr, 0, sci, sci, flags);
|
||||
|
||||
/* GPIO Controller */
|
||||
irqovr = (void *)current;
|
||||
flags = MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_HIGH;
|
||||
current += acpi_create_madt_irqoverride(irqovr, 0, 14, 14, flags);
|
||||
|
||||
return current;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,8 +47,9 @@ Device (GPIO)
|
|||
, // ResourceSourceIndex
|
||||
, // ResourceSource
|
||||
BAR0)
|
||||
Interrupt (ResourceConsumer,
|
||||
Level, ActiveHigh, Shared, , , ) {14}
|
||||
// Disabled due to IRQ storm: http://crosbug.com/p/29548
|
||||
//Interrupt (ResourceConsumer,
|
||||
// Level, ActiveHigh, Shared, , , ) {14}
|
||||
})
|
||||
|
||||
Method (_CRS, 0, NotSerialized)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue