platform/chrome: cros_ec_typec: Send mux configuration acknowledgment to EC
authorUtkarsh Patel <utkarsh.h.patel@intel.com>
Thu, 10 Dec 2020 06:09:03 +0000 (22:09 -0800)
committerBenson Leung <bleung@chromium.org>
Tue, 5 Jan 2021 20:57:15 +0000 (12:57 -0800)
commit8553a979fcd03448a4096c7d431b7ee1a52bfca3
tree979838f70bccf1282b85baa7672821957d41857c
parentba8ce515454e1fc5e73ff8989c18c596a3449fef
platform/chrome: cros_ec_typec: Send mux configuration acknowledgment to EC

In some corner cases downgrade of the superspeed typec device(e.g. Dell
typec Dock, apple dongle) was seen because before the SOC mux configuration
finishes, EC starts configuring the next mux state.

With this change, once the SOC mux is configured, kernel will send an
acknowledgment to EC via Host command EC_CMD_USB_PD_MUX_ACK [1].
After sending the host event EC will wait for the acknowledgment from
kernel before starting the PD negotiation for the next mux state. This
helps to have a framework to build better error handling along with the
synchronization of timing sensitive mux states.

This change also brings in corresponding EC header updates from the EC code
base [1].

[1]:
https://chromium.googlesource.com/chromiumos/platform/ec/+/refs/heads/master/include/ec_commands.h

Signed-off-by: Utkarsh Patel <utkarsh.h.patel@intel.com>
Reviewed-by: Prashant Malani <pmalani@chromium.org>
Signed-off-by: Benson Leung <bleung@chromium.org>
Link: https://lore.kernel.org/r/20201210060903.2205-3-utkarsh.h.patel@intel.com
drivers/platform/chrome/cros_ec_typec.c
include/linux/platform_data/cros_ec_commands.h