From 5fc76e6785a64f969427b061b9eda6a56498c8e6 Mon Sep 17 00:00:00 2001 From: Caveh Jalali Date: Wed, 6 Nov 2019 22:23:25 -0800 Subject: atlas: Always advertise DFP_D connected the VESA DisplayPort Alt Mode on USB Type-C Standard section 5.2.3 requires that DP alt mode capable devices permanently set the connected status bit. BRANCH=none BUG=chromium:1022256 TEST=verified improved interop with caldigit dock Change-Id: If439186120380cdc11eb8ea69a6b3d5d3d39b0a6 Signed-off-by: Caveh Jalali Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1903646 Reviewed-by: Caveh Jalali Commit-Queue: Caveh Jalali --- board/atlas/usb_pd_policy.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/board/atlas/usb_pd_policy.c b/board/atlas/usb_pd_policy.c index eacba27e04..7bcb28cdf0 100644 --- a/board/atlas/usb_pd_policy.c +++ b/board/atlas/usb_pd_policy.c @@ -331,6 +331,10 @@ static int svdm_dp_status(int port, uint32_t *payload) payload[0] = VDO(USB_SID_DISPLAYPORT, 1, CMD_DP_STATUS | VDO_OPOS(opos)); + /* + * VESA DisplayPort Alt Mode on USB Type-C Standard Version 1.0b: + * 5.2.3 requries DP_FLAGS_DP_ON permanently set for DFP_D + */ payload[1] = VDO_DP_STATUS(0, /* HPD IRQ ... not applicable */ 0, /* HPD level ... not applicable */ 0, /* exit DP? ... no */ @@ -338,7 +342,7 @@ static int svdm_dp_status(int port, uint32_t *payload) 0, /* multi-function ... no */ (!!(dp_flags[port] & DP_FLAGS_DP_ON)), 0, /* power low? ... no */ - (!!(dp_flags[port] & DP_FLAGS_DP_ON))); + (!!DP_FLAGS_DP_ON)); return 2; }; -- cgit v1.2.1