diff --git a/subsys/usb/usb_c/usbc_pe_common.c b/subsys/usb/usb_c/usbc_pe_common.c index f12ef51dba5..84a068753ed 100644 --- a/subsys/usb/usb_c/usbc_pe_common.c +++ b/subsys/usb/usb_c/usbc_pe_common.c @@ -822,7 +822,7 @@ static const struct smf_state pe_states[] = { [PE_SNK_CHUNK_RECEIVED] = SMF_CREATE_STATE( pe_chunk_received_entry, pe_chunk_received_run, - NULL, + pe_chunk_received_exit, NULL), [PE_SUSPEND] = SMF_CREATE_STATE( pe_suspend_entry, diff --git a/subsys/usb/usb_c/usbc_pe_snk_states.c b/subsys/usb/usb_c/usbc_pe_snk_states.c index b3c48b10815..cc56b1f4b78 100644 --- a/subsys/usb/usb_c/usbc_pe_snk_states.c +++ b/subsys/usb/usb_c/usbc_pe_snk_states.c @@ -852,6 +852,13 @@ void pe_chunk_received_run(void *obj) } } +void pe_chunk_received_exit(void *obj) +{ + struct policy_engine *pe = (struct policy_engine *)obj; + + usbc_timer_stop(&pe->pd_t_chunking_not_supported); +} + /** * @brief PE_SNK_Give_Sink_Cap Entry state */ diff --git a/subsys/usb/usb_c/usbc_pe_snk_states_internal.h b/subsys/usb/usb_c/usbc_pe_snk_states_internal.h index 17031fccbbe..0e5e44b9eec 100644 --- a/subsys/usb/usb_c/usbc_pe_snk_states_internal.h +++ b/subsys/usb/usb_c/usbc_pe_snk_states_internal.h @@ -94,6 +94,7 @@ void pe_send_not_supported_run(void *obj); */ void pe_chunk_received_entry(void *obj); void pe_chunk_received_run(void *obj); +void pe_chunk_received_exit(void *obj); /** * @brief PE_SNK_Give_Sink_Cap Entry state