diff options
author | Li Jun <jun.li@nxp.com> | 2019-08-15 16:20:13 +0800 |
---|---|---|
committer | Dong Aisheng <aisheng.dong@nxp.com> | 2019-11-25 15:57:13 +0800 |
commit | 688a7084136dedc3fe085842a8ec897795b26bc1 (patch) | |
tree | 549d00ea43ba1a61fd0186e3593c93bd0333e3b4 | |
parent | 08cef4ba5383906f4201a9c31e1937fe9416e606 (diff) |
MLK-21641 usb: typec: tcpm: cancel delayed work when unregister tcpm
We may do tcpm port unregister in middle of tcpm state transitions,
if there are delayed works queued, we need cancel them before finish
the tcpm unregsiter.
Reviewed-by: Fugang Duan <fugang.duan@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
-rw-r--r-- | drivers/usb/typec/tcpm/tcpm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index 296364f8c857..fd6c2b902444 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -4844,6 +4844,9 @@ void tcpm_unregister_port(struct tcpm_port *port) { int i; + cancel_delayed_work_sync(&port->state_machine); + cancel_delayed_work_sync(&port->vdm_state_machine); + tcpm_reset_port(port); for (i = 0; i < ARRAY_SIZE(port->port_altmode); i++) typec_unregister_altmode(port->port_altmode[i]); |