diff options
author | Jameson Thies <jthies@google.com> | 2022-05-05 22:03:28 +0000 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-05-06 20:02:20 +0000 |
commit | 53b4f76524e0461de88dbad759eef67d0d3c41b9 (patch) | |
tree | 027c884a0d4b2322050253bb29e833c0b482e6f1 | |
parent | b1c040903abcbc4a95058d982d07000a968f52b8 (diff) | |
download | chrome-ec-53b4f76524e0461de88dbad759eef67d0d3c41b9.tar.gz |
TCPMV2: Followup on Revision addition
Addressing comments on http://crrev/c/3607054
BUG=b:214087135
TEST="make runhosttests" and "make try_build_boards"
BRANCH=NONE
Signed-off-by: Jameson Thies <jthies@google.com>
Change-Id: I558044230aa5548f284f44f6818bb8ad412b646c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631299
Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index 9812999cfc..2c1944f223 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -7122,8 +7122,10 @@ __maybe_unused static void pe_get_revision_entry(int port) * Only USB PD partners with major revision 3.0 could potentially * respond to Get_Revision. */ - if (prl_get_rev(port, TCPCI_MSG_SOP) != PD_REV30) + if (prl_get_rev(port, TCPCI_MSG_SOP) != PD_REV30) { + pe_set_ready_state(port); return; + } /* Send a Get_Revision message */ send_ctrl_msg(port, TCPCI_MSG_SOP, PD_CTRL_GET_REVISION); @@ -7137,10 +7139,8 @@ __maybe_unused static void pe_get_revision_run(int port) int ext; enum pe_msg_check msg_check; - if (prl_get_rev(port, TCPCI_MSG_SOP) != PD_REV30) { - pe_set_ready_state(port); + if (prl_get_rev(port, TCPCI_MSG_SOP) != PD_REV30) return; - } /* Check the state of the message sent */ msg_check = pe_sender_response_msg_run(port); @@ -7157,6 +7157,14 @@ __maybe_unused static void pe_get_revision_run(int port) /* Revision returned by partner */ pe[port].partner_rmdo = *((struct rmdo *) rx_emsg[port].buf); + } else if (type != PD_CTRL_NOT_SUPPORTED) { + /* + * If the partner response with a message other than + * Revision or Not_Supported, there was an interrupt. + * Setting PE_FLAGS_MSG_RECEIVED to handle unexpected + * message. + */ + PE_SET_FLAG(port, PE_FLAGS_MSG_RECEIVED); } /* |