diff options
author | Bruce <Bruce.Wan@quantatw.com> | 2016-10-24 11:00:19 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-10-26 01:45:02 -0700 |
commit | d73f705442b203474d7e2d986ab336f7f3a014c9 (patch) | |
tree | 0cd7efa4c38d75e0e2461ced1720c1e40a8b6ff3 | |
parent | 53556b96d7b2b2f792fbb87e31e309f23f8e66ce (diff) | |
download | chrome-ec-d73f705442b203474d7e2d986ab336f7f3a014c9.tar.gz |
Snappy: Fix multi-func mode for USB PD
Without this change the Alternate mode adapter with
multi-function capablity would only be configured as
DP instead of (DP + USB).
BUG=None
BRANCH=master
TEST=make buildall
Change-Id: I44d2b0ff56a8851b8104c4305b8f5826dcbe2107
Signed-off-by: Bruce.Wan <Bruce.Wan@quantatw.com>
Reviewed-on: https://chromium-review.googlesource.com/401266
Commit-Ready: Bruce Wan <Bruce.Wan@quantatw.com>
Tested-by: Bruce Wan <Bruce.Wan@quantatw.com>
Reviewed-by: Shawn N <shawnn@chromium.org>
-rw-r--r-- | board/snappy/usb_pd_policy.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/board/snappy/usb_pd_policy.c b/board/snappy/usb_pd_policy.c index 22a1fd797d..cb7d9ff62b 100644 --- a/board/snappy/usb_pd_policy.c +++ b/board/snappy/usb_pd_policy.c @@ -273,13 +273,18 @@ static int svdm_dp_status(int port, uint32_t *payload) static int svdm_dp_config(int port, uint32_t *payload) { int opos = pd_alt_mode(port, USB_SID_DISPLAYPORT); + int mf_pref = PD_VDO_DPSTS_MF_PREF(dp_status[port]); + int pin_mode = pd_dfp_dp_get_pin_mode(port, dp_status[port]); - usb_mux_set(port, TYPEC_MUX_DP, + if (!pin_mode) + return 0; + + usb_mux_set(port, mf_pref ? TYPEC_MUX_DOCK : TYPEC_MUX_DP, USB_SWITCH_CONNECT, pd_get_polarity(port)); payload[0] = VDO(USB_SID_DISPLAYPORT, 1, CMD_DP_CONFIG | VDO_OPOS(opos)); - payload[1] = VDO_DP_CFG(MODE_DP_PIN_E, /* pin mode */ + payload[1] = VDO_DP_CFG(pin_mode, /* pin mode */ 1, /* DPv1.3 signaling */ 2); /* UFP connected */ return 2; |