summaryrefslogtreecommitdiff
path: root/common/pd_log.c
diff options
context:
space:
mode:
authorJack Rosenthal <jrosenth@chromium.org>2021-11-04 12:11:58 -0600
committerCommit Bot <commit-bot@chromium.org>2021-11-05 04:22:34 +0000
commit252457d4b21f46889eebad61d4c0a65331919cec (patch)
tree01856c4d31d710b20e85a74c8d7b5836e35c3b98 /common/pd_log.c
parent08f5a1e6fc2c9467230444ac9b582dcf4d9f0068 (diff)
downloadchrome-ec-stabilize-14469.8.B-ish.tar.gz
In the interest of making long-term branch maintenance incur as little technical debt on us as possible, we should not maintain any files on the branch we are not actually using. This has the added effect of making it extremely clear when merging CLs from the main branch when changes have the possibility to affect us. The follow-on CL adds a convenience script to actually pull updates from the main branch and generate a CL for the update. BUG=b:204206272 BRANCH=ish TEST=make BOARD=arcada_ish && make BOARD=drallion_ish Signed-off-by: Jack Rosenthal <jrosenth@chromium.org> Change-Id: I17e4694c38219b5a0823e0a3e55a28d1348f4b18 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3262038 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Diffstat (limited to 'common/pd_log.c')
-rw-r--r--common/pd_log.c134
1 files changed, 0 insertions, 134 deletions
diff --git a/common/pd_log.c b/common/pd_log.c
deleted file mode 100644
index 3708aad72e..0000000000
--- a/common/pd_log.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "charge_manager.h"
-#include "console.h"
-#include "event_log.h"
-#include "host_command.h"
-#include "timer.h"
-#include "usb_pd.h"
-#include "util.h"
-
-/*
- * Ensure PD logging parameters are compatible with the generic logging
- * framework that we're calling into.
- */
-BUILD_ASSERT(sizeof(struct ec_response_pd_log) ==
- sizeof(struct event_log_entry));
-BUILD_ASSERT(PD_LOG_SIZE_MASK == EVENT_LOG_SIZE_MASK);
-BUILD_ASSERT(PD_LOG_TIMESTAMP_SHIFT == EVENT_LOG_TIMESTAMP_SHIFT);
-BUILD_ASSERT(PD_EVENT_NO_ENTRY == EVENT_LOG_NO_ENTRY);
-
-void pd_log_event(uint8_t type, uint8_t size_port,
- uint16_t data, void *payload)
-{
- uint32_t timestamp = get_time().val >> PD_LOG_TIMESTAMP_SHIFT;
-
- log_add_event(type, size_port, data, payload, timestamp);
-}
-
-#ifdef HAS_TASK_HOSTCMD
-
-/* number of accessory entries we have queued since last check */
-static volatile int incoming_logs;
-
-void pd_log_recv_vdm(int port, int cnt, uint32_t *payload)
-{
- struct ec_response_pd_log *r = (void *)&payload[1];
- /* update port number from MCU point of view */
- size_t size = PD_LOG_SIZE(r->size_port);
- uint8_t size_port = PD_LOG_PORT_SIZE(port, size);
- uint32_t timestamp;
-
- if ((cnt < 2 + DIV_ROUND_UP(size, sizeof(uint32_t))) ||
- !(payload[0] & VDO_SRC_RESPONDER))
- /* Not a proper log entry, bail out */
- return;
-
- if (r->type != PD_EVENT_NO_ENTRY) {
- timestamp = (get_time().val >> PD_LOG_TIMESTAMP_SHIFT)
- - r->timestamp;
- log_add_event(r->type, size_port, r->data, r->payload,
- timestamp);
- /* record that we have enqueued new content */
- incoming_logs++;
- }
-}
-
-/* we are a PD MCU/EC, send back the events to the host */
-static enum ec_status hc_pd_get_log_entry(struct host_cmd_handler_args *args)
-{
- struct ec_response_pd_log *r = args->response;
-
-dequeue_retry:
- args->response_size = log_dequeue_event((struct event_log_entry *)r);
- /* if the MCU log no longer has entries, try connected accessories */
- if (r->type == PD_EVENT_NO_ENTRY) {
- int i, res;
- incoming_logs = 0;
- for (i = 0; i < board_get_usb_pd_port_count(); ++i) {
- /* only accessories who knows Google logging format */
- if (pd_get_identity_vid(i) != USB_VID_GOOGLE)
- continue;
- res = pd_fetch_acc_log_entry(i);
- if (res == EC_RES_BUSY) /* host should retry */
- return EC_RES_BUSY;
- }
- /* we have received new entries from an accessory */
- if (incoming_logs)
- goto dequeue_retry;
- /* else the current entry is already "PD_EVENT_NO_ENTRY" */
- }
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PD_GET_LOG_ENTRY,
- hc_pd_get_log_entry,
- EC_VER_MASK(0));
-
-static enum ec_status hc_pd_write_log_entry(struct host_cmd_handler_args *args)
-{
- const struct ec_params_pd_write_log_entry *p = args->params;
- uint8_t type = p->type;
- uint8_t port = p->port;
-
- if (type < PD_EVENT_MCU_BASE || type >= PD_EVENT_ACC_BASE)
- return EC_RES_INVALID_PARAM;
- if (port > 0 && port >= board_get_usb_pd_port_count())
- return EC_RES_INVALID_PARAM;
-
- switch (type) {
- /* Charge event: Log data for all ports */
- case PD_EVENT_MCU_CHARGE:
-#ifdef CONFIG_CHARGE_MANAGER
- charge_manager_save_log(port);
-#endif
- break;
-
- /* Other events: no extra data, just log event type + port */
- case PD_EVENT_MCU_CONNECT:
- case PD_EVENT_MCU_BOARD_CUSTOM:
- default:
- pd_log_event(type, PD_LOG_PORT_SIZE(port, 0), 0, NULL);
- break;
- }
-
- return EC_RES_SUCCESS;
-}
-DECLARE_HOST_COMMAND(EC_CMD_PD_WRITE_LOG_ENTRY,
- hc_pd_write_log_entry,
- EC_VER_MASK(0));
-#else /* !HAS_TASK_HOSTCMD */
-/* we are a PD accessory, send back the events as a VDM (VDO_CMD_GET_LOG) */
-int pd_vdm_get_log_entry(uint32_t *payload)
-{
- struct ec_response_pd_log *r = (void *)&payload[1];
- int byte_size;
-
- byte_size = log_dequeue_event((struct event_log_entry *)r);
-
- return 1 + DIV_ROUND_UP(byte_size, sizeof(uint32_t));
-}
-#endif /* !HAS_TASK_HOSTCMD */