summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2020-03-10 13:42:11 -0600
committerCommit Bot <commit-bot@chromium.org>2020-03-11 23:20:17 +0000
commitd7ab6d7b226254ae5973250dcdfcb64b6865c3a2 (patch)
tree2cfeb67fed5bcf7f8eff6635b10c067807746a47
parent17d126f028af4f105c9513e5cf0e104dab457c0b (diff)
downloadchrome-ec-d7ab6d7b226254ae5973250dcdfcb64b6865c3a2.tar.gz
TCPMv2: Set DR swap flag in debug TC states
The states for DebugAccessory.SNK and UnorientedDebugAccessory.SRC were already set up to process DR swaps, but the DR swap flag wasn't being set because of a state check. This change adds those states to the allowed swap states. BUG=b:150886157 BRANCH=None TEST=on waddledoo, PE DR swap process is able to complete without getting stuck in PE_DRS_Change Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Idfdf96fbbc5e9e012a775c0edf184d58fabe7fde Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2097139 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
index ad3f1bb664..b66239ac97 100644
--- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c
+++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
@@ -468,11 +468,14 @@ void pd_send_vdm(int port, uint32_t vid, int cmd, const uint32_t *data,
void pd_request_data_swap(int port)
{
/*
- * Must be in Attached.SRC or Attached.SNK when this function
+ * Must be in Attached.SRC, Attached.SNK, DebugAccessory.SNK,
+ * or UnorientedDebugAccessory.SRC when this function
* is called
*/
if (get_state_tc(port) == TC_ATTACHED_SRC ||
- get_state_tc(port) == TC_ATTACHED_SNK) {
+ get_state_tc(port) == TC_ATTACHED_SNK ||
+ get_state_tc(port) == TC_DBG_ACC_SNK ||
+ get_state_tc(port) == TC_UNORIENTED_DBG_ACC_SRC) {
TC_SET_FLAG(port, TC_FLAGS_REQUEST_DR_SWAP);
task_set_event(PD_PORT_TO_TASK_ID(port), PD_EVENT_SM, 0);
}