diff options
-rw-r--r-- | common/usbc/usb_retimer_fw_update.c | 15 | ||||
-rw-r--r-- | include/ec_commands.h | 7 |
2 files changed, 17 insertions, 5 deletions
diff --git a/common/usbc/usb_retimer_fw_update.c b/common/usbc/usb_retimer_fw_update.c index 2634081e2e..1ff198c78f 100644 --- a/common/usbc/usb_retimer_fw_update.c +++ b/common/usbc/usb_retimer_fw_update.c @@ -91,6 +91,11 @@ static void deferred_pd_suspend(void) } DECLARE_DEFERRED(deferred_pd_suspend); +static inline mux_state_t retimer_fw_update_usb_mux_get(int port) +{ + return usb_mux_get(port) & USB_RETIMER_FW_UPDATE_MUX_MASK; +} + void usb_retimer_fw_update_process_op_cb(int port) { switch (last_op) { @@ -118,26 +123,26 @@ void usb_retimer_fw_update_process_op_cb(int port) pd_set_suspend(port, RESUME); break; case USB_RETIMER_FW_UPDATE_GET_MUX: - last_result = usb_mux_get(port); + last_result = retimer_fw_update_usb_mux_get(port); break; case USB_RETIMER_FW_UPDATE_SET_USB: usb_mux_set(port, USB_PD_MUX_USB_ENABLED, USB_SWITCH_CONNECT, pd_get_polarity(port)); - last_result = usb_mux_get(port); + last_result = retimer_fw_update_usb_mux_get(port); break; case USB_RETIMER_FW_UPDATE_SET_SAFE: usb_mux_set_safe_mode(port); - last_result = usb_mux_get(port); + last_result = retimer_fw_update_usb_mux_get(port); break; case USB_RETIMER_FW_UPDATE_SET_TBT: usb_mux_set(port, USB_PD_MUX_TBT_COMPAT_ENABLED, USB_SWITCH_CONNECT, pd_get_polarity(port)); - last_result = usb_mux_get(port); + last_result = retimer_fw_update_usb_mux_get(port); break; case USB_RETIMER_FW_UPDATE_DISCONNECT: usb_mux_set(port, USB_PD_MUX_NONE, USB_SWITCH_DISCONNECT, pd_get_polarity(port)); - last_result = usb_mux_get(port); + last_result = retimer_fw_update_usb_mux_get(port); break; default: break; diff --git a/include/ec_commands.h b/include/ec_commands.h index 441db29d74..470c0a9425 100644 --- a/include/ec_commands.h +++ b/include/ec_commands.h @@ -455,6 +455,13 @@ extern "C" { #define USB_RETIMER_FW_UPDATE_OP_SHIFT 4 #define USB_RETIMER_FW_UPDATE_ERR 0xfe #define USB_RETIMER_FW_UPDATE_INVALID_MUX 0xff +/* Mask to clear unused MUX bits in retimer firmware update */ +#define USB_RETIMER_FW_UPDATE_MUX_MASK (USB_PD_MUX_USB_ENABLED | \ + USB_PD_MUX_DP_ENABLED | \ + USB_PD_MUX_SAFE_MODE | \ + USB_PD_MUX_TBT_COMPAT_ENABLED | \ + USB_PD_MUX_USB4_ENABLED) + /* Retimer firmware update operations */ #define USB_RETIMER_FW_UPDATE_QUERY_PORT 0 /* Which ports has retimer */ #define USB_RETIMER_FW_UPDATE_SUSPEND_PD 1 /* Suspend PD port */ |