summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorAbe Levkoy <alevkoy@chromium.org>2022-11-21 13:32:54 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-11-23 19:22:39 +0000
commit1063e0ff8356c09a465a9e2f4b402342e04bf83b (patch)
tree8e6a0c82a1cbd2a42e382da8d9e94e02277fe906 /common
parent057c0257d6ed34a13bd2224796383db79169072d (diff)
downloadchrome-ec-1063e0ff8356c09a465a9e2f4b402342e04bf83b.tar.gz
TCPMv2: Disallow VCONN Swap in CTAttached.SNK
In PE_VCS_Evaluate_Swap, reject a VCONN Swap when the Type-C SM does not allow it (when the Type-C state is CTAttached.SNK). Give this setting precedence over the PE logic to allow VCONN Swap if the TCPM is VCONN Source in the general case. BUG=b:257341564 TEST=twister -s zephyr/test/drivers/drivers.usbc_ctvpd BRANCH=none Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: I2042e5ce5c7694d0efd11b6e7f3c4a14d703676d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4043736 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Sam Hurst <shurst@google.com>
Diffstat (limited to 'common')
-rw-r--r--common/usbc/usb_pe_drp_sm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c
index 053fb96ff1..f2bc65da29 100644
--- a/common/usbc/usb_pe_drp_sm.c
+++ b/common/usbc/usb_pe_drp_sm.c
@@ -6514,7 +6514,7 @@ static void pe_vcs_evaluate_swap_entry(int port)
*/
/* DPM rejects a VCONN Swap and port is not a VCONN source*/
- if (!tc_check_vconn_swap(port) && tc_is_vconn_src(port) < 1) {
+ if (!tc_check_vconn_swap(port) || tc_is_vconn_src(port) < 1) {
/* NOTE: PE_VCS_Reject_Swap State embedded here */
send_ctrl_msg(port, TCPCI_MSG_SOP, PD_CTRL_REJECT);
}