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 <pmal...@chromium.org> --- 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