diff options
author | Vijay Hiremath <vijay.p.hiremath@intel.com> | 2020-01-17 11:01:13 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-01-24 09:23:31 +0000 |
commit | a00bf6d576a993f36c0f8fce4c9764b6cfbc430d (patch) | |
tree | 72ba904d75c30896f864e97ace7ca65cd47ae24a | |
parent | 1f04b10f37eb6e4da944fc73b7dfc301b9fad28f (diff) | |
download | chrome-ec-a00bf6d576a993f36c0f8fce4c9764b6cfbc430d.tar.gz |
TCPMv1/v2: Move EC_CMD_USB_PD_RW_HASH_ENTRY host command to common file
BUG=b:142911453
BRANCH=none
TEST=make buildall -j
Change-Id: Ibcf7b23c9b4c166a59c00b4805d1fbad5e79e5f1
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2008298
Reviewed-by: Keith Short <keithshort@chromium.org>
-rw-r--r-- | common/usb_pd_host_cmd.c | 40 | ||||
-rw-r--r-- | common/usb_pd_protocol.c | 41 | ||||
-rw-r--r-- | common/usbc/usb_tc_drp_acc_trysrc_sm.c | 40 | ||||
-rw-r--r-- | include/usb_pd.h | 8 |
4 files changed, 47 insertions, 82 deletions
diff --git a/common/usb_pd_host_cmd.c b/common/usb_pd_host_cmd.c index f5da4070a5..db5684ad84 100644 --- a/common/usb_pd_host_cmd.c +++ b/common/usb_pd_host_cmd.c @@ -5,10 +5,16 @@ * Host commands for USB-PD module. */ +#include <string.h> + #include "ec_commands.h" #include "host_command.h" #include "usb_pd.h" +#ifdef CONFIG_COMMON_RUNTIME +struct ec_params_usb_pd_rw_hash_entry rw_hash_table[RW_HASH_ENTRIES]; +#endif /* CONFIG_COMMON_RUNTIME */ + #ifdef HAS_TASK_HOSTCMD static enum ec_status hc_pd_ports(struct host_cmd_handler_args *args) @@ -24,4 +30,38 @@ DECLARE_HOST_COMMAND(EC_CMD_USB_PD_PORTS, hc_pd_ports, EC_VER_MASK(0)); +#ifdef CONFIG_HOSTCMD_RWHASHPD +static enum ec_status +hc_remote_rw_hash_entry(struct host_cmd_handler_args *args) +{ + int i, idx = 0, found = 0; + const struct ec_params_usb_pd_rw_hash_entry *p = args->params; + static int rw_hash_next_idx; + + if (!p->dev_id) + return EC_RES_INVALID_PARAM; + + for (i = 0; i < RW_HASH_ENTRIES; i++) { + if (p->dev_id == rw_hash_table[i].dev_id) { + idx = i; + found = 1; + break; + } + } + + if (!found) { + idx = rw_hash_next_idx; + rw_hash_next_idx = rw_hash_next_idx + 1; + if (rw_hash_next_idx == RW_HASH_ENTRIES) + rw_hash_next_idx = 0; + } + memcpy(&rw_hash_table[idx], p, sizeof(*p)); + + return EC_RES_SUCCESS; +} +DECLARE_HOST_COMMAND(EC_CMD_USB_PD_RW_HASH_ENTRY, + hc_remote_rw_hash_entry, + EC_VER_MASK(0)); +#endif /* CONFIG_HOSTCMD_RWHASHPD */ + #endif /* HAS_TASK_HOSTCMD */ diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index c242bf94be..dec58a90ea 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -297,14 +297,6 @@ static const char * const pd_state_names[] = { BUILD_ASSERT(ARRAY_SIZE(pd_state_names) == PD_STATE_COUNT); #endif -/* - * 4 entry rw_hash table of type-C devices that AP has firmware updates for. - */ -#ifdef CONFIG_COMMON_RUNTIME -#define RW_HASH_ENTRIES 4 -static struct ec_params_usb_pd_rw_hash_entry rw_hash_table[RW_HASH_ENTRIES]; -#endif - int pd_comm_is_enabled(int port) { #ifdef CONFIG_COMMON_RUNTIME @@ -5593,39 +5585,6 @@ DECLARE_HOST_COMMAND(EC_CMD_USB_PD_FW_UPDATE, EC_VER_MASK(0)); #endif /* CONFIG_HOSTCMD_FLASHPD */ -#ifdef CONFIG_HOSTCMD_RWHASHPD -static enum ec_status -hc_remote_rw_hash_entry(struct host_cmd_handler_args *args) -{ - int i, idx = 0, found = 0; - const struct ec_params_usb_pd_rw_hash_entry *p = args->params; - static int rw_hash_next_idx; - - if (!p->dev_id) - return EC_RES_INVALID_PARAM; - - for (i = 0; i < RW_HASH_ENTRIES; i++) { - if (p->dev_id == rw_hash_table[i].dev_id) { - idx = i; - found = 1; - break; - } - } - if (!found) { - idx = rw_hash_next_idx; - rw_hash_next_idx = rw_hash_next_idx + 1; - if (rw_hash_next_idx == RW_HASH_ENTRIES) - rw_hash_next_idx = 0; - } - memcpy(&rw_hash_table[idx], p, sizeof(*p)); - - return EC_RES_SUCCESS; -} -DECLARE_HOST_COMMAND(EC_CMD_USB_PD_RW_HASH_ENTRY, - hc_remote_rw_hash_entry, - EC_VER_MASK(0)); -#endif /* CONFIG_HOSTCMD_RWHASHPD */ - static enum ec_status hc_remote_pd_dev_info(struct host_cmd_handler_args *args) { const uint8_t *port = args->params; diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c index 438be0d3b3..117e97a1ab 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -254,14 +254,6 @@ static void set_vconn(int port, int enable); static volatile task_id_t sysjump_task_waiting = TASK_ID_INVALID; #endif -/* - * 4 entry rw_hash table of type-C devices that AP has firmware updates for. - */ -#ifdef CONFIG_COMMON_RUNTIME -#define RW_HASH_ENTRIES 4 -static struct ec_params_usb_pd_rw_hash_entry rw_hash_table[RW_HASH_ENTRIES]; -#endif - /* Forward declare common, private functions */ static __maybe_unused int reset_device_and_notify(int port); @@ -1368,38 +1360,6 @@ DECLARE_HOST_COMMAND(EC_CMD_USB_PD_FW_UPDATE, hc_remote_flash, EC_VER_MASK(0)); -static enum ec_status -hc_remote_rw_hash_entry(struct host_cmd_handler_args *args) -{ - int i, idx = 0, found = 0; - const struct ec_params_usb_pd_rw_hash_entry *p = args->params; - static int rw_hash_next_idx; - - if (!p->dev_id) - return EC_RES_INVALID_PARAM; - - for (i = 0; i < RW_HASH_ENTRIES; i++) { - if (p->dev_id == rw_hash_table[i].dev_id) { - idx = i; - found = 1; - break; - } - } - - if (!found) { - idx = rw_hash_next_idx; - rw_hash_next_idx = rw_hash_next_idx + 1; - if (rw_hash_next_idx == RW_HASH_ENTRIES) - rw_hash_next_idx = 0; - } - memcpy(&rw_hash_table[idx], p, sizeof(*p)); - - return EC_RES_SUCCESS; -} -DECLARE_HOST_COMMAND(EC_CMD_USB_PD_RW_HASH_ENTRY, - hc_remote_rw_hash_entry, - EC_VER_MASK(0)); - static enum ec_status hc_remote_pd_dev_info(struct host_cmd_handler_args *args) { const uint8_t *port = args->params; diff --git a/include/usb_pd.h b/include/usb_pd.h index bc8558922f..f8e416141a 100644 --- a/include/usb_pd.h +++ b/include/usb_pd.h @@ -30,7 +30,7 @@ #else #define PD_PORT_TO_TASK_ID(port) -1 /* dummy task ID */ #define TASK_ID_TO_PD_PORT(id) 0 -#endif /* CONFIG_COMMON_RUNTIME */ +#endif /* HAS_TASK_PD_C0 */ #endif /* CONFIG_USB_PD_PORT_MAX_COUNT */ enum pd_rx_errors { @@ -287,6 +287,12 @@ extern const struct svdm_response svdm_rsp; extern const struct svdm_amode_fx supported_modes[]; extern const int supported_modes_cnt; +/* 4 entry rw_hash table of type-C devices that AP has firmware updates for. */ +#ifdef CONFIG_COMMON_RUNTIME +#define RW_HASH_ENTRIES 4 +extern struct ec_params_usb_pd_rw_hash_entry rw_hash_table[RW_HASH_ENTRIES]; +#endif /* CONFIG_COMMON_RUNTIME */ + /* * defined in common/usb_common.c * This variable is used in a couple of overridable functions |