summaryrefslogtreecommitdiff
path: root/src/ec
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2018-11-11 01:59:30 -0800
committerFurquan Shaikh <furquan@google.com>2018-11-12 05:41:57 +0000
commit0d6349ee0d95a41aaa06ae89a87cb22e51075b01 (patch)
treed2d210f516ce1c6159a7fd0be7c49a17cd89f246 /src/ec
parent69d5ef9d143afbd9904507dd02d32148c40c6474 (diff)
ec/google/chromeec: Configure EC_SYNC_IRQ as level triggered
EC_SYNC_IRQ from EC to host is level-triggered in practice and configuring it as edge-triggered on the host results in host missing events if there are multiple events queued on the EC side. This is because Linux kernel driver reads one event per irq and the EC does not de-assert the interrupt line until all events are drained out. This results in event queue being filled up completely on the EC and the host failing to see any of those events. This change configures EC_SYNC_IRQ as level triggered to allow the host to read events from the the EC as long as the line is asserted. BUG=b:118949877 Change-Id: Id3fcfa0445f83865d57975a7bbc179dca047ba4c Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/29575 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@google.com>
Diffstat (limited to 'src/ec')
-rw-r--r--src/ec/google/chromeec/acpi/cros_ec.asl2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ec/google/chromeec/acpi/cros_ec.asl b/src/ec/google/chromeec/acpi/cros_ec.asl
index befd5a73c2..a5f9202dc8 100644
--- a/src/ec/google/chromeec/acpi/cros_ec.asl
+++ b/src/ec/google/chromeec/acpi/cros_ec.asl
@@ -25,7 +25,7 @@ Device (CREC)
#ifdef EC_ENABLE_SYNC_IRQ
Name (_CRS, ResourceTemplate ()
{
- Interrupt (ResourceConsumer, Edge, ActiveLow, Exclusive)
+ Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive)
{
EC_SYNC_IRQ
}