]> www.infradead.org Git - users/dwmw2/linux.git/commit
platform/chrome: cros_ec: Handle events during suspend after resume completion
authorKarthikeyan Ramasubramanian <kramasub@chromium.org>
Mon, 29 Apr 2024 18:13:45 +0000 (12:13 -0600)
committerTzung-Bi Shih <tzungbi@kernel.org>
Tue, 30 Apr 2024 01:38:04 +0000 (09:38 +0800)
commit2fbe479c0024e1c6b992184a799055e19932aa48
treec7e466164bda91370ea38241d026f1a172e1030e
parentc8f460d991df93d87de01a96b783cad5a2da9616
platform/chrome: cros_ec: Handle events during suspend after resume completion

Commit 47ea0ddb1f56 ("platform/chrome: cros_ec_lpc: Separate host
command and irq disable") re-ordered the resume sequence. Before that
change, cros_ec resume sequence is:
1) Enable IRQ
2) Send resume event
3) Handle events during suspend

After commit 47ea0ddb1f56 ("platform/chrome: cros_ec_lpc: Separate host
command and irq disable"), cros_ec resume sequence is:
1) Enable IRQ
2) Handle events during suspend
3) Send resume event.

This re-ordering leads to delayed handling of any events queued between
items 2) and 3) with the updated sequence. Also in certain platforms, EC
skips triggering interrupt for certain events eg. mkbp events until the
resume event is received. Such events are stuck in the host event queue
indefinitely. This change puts back the original order to avoid any
delay in handling the pending events.

Fixes: 47ea0ddb1f56 ("platform/chrome: cros_ec_lpc: Separate host command and irq disable")
Cc: <stable@vger.kernel.org>
Cc: Lalith Rajendran <lalithkraj@chromium.org>
Cc: <chrome-platform@lists.linux.dev>
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@chromium.org>
Link: https://lore.kernel.org/r/20240429121343.v2.1.If2e0cef959f1f6df9f4d1ab53a97c54aa54208af@changeid
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
drivers/platform/chrome/cros_ec.c