summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijay Hiremath <vijay.p.hiremath@intel.com>2020-01-17 11:01:13 -0800
committerCommit Bot <commit-bot@chromium.org>2020-01-24 09:23:31 +0000
commita00bf6d576a993f36c0f8fce4c9764b6cfbc430d (patch)
tree72ba904d75c30896f864e97ace7ca65cd47ae24a
parent1f04b10f37eb6e4da944fc73b7dfc301b9fad28f (diff)
downloadchrome-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.c40
-rw-r--r--common/usb_pd_protocol.c41
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c40
-rw-r--r--include/usb_pd.h8
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