summaryrefslogtreecommitdiff
path: root/common/usb_pd_alt_mode_dfp.c
diff options
context:
space:
mode:
authorAyushee <ayushee.shah@intel.com>2020-06-29 13:19:52 -0700
committerCommit Bot <commit-bot@chromium.org>2020-07-08 22:28:07 +0000
commit1794745e0d4ebd5a65dd278ea91b74f3e5f9bbbb (patch)
treec08f1d3e89604b420082dc4e7c5bc5124ce91bed /common/usb_pd_alt_mode_dfp.c
parent2702119106070fde117aa8e2078ac03f702e4177 (diff)
downloadchrome-ec-1794745e0d4ebd5a65dd278ea91b74f3e5f9bbbb.tar.gz
usb_pd: Correct 'enter_tbt_compat_mode()' function
Attempt to Enter Mode SOP'' with same object position and revision as SOP' since, the port doesn't query Discover SOP'' to the cable. BUG=b:158294748 b:150611251 BRANCH=None TEST=Able to enter into Thunderbolt mode for active cable. Change-Id: Ib1f58ff3bab78e1b0ace554ac63785b6e7baf192 Signed-off-by: Ayushee <ayushee.shah@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2274309 Reviewed-by: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'common/usb_pd_alt_mode_dfp.c')
-rw-r--r--common/usb_pd_alt_mode_dfp.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/common/usb_pd_alt_mode_dfp.c b/common/usb_pd_alt_mode_dfp.c
index be053a49e9..dde6b771c9 100644
--- a/common/usb_pd_alt_mode_dfp.c
+++ b/common/usb_pd_alt_mode_dfp.c
@@ -830,11 +830,19 @@ int enter_tbt_compat_mode(int port, enum tcpm_transmit_type sop,
union tbt_dev_mode_enter_cmd enter_dev_mode = { .raw_value = 0 };
union tbt_mode_resp_device dev_mode_resp;
union tbt_mode_resp_cable cable_mode_resp;
+ enum tcpm_transmit_type enter_mode_sop =
+ sop == TCPC_TX_SOP_PRIME_PRIME ?
+ TCPC_TX_SOP_PRIME : sop;
/* Table F-12 TBT3 Cable Enter Mode Command */
- payload[0] = pd_dfp_enter_mode(port, sop, USB_VID_INTEL, 0) |
+ /*
+ * The port doesn't query Discover SOP'' to the cable so, the port
+ * doesn't have opos for SOP''. Hence, send Enter Mode SOP'' with same
+ * opos and revision as SOP'.
+ */
+ payload[0] = pd_dfp_enter_mode(port, enter_mode_sop, USB_VID_INTEL, 0) |
VDO_CMDT(CMDT_INIT) |
- VDO_SVDM_VERS(pd_get_vdo_ver(port, TCPC_TX_SOP));
+ VDO_SVDM_VERS(pd_get_vdo_ver(port, enter_mode_sop));
/* For TBT3 Cable Enter Mode Command, number of Objects is 1 */
if ((sop == TCPC_TX_SOP_PRIME) ||