platform/chrome: cros_ec: Call interrupt bottom half at probe time
authorGwendal Grignou <gwendal@chromium.org>
Fri, 22 Jan 2021 05:46:37 +0000 (21:46 -0800)
committerEnric Balletbo i Serra <enric.balletbo@collabora.com>
Fri, 22 Jan 2021 07:50:27 +0000 (08:50 +0100)
While the AP was powered off, the EC may have send messages.
If the message is not serviced within 3s, the EC stops sending message.
Unlock the EC by purging stale messages at probe time.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Link: https://lore.kernel.org/r/20210122054637.1422289-3-gwendal@chromium.org
drivers/platform/chrome/cros_ec.c

index bf76a6c49c95e8261543b0abc249574c55910920..fc5aa1525d13cab233c45a61ca8490199e38e012 100644 (file)
@@ -283,6 +283,13 @@ int cros_ec_register(struct cros_ec_device *ec_dev)
 
        dev_info(dev, "Chrome EC device registered\n");
 
+       /*
+        * Unlock EC that may be waiting for AP to process MKBP events.
+        * If the AP takes to long to answer, the EC would stop sending events.
+        */
+       if (ec_dev->mkbp_event_supported)
+               cros_ec_irq_thread(0, ec_dev);
+
        return 0;
 }
 EXPORT_SYMBOL(cros_ec_register);