summaryrefslogtreecommitdiff
path: root/src/mainboard/google/parrot/acpi
diff options
context:
space:
mode:
authorAndrew Litt <ajlitt@splunge.net>2014-09-09 10:49:19 -0500
committerAaron Durbin <adurbin@google.com>2014-09-11 16:20:53 +0200
commit955ca5d948519e89573b1508bb85d3b01353ac60 (patch)
tree86651a2852279c356c5cccebedab55281da44354 /src/mainboard/google/parrot/acpi
parent802c910fa39d7245c96ad055988ccfc3a3ab26c1 (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/parrot/acpi')
-rw-r--r--src/mainboard/google/parrot/acpi/mainboard.asl7
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)
}
}