summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJameson Thies <jthies@google.com>2022-05-05 22:03:28 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-05-06 20:02:20 +0000
commit53b4f76524e0461de88dbad759eef67d0d3c41b9 (patch)
tree027c884a0d4b2322050253bb29e833c0b482e6f1
parentb1c040903abcbc4a95058d982d07000a968f52b8 (diff)
downloadchrome-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.c16
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);
}
/*