summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Hurst <shurst@google.com>2019-09-11 10:28:47 -0700
committerCommit Bot <commit-bot@chromium.org>2019-09-16 20:05:09 +0000
commit0bed4ff51b31d17dbea678425578cb92260f0127 (patch)
tree266e409fcf58e4773963253ad14cd5ab3e89f445
parentf32dcd5eccbfbd833df24ed3536f588ab07121e0 (diff)
downloadchrome-ec-0bed4ff51b31d17dbea678425578cb92260f0127.tar.gz
pd: Fix Incorrect Message Header Rev number sent to port partner
When constructing a message, the current SOP* is used instead of the last SOP*. And last SOP* is cleared on port detach. BUG=b:140865004 BRANCH=none TEST=manual   Used Total Phase analyzer to verify that correct Message Header   Revisions. Change-Id: I7f09746a36c9bcd4380ab6c6544f04b7079189ed Signed-off-by: Sam Hurst <shurst@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1797371 Tested-by: Sam Hurst <shurst@google.com> Reviewed-by: Denis Brockus <dbrockus@chromium.org> Commit-Queue: Sam Hurst <shurst@google.com>
-rw-r--r--common/usbc/usb_prl_sm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/common/usbc/usb_prl_sm.c b/common/usbc/usb_prl_sm.c
index 0321c0c1b0..9342f0dcc8 100644
--- a/common/usbc/usb_prl_sm.c
+++ b/common/usbc/usb_prl_sm.c
@@ -294,6 +294,7 @@ static void prl_init(int port)
const struct sm_ctx cleared = {};
prl_tx[port].flags = 0;
+ prl_tx[port].sop = 0;
prl_tx[port].xmit_status = TCPC_TX_UNSET;
tch[port].flags = 0;
@@ -609,7 +610,7 @@ static void prl_tx_construct_message(int port)
tc_get_data_role(port),
prl_tx[port].msg_id_counter[pdmsg[port].xmit_type],
pdmsg[port].data_objs,
- (prl_tx[port].sop == TCPC_TX_SOP) ?
+ (pdmsg[port].xmit_type == TCPC_TX_SOP) ?
pdmsg[port].rev : pdmsg[port].cable_rev,
pdmsg[port].ext);