diff options
author | Ayushee <ayushee.shah@intel.com> | 2020-06-29 13:19:52 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-07-08 22:28:07 +0000 |
commit | 1794745e0d4ebd5a65dd278ea91b74f3e5f9bbbb (patch) | |
tree | c08f1d3e89604b420082dc4e7c5bc5124ce91bed /common/usb_pd_alt_mode_dfp.c | |
parent | 2702119106070fde117aa8e2078ac03f702e4177 (diff) | |
download | chrome-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.c | 12 |
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) || |