diff options
author | Andrew Litt <ajlitt@splunge.net> | 2014-09-09 10:49:19 -0500 |
---|---|---|
committer | Aaron Durbin <adurbin@google.com> | 2014-09-11 16:20:53 +0200 |
commit | 955ca5d948519e89573b1508bb85d3b01353ac60 (patch) | |
tree | 86651a2852279c356c5cccebedab55281da44354 /src/mainboard/google | |
parent | 802c910fa39d7245c96ad055988ccfc3a3ab26c1 (diff) |
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>
Diffstat (limited to 'src/mainboard/google')
-rw-r--r-- | src/mainboard/google/parrot/acpi/mainboard.asl | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mainboard/google/parrot/acpi/mainboard.asl b/src/mainboard/google/parrot/acpi/mainboard.asl index 4ab97330b1..503e44b620 100644 --- a/src/mainboard/google/parrot/acpi/mainboard.asl +++ b/src/mainboard/google/parrot/acpi/mainboard.asl @@ -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) } } |