diff options
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index 2dc4649fe3..75e78039a8 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -4315,6 +4315,12 @@ static void pe_prs_src_snk_evaluate_swap_run(int port) PE_CLR_FLAG(port, PE_FLAGS_ACCEPT); /* + * Clear any pending DPM power role swap request so we + * don't trigger a power role swap request back to src + * power role. + */ + PE_CLR_DPM_REQUEST(port, DPM_REQUEST_PR_SWAP); + /* * Power Role Swap OK, transition to * PE_PRS_SRC_SNK_Transition_to_off */ @@ -4558,6 +4564,12 @@ static void pe_prs_snk_src_evaluate_swap_run(int port) PE_CLR_FLAG(port, PE_FLAGS_ACCEPT); /* + * Clear any pending DPM power role swap request so we + * don't trigger a power role swap request back to sink + * power role. + */ + PE_CLR_DPM_REQUEST(port, DPM_REQUEST_PR_SWAP); + /* * Accept message sent, transition to * PE_PRS_SNK_SRC_Transition_to_off */ |