diff options
author | Sam McNally <sammc@chromium.org> | 2020-02-05 17:16:06 +1100 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-03-07 13:25:02 +0000 |
commit | 6ed78687accb229bc797c08e58c55e2c1601477d (patch) | |
tree | e2eab7f0270f0dca5709946bb22baa8aa803edb2 | |
parent | ac116965e0cf0e828a9ca203882ddb02be273faa (diff) | |
download | chrome-ec-6ed78687accb229bc797c08e58c55e2c1601477d.tar.gz |
TCPMv2: Don't interpret the CMD_DP_STATUS request as its response.
When a CMD_DP_STATUS response is received, both pe_vdm_acked_entry() and
pe_do_port_discovery_run() invoke dfp_consume_attention(). However,
pe_do_port_discovery_run() passes the message request after
pe_vdm_acked_entry() invokes it correctly, overwriting the capabilities,
resulting in only DP being enabled. Remove the additional call to
dfp_consume_attention().
Similarly, when a CMD_DP_CONFIG response is received, both functions
invoke post_config(). No arguments are passed so this is just
unnecessary rather than harmful. Clean up the additional call here too.
BUG=b:150652876
TEST=Puff with TCPMv2 enabled enables both HDMI and USB 3.0 for a dock
with HDMI and 3.0.
BRANCH=none
Change-Id: I3ef89e63f6b930b7cf7c7fa694cacf99ae47d053
Signed-off-by: Sam McNally <sammc@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2038550
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Tested-by: Peter Marheine <pmarheine@chromium.org>
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index d1e1b6bc56..2f627f367f 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -3808,19 +3808,11 @@ static void pe_do_port_discovery_run(int port) break; case CMD_DP_STATUS: pe[port].vdm_cmd = CMD_DP_CONFIG; - - /* - * DP status response & UFP's DP attention have same - * payload - */ - dfp_consume_attention(port, pe[port].vdm_data); if (modep && modep->opos) ret = modep->fx->config(port, pe[port].vdm_data); break; case CMD_DP_CONFIG: - if (modep && modep->opos && modep->fx->post_config) - modep->fx->post_config(port); PE_SET_FLAG(port, PE_FLAGS_DISCOVER_PORT_IDENTITY_DONE); break; case CMD_EXIT_MODE: |