summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJameson Thies <jthies@google.com>2022-05-05 21:13:24 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-05-06 17:17:20 +0000
commit5f00bcf5d3569e3abbce630df4a3bc537d63dd39 (patch)
tree2bd76b9d2e31824236f3eadb1d55ad41cbdacb1f
parent12c473337e3bdcce6d180d266c9e9f8127448f33 (diff)
downloadchrome-ec-5f00bcf5d3569e3abbce630df4a3bc537d63dd39.tar.gz
TCPMV2: Followup on Give_Status addition
Addressing comments on http://crrev/c/3587509, and moving Get_Status request case from extended messages to control messages. BUG=b:227236917 TEST=observed Status response on twinkie, plus "make runhosttests" and "make try_build_boards" BRANCH=NONE Signed-off-by: Jameson Thies <jthies@google.com> Change-Id: I0702cdda58a302e8ecfb7cc977273d12a6fdb4fa Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631298 Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r--common/usbc/usb_pe_drp_sm.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c
index 8625359712..9812999cfc 100644
--- a/common/usbc/usb_pe_drp_sm.c
+++ b/common/usbc/usb_pe_drp_sm.c
@@ -2675,19 +2675,14 @@ static void pe_src_ready_run(int port)
/* Extended Message Requests */
if (ext > 0) {
switch (type) {
-#if defined(CONFIG_USB_PD_EXTENDED_MESSAGES)
-#if defined(CONFIG_BATTERY)
+#if defined(CONFIG_USB_PD_EXTENDED_MESSAGES) && defined(CONFIG_BATTERY)
case PD_EXT_GET_BATTERY_CAP:
set_state_pe(port, PE_GIVE_BATTERY_CAP);
break;
case PD_EXT_GET_BATTERY_STATUS:
set_state_pe(port, PE_GIVE_BATTERY_STATUS);
break;
-#endif /* CONFIG_BATTERY */
- case PD_CTRL_GET_STATUS:
- set_state_pe(port, PE_GIVE_STATUS);
- return;
-#endif /* CONFIG_USB_PD_EXTENDED_MESSAGES */
+#endif /* CONFIG_USB_PD_EXTENDED_MESSAGES && CONFIG_BATTERY */
default:
extended_message_not_supported(port, payload);
}
@@ -2783,6 +2778,11 @@ static void pe_src_ready_run(int port)
PE_SEND_NOT_SUPPORTED);
return;
#endif /* CONFIG_USB_PD_DATA_RESET_MSG */
+#ifdef CONFIG_USB_PD_EXTENDED_MESSAGES
+ case PD_CTRL_GET_STATUS:
+ set_state_pe(port, PE_GIVE_STATUS);
+ return;
+#endif /* CONFIG_USB_PD_EXTENDED_MESSAGES */
/*
* Receiving an unknown or unsupported message
* shall be responded to with a not supported message.
@@ -3526,19 +3526,14 @@ static void pe_snk_ready_run(int port)
/* Extended Message Request */
if (ext > 0) {
switch (type) {
-#if defined(CONFIG_USB_PD_EXTENDED_MESSAGES)
-#if defined(CONFIG_BATTERY)
+#if defined(CONFIG_USB_PD_EXTENDED_MESSAGES) && defined(CONFIG_BATTERY)
case PD_EXT_GET_BATTERY_CAP:
set_state_pe(port, PE_GIVE_BATTERY_CAP);
break;
case PD_EXT_GET_BATTERY_STATUS:
set_state_pe(port, PE_GIVE_BATTERY_STATUS);
break;
-#endif /* CONFIG_BATTERY */
- case PD_CTRL_GET_STATUS:
- set_state_pe(port, PE_GIVE_STATUS);
- return;
-#endif /* CONFIG_USB_PD_EXTENDED_MESSAGES */
+#endif /* CONFIG_USB_PD_EXTENDED_MESSAGES && CONFIG_BATTERY */
default:
extended_message_not_supported(port, payload);
}
@@ -3620,6 +3615,11 @@ static void pe_snk_ready_run(int port)
PE_SEND_NOT_SUPPORTED);
return;
#endif /* CONFIG_USB_PD_DATA_RESET_MSG */
+#ifdef CONFIG_USB_PD_EXTENDED_MESSAGES
+ case PD_CTRL_GET_STATUS:
+ set_state_pe(port, PE_GIVE_STATUS);
+ return;
+#endif /* CONFIG_USB_PD_EXTENDED_MESSAGES */
case PD_CTRL_NOT_SUPPORTED:
/* Do nothing */
break;
@@ -4302,8 +4302,10 @@ static void pe_give_status_entry(int port)
uint32_t *len = &tx_emsg[port].len;
print_current_state(port);
- if (dpm_get_status_msg(port, msg, len) != EC_SUCCESS)
+ if (dpm_get_status_msg(port, msg, len) != EC_SUCCESS) {
pe_set_ready_state(port);
+ return;
+ }
send_ext_data_msg(port, TCPCI_MSG_SOP, PD_EXT_STATUS);
}