diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2019-03-01 11:30:30 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-03-14 20:53:45 -0700 |
commit | 4a9170c8c4c4f7e82d48ba3d0a328c96a1882fd3 (patch) | |
tree | 9cd9d3997ec82bb16ee9b71353c33eaacc13b936 /common | |
parent | de8faeaf3ec3f9f5aae6ced1eaae726abead8819 (diff) | |
download | chrome-ec-4a9170c8c4c4f7e82d48ba3d0a328c96a1882fd3.tar.gz |
usbpd: Remove pd_state_names if not used
Currently, pd_state_names is included in all builds. This change makes
it included only in such builds as:
- CONFIG_USB_PD_DEBUG_LEVEL is defined to 1+ OR
- CONFIG_USB_PD_DEBUG_LEVEL is not defined
The 'pd dump' console command will continue to print & change debug level
in a normal build. If CONFIG_USB_PD_DEBUG_LEVEL is explicitly defined,
the command will only print the current debug level (as expected).
Enum pd_state doesn't have to be different between different
configurations (DRP, no-DRP, etc.). Actually, we should just stick to a
single definition (and append more to the tail to grow) so that the
consumers can translate the numbers to the names.
After the change with CONFIG_USB_PD_DEBUG_LEVEL = 0,
93520 Mar 11 12:53 build/flapjack/RO/ec.RO.flat
104836 Mar 11 12:54 build/flapjack/RW/ec.RW.flat
After the change with CONFIG_USB_PD_DEBUG_LEVEL = 2,
94672 Mar 11 12:54 build/flapjack/RO/ec.RO.flat
106004 Mar 11 12:55 build/flapjack/RW/ec.RW.flat
Whatever script, test, daemon, etc. is relying on the text
representation of the PD state needs to be fixed as well.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
BUG=chromium:937427
BRANCH=none
TEST=buildall. Verify 'pd dump' works like bofore in a normal build.
Change-Id: Id66634240050103253d69f257ee6f717252fc417
Reviewed-on: https://chromium-review.googlesource.com/1496770
Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/usb_pd_protocol.c | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index 2615d9089e..34e91ae2f7 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -254,29 +254,21 @@ static struct pd_protocol { #ifdef CONFIG_COMMON_RUNTIME static const char * const pd_state_names[] = { "DISABLED", "SUSPENDED", -#ifdef CONFIG_USB_PD_DUAL_ROLE "SNK_DISCONNECTED", "SNK_DISCONNECTED_DEBOUNCE", "SNK_HARD_RESET_RECOVER", "SNK_DISCOVERY", "SNK_REQUESTED", "SNK_TRANSITION", "SNK_READY", "SNK_SWAP_INIT", "SNK_SWAP_SNK_DISABLE", "SNK_SWAP_SRC_DISABLE", "SNK_SWAP_STANDBY", "SNK_SWAP_COMPLETE", -#endif /* CONFIG_USB_PD_DUAL_ROLE */ "SRC_DISCONNECTED", "SRC_DISCONNECTED_DEBOUNCE", "SRC_HARD_RESET_RECOVER", "SRC_STARTUP", "SRC_DISCOVERY", "SRC_NEGOCIATE", "SRC_ACCEPTED", "SRC_POWERED", "SRC_TRANSITION", "SRC_READY", "SRC_GET_SNK_CAP", "DR_SWAP", -#ifdef CONFIG_USB_PD_DUAL_ROLE "SRC_SWAP_INIT", "SRC_SWAP_SNK_DISABLE", "SRC_SWAP_SRC_DISABLE", "SRC_SWAP_STANDBY", -#ifdef CONFIG_USBC_VCONN_SWAP "VCONN_SWAP_SEND", "VCONN_SWAP_INIT", "VCONN_SWAP_READY", -#endif /* CONFIG_USBC_VCONN_SWAP */ -#endif /* CONFIG_USB_PD_DUAL_ROLE */ "SOFT_RESET", "HARD_RESET_SEND", "HARD_RESET_EXECUTE", "BIST_RX", "BIST_TX", -#ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE "DRP_AUTO_TOGGLE", -#endif }; BUILD_ASSERT(ARRAY_SIZE(pd_state_names) == PD_STATE_COUNT); #endif @@ -772,7 +764,7 @@ static inline void set_state(int port, enum pd_states next_state) disable_sleep(SLEEP_MASK_USB_PD); #endif - if (debug_level >= 1) + if (debug_level > 0) CPRINTF("C%d st%d %s\n", port, next_state, pd_state_names[next_state]); else @@ -4627,20 +4619,21 @@ static int command_pd(int argc, char **argv) return EC_ERROR_PARAM_COUNT; if (!strcasecmp(argv[1], "dump")) { -#ifndef CONFIG_USB_PD_DEBUG_LEVEL - int level; - if (argc >= 3) { - level = strtoi(argv[2], &e, 10); +#ifdef CONFIG_USB_PD_DEBUG_LEVEL + return EC_ERROR_PARAM2; +#else + int level = strtoi(argv[2], &e, 10); if (*e) return EC_ERROR_PARAM2; debug_level = level; - } else #endif - ccprintf("dump level: %d\n", debug_level); + } + ccprintf("debug=%d\n", debug_level); return EC_SUCCESS; } + #ifdef CONFIG_CMD_PD #ifdef CONFIG_CMD_PD_DEV_DUMP_INFO else if (!strncasecmp(argv[1], "rwhashtable", 3)) { @@ -4820,13 +4813,15 @@ static int command_pd(int argc, char **argv) #endif if (!strncasecmp(argv[2], "state", 5)) { ccprintf("Port C%d CC%d, %s - Role: %s-%s%s " - "State: %s, Flags: 0x%04x\n", + "State: %d(%s), Flags: 0x%04x\n", port, pd[port].polarity + 1, pd_comm_is_enabled(port) ? "Ena" : "Dis", pd[port].power_role == PD_ROLE_SOURCE ? "SRC" : "SNK", pd[port].data_role == PD_ROLE_DFP ? "DFP" : "UFP", (pd[port].flags & PD_FLAGS_VCONN_ON) ? "-VC" : "", - pd_state_names[pd[port].task_state], + pd[port].task_state, + debug_level > 0 ? + pd_state_names[pd[port].task_state] : "", pd[port].flags); } else { return EC_ERROR_PARAM1; @@ -4963,10 +4958,16 @@ static int hc_usb_pd_control(struct host_cmd_handler_args *args) ((pd[p->port].flags & PD_FLAGS_PARTNER_EXTPOWER) ? PD_CTRL_RESP_ROLE_EXT_POWERED : 0); r_v2->polarity = pd[p->port].polarity; - strzcpy(r_v2->state, - pd_state_names[pd[p->port].task_state], - sizeof(r_v2->state)); + + if (debug_level > 0) + strzcpy(r_v2->state, + pd_state_names[pd[p->port].task_state], + sizeof(r_v2->state)); + else + r_v2->state[0] = '\0'; + r_v2->cc_state = pd[p->port].cc_state; + if (args->version == 1) args->response_size = sizeof(*r_v1); else |