When a PD notifier event arrives, a new work event won't be enqueued if
the current one hasn't completed. This could lead to dropped events.
So, flush any pending work before scheduling the new instance.
Signed-off-by: Prashant Malani <[email protected]>
---
drivers/platform/chrome/cros_ec_typec.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/platform/chrome/cros_ec_typec.c b/drivers/platform/chrome/cros_ec_typec.c
index db83c03ae5cd..2fac95e7a455 100644
--- a/drivers/platform/chrome/cros_ec_typec.c
+++ b/drivers/platform/chrome/cros_ec_typec.c
@@ -1031,6 +1031,7 @@ static int cros_ec_typec_event(struct notifier_block *nb,
{
struct cros_typec_data *typec = container_of(nb, struct cros_typec_data, nb);
+ flush_work(&typec->port_work);
schedule_work(&typec->port_work);
return NOTIFY_OK;
--
2.30.0.478.g8a0d178c01-goog
On Thu, 11 Feb 2021 11:32:21 -0800, Prashant Malani wrote:
> When a PD notifier event arrives, a new work event won't be enqueued if
> the current one hasn't completed. This could lead to dropped events.
>
> So, flush any pending work before scheduling the new instance.
Applied, thanks!
[1/1] platform/chrome: cros_ec_typec: Flush pending work
commit: a59e12218c4f5498d5669a0ee0c725101ca89d52
Best regards,
--
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
[email protected]
Chromium OS Project
[email protected]