From b0833e615e36a8f25647ddb85a4c0cf2ab92bcc0 Mon Sep 17 00:00:00 2001 From: Daisuke Nojiri Date: Mon, 15 Mar 2021 19:58:15 -0700 Subject: PCHG: Count number of dropped events per port Currently, dropped events are counted for all ports combined. This patch makes them counted for each port separately. BUG=b:173235954,b:183151376 BRANCH=trogdor TEST=Verify 'pchg 0' prints dropped event count. Signed-off-by: Daisuke Nojiri Change-Id: I09380927613defe34bef0fece022fc9d47ebb8a1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2770502 (cherry picked from commit 4126a065489fe40668186c5f5b4dee4797388b25) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2787474 --- common/peripheral_charger.c | 6 +++--- include/peripheral_charger.h | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/common/peripheral_charger.c b/common/peripheral_charger.c index c7371c5dc5..3c11c68be1 100644 --- a/common/peripheral_charger.c +++ b/common/peripheral_charger.c @@ -20,13 +20,11 @@ #define CPRINTS(fmt, args...) cprints(CC_PCHG, "PCHG: " fmt, ##args) -static int dropped_event; - static void pchg_queue_event(struct pchg *ctx, enum pchg_event event) { mutex_lock(&ctx->mtx); if (queue_add_unit(&ctx->events, &event) == 0) { - dropped_event++; + ctx->dropped_event_count++; CPRINTS("ERR: Queue is full"); } mutex_unlock(&ctx->mtx); @@ -487,6 +485,8 @@ static int cc_pchg(int argc, char **argv) ccprintf("P%d STATE_%s EVENT_%s SOC=%d%%\n", port, _text_state(ctx->state), _text_event(ctx->event), ctx->battery_percent); + ccprintf("error=0x%x dropped=%u\n", + ctx->error, ctx->dropped_event_count); return EC_SUCCESS; } diff --git a/include/peripheral_charger.h b/include/peripheral_charger.h index b3d19edc52..a53fbb9104 100644 --- a/include/peripheral_charger.h +++ b/include/peripheral_charger.h @@ -138,6 +138,8 @@ struct pchg { uint32_t error; /* Battery percentage (0% ~ 100%) of the connected peripheral device */ uint8_t battery_percent; + /* Number of dropped events (due to queue overflow) */ + uint32_t dropped_event_count; }; /** -- cgit v1.2.1