mainboard/google/parrot: fix ACPI interrupt storm on lid switch change

This fixes the ACPI interrupt storm on Parrot that happens when
closing the lid or entering suspend by lid close (seen in
/sys/firmware/acpi/interrupts/gpe1F). This patch inverts the interrupt
trigger level every time the interrupt is received so that it doesn't fire
until the next state change.  http://askubuntu.com/questions/310196
is a good example of what this is trying to solve.

Change-Id: I8b095914e9330c3217a4ceb058613fa952f4a234
Signed-off-by: Andrew Litt <ajlitt@splunge.net>
Reviewed-on: http://review.coreboot.org/6858
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Aaron Durbin <adurbin@google.com>
This commit is contained in:
Andrew Litt 2014-09-09 10:49:19 -05:00 committed by Aaron Durbin
parent 802c910fa3
commit 955ca5d948
1 changed files with 7 additions and 0 deletions

View File

@ -22,6 +22,13 @@
Scope (\_GPE) {
Method(_L1F, 0x0, NotSerialized)
{
/*
* Invert the interrupt level bit for the lid GPIO
* so we don't get another _SB.LID0 until the state
* changes again. GIV1 is the interrupt level control
* register for GPIO bits 15:8
*/
Xor(GIV1, 0x80, GIV1)
Notify(\_SB.LID0,0x80)
}
}