MLK-21641 usb: typec: tcpm: cancel delayed work when unregister tcpm
authorLi Jun <jun.li@nxp.com>
Mon, 6 May 2019 06:17:32 +0000 (14:17 +0800)
committerLi Jun <jun.li@nxp.com>
Mon, 6 May 2019 10:21:08 +0000 (18:21 +0800)
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>
drivers/usb/typec/tcpm.c

index 7d78b02..5645e5e 100644 (file)
@@ -5043,6 +5043,8 @@ 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]);