diff options
author | Sam Hurst <shurst@google.com> | 2016-09-22 08:17:29 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-09-27 20:33:55 -0700 |
commit | f8c7be9fa9ee2b6fd76541c0f30ebba49c731c52 (patch) | |
tree | b0f4b62e3a9f5f28def57fda36cdfba3e620b5f3 | |
parent | 77a96c4b4d8081c7352fda8b3f4902089bdd154f (diff) | |
download | chrome-ec-f8c7be9fa9ee2b6fd76541c0f30ebba49c731c52.tar.gz |
kevin: hotplugging DP not working
Some Type-C to DP adapters generate two or more HPD events while
others generate only one HPD event. Currently hotplugging only
works with the former adapter. Now hotplugging is triggered on
one or more HPD events.
BUG=chrome-os-partner:57198
BRANCH=none
TEST=Manuel
- plug USBC->DP cable into TV then into kevin
localhost ~ # ectool usbpdmuxinfo
Port 0: DP INV
- plug USBC->DP cable into kevin then into TV
localhost ~ # ectool usbpdmuxinfo
Port 0: DP INV
- unplug USBC->DP cable from TV
Port 0: OPEN INV
Change-Id: Ied30f1eb3e1186b52067ffc9a37ed22a9012b457
Reviewed-on: https://chromium-review.googlesource.com/388737
Reviewed-by: Shawn N <shawnn@chromium.org>
Commit-Queue: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/388531
Commit-Ready: Shawn N <shawnn@chromium.org>
-rw-r--r-- | board/kevin/usb_pd_policy.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/board/kevin/usb_pd_policy.c b/board/kevin/usb_pd_policy.c index c87fa7eb44..fc55737037 100644 --- a/board/kevin/usb_pd_policy.c +++ b/board/kevin/usb_pd_policy.c @@ -293,8 +293,6 @@ static int svdm_dp_config(int port, uint32_t *payload) static void svdm_dp_post_config(int port) { dp_flags[port] |= DP_FLAGS_DP_ON; - if (!(dp_flags[port] & DP_FLAGS_HPD_HI_PENDING)) - return; } static int svdm_dp_attention(int port, uint32_t *payload) @@ -306,15 +304,7 @@ static int svdm_dp_attention(int port, uint32_t *payload) dp_status[port] = payload[1]; - /* Its initial DP status message prior to config */ - if (!(dp_flags[port] & DP_FLAGS_DP_ON)) { - if (lvl) - dp_flags[port] |= DP_FLAGS_HPD_HI_PENDING; - return 1; - } - - if (irq) - mux->hpd_update(port, lvl, 1); + mux->hpd_update(port, lvl, irq); if (lvl) usb_mux_set(port, mf_pref ? TYPEC_MUX_DOCK : TYPEC_MUX_DP, |