diff options
author | Abe Levkoy <alevkoy@chromium.org> | 2022-11-21 13:32:54 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-11-23 19:22:39 +0000 |
commit | 1063e0ff8356c09a465a9e2f4b402342e04bf83b (patch) | |
tree | 8e6a0c82a1cbd2a42e382da8d9e94e02277fe906 | |
parent | 057c0257d6ed34a13bd2224796383db79169072d (diff) | |
download | chrome-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>
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 2 |
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); } |