From 0d70982b5784b5d6fa381079e096e8551fb8cb5a Mon Sep 17 00:00:00 2001 From: Darren Hsu Date: Fri, 17 Jun 2022 20:37:34 +0800 Subject: [PATCH 1/3] powerstats: set AoC clock for timestamp calculations Bug: 233923713 Test: dumpsys android.hardware.power.stats.IPowerStats/default Change-Id: I6476d2abb09003b376b9e32ffb4ee8a279bb3086 Merged-In: I6476d2abb09003b376b9e32ffb4ee8a279bb3086 Signed-off-by: Darren Hsu --- powerstats/Gs201CommonDataProviders.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/powerstats/Gs201CommonDataProviders.cpp b/powerstats/Gs201CommonDataProviders.cpp index a6f08722..e361fc56 100644 --- a/powerstats/Gs201CommonDataProviders.cpp +++ b/powerstats/Gs201CommonDataProviders.cpp @@ -104,6 +104,8 @@ void addPlaceholderEnergyConsumers(std::shared_ptr p) { void addAoC(std::shared_ptr p) { // When the given timeout is 0, the timeout will be replaced with "120ms * statesCount". static const uint64_t TIMEOUT_MILLIS = 0; + // AoC clock is synced from "libaoc.c" + static const uint64_t AOC_CLOCK = 24576; std::string prefix = "/sys/devices/platform/19000000.aoc/control/"; // Add AoC cores (a32, ff1, hf0, and hf1) @@ -116,7 +118,7 @@ void addAoC(std::shared_ptr p) { std::vector> coreStates = { {"DWN", "off"}, {"RET", "retention"}, {"WFI", "wfi"}}; p->addStateResidencyDataProvider(std::make_unique(coreIds, - coreStates, TIMEOUT_MILLIS)); + coreStates, TIMEOUT_MILLIS, AOC_CLOCK)); // Add AoC voltage stats std::vector> voltageIds = { @@ -128,7 +130,7 @@ void addAoC(std::shared_ptr p) { {"UD", "underdrive"}}; p->addStateResidencyDataProvider( std::make_unique(voltageIds, voltageStates, - TIMEOUT_MILLIS)); + TIMEOUT_MILLIS, AOC_CLOCK)); // Add AoC monitor mode std::vector> monitorIds = { @@ -139,7 +141,7 @@ void addAoC(std::shared_ptr p) { }; p->addStateResidencyDataProvider( std::make_unique(monitorIds, monitorStates, - TIMEOUT_MILLIS)); + TIMEOUT_MILLIS, AOC_CLOCK)); // Add AoC restart count const GenericStateResidencyDataProvider::StateResidencyConfig restartCountConfig = { From e3a70263b645682240d6095aca3540137b1ff26d Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Sun, 19 Jun 2022 01:15:36 +0000 Subject: [PATCH 2/3] init.rc: add permission to dump battery debugging data Bug: 205259954 Signed-off-by: Jenny Ho Change-Id: I6d71cc6fb11e1881d78a81f36162e3d9493654bd --- conf/init.debug.rc | 3 +++ conf/init.gs201.rc | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/conf/init.debug.rc b/conf/init.debug.rc index 88e8a17f..cd80ae61 100644 --- a/conf/init.debug.rc +++ b/conf/init.debug.rc @@ -20,6 +20,9 @@ on init chown system system /d/maxfg/fg_model chown system system /d/maxfg/registers chown system system /d/maxfg_base/fg_model + chown system system /d/maxfg_base/registers + chown system system /d/maxfg_flip/registers + chown system system /d/maxfg_flip/nv_registers on property:vendor.debug.ramdump.force_crash=true write /sys/kernel/pixel_debug/trigger "null" diff --git a/conf/init.gs201.rc b/conf/init.gs201.rc index e59bb678..1054fed0 100644 --- a/conf/init.gs201.rc +++ b/conf/init.gs201.rc @@ -225,6 +225,7 @@ on init # Dump maxfg chown system system /sys/class/power_supply/maxfg/m5_model_state chown system system /sys/class/power_supply/maxfg_base/m5_model_state + chown system system /dev/maxfg_history # pca9468 : slider+77729: 6-0057; slider+MW A1: 5-0057 chown system system /d/regmap/5-0057-pca9468-mains/registers @@ -234,8 +235,7 @@ on init chown system system /sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom chown system system /sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom chown system system /sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom - chown system system /dev/battery_history - chmod 0644 /dev/battery_history + chown system system /sys/devices/platform/10da0000.hsi2c/i2c-7/7-0050/eeprom # Modem temperature driver chown radio system /sys/devices/platform/cp-tm1/cp_temp @@ -483,6 +483,10 @@ on early-boot chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt chown system system /dev/sys/block/bootdevice/slowio_sync_cnt + # Dump Battery EEPROM history for pixelstats + chown system system /dev/battery_history + chmod 0644 /dev/battery_history + on boot # Allow to access debugfs for system:system From f35f7bd5f4653c4b8b1bdd945b1cf2269e9fedec Mon Sep 17 00:00:00 2001 From: Jenny Ho Date: Sat, 18 Jun 2022 14:18:20 +0000 Subject: [PATCH 3/3] dumpstate: add dump battery data for debugging Bug: 205259954 Signed-off-by: Jenny Ho Change-Id: I11c93e25e12261444b222dfcc3bcdc6c6383072d --- dumpstate/Dumpstate.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dumpstate/Dumpstate.cpp b/dumpstate/Dumpstate.cpp index 939e3e02..2d21877e 100644 --- a/dumpstate/Dumpstate.cpp +++ b/dumpstate/Dumpstate.cpp @@ -353,6 +353,10 @@ void Dumpstate::dumpPowerSection(int fd) { DumpFileToFd(fd, "maxfg_flip", "/dev/logbuffer_maxfg_flip_monitor"); } + if (!stat("/dev/maxfg_history", &buffer)) { + DumpFileToFd(fd, "Maxim FG History", "/dev/maxfg_history"); + } + if (!stat("/sys/class/power_supply/dock", &buffer)) { DumpFileToFd(fd, "Power supply property dock", "/sys/class/power_supply/dock/uevent"); } @@ -426,6 +430,11 @@ void Dumpstate::dumpPowerSection(int fd) { "for f in /d/maxfg* ; do " "regs=`cat $f/registers`; echo $f: ;" "echo \"$regs\"; done"}); + + RunCommandToFd(fd, "Maxim FG NV RAM", {"/vendor/bin/sh", "-c", + "for f in /d/maxfg* ; do " + "regs=`cat $f/nv_registers`; echo $f: ;" + "echo \"$regs\"; done"}); } /* EEPROM State */ @@ -435,9 +444,10 @@ void Dumpstate::dumpPowerSection(int fd) { RunCommandToFd(fd, "Battery EEPROM", {"/vendor/bin/sh", "-c", "xxd /sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom"}); } else if (!stat("/sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom", &buffer)) { RunCommandToFd(fd, "Battery EEPROM", {"/vendor/bin/sh", "-c", "xxd /sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom"}); + } else if (!stat("/sys/devices/platform/10da0000.hsi2c/i2c-7/7-0050/eeprom", &buffer)) { + RunCommandToFd(fd, "Battery EEPROM", {"/vendor/bin/sh", "-c", "xxd /sys/devices/platform/10da0000.hsi2c/i2c-7/7-0050/eeprom"}); } - DumpFileToFd(fd, "Charger Stats", "/sys/class/power_supply/battery/charge_details"); if (!PropertiesHelper::IsUserBuild()) { RunCommandToFd(fd, "Google Charger", {"/vendor/bin/sh", "-c", "cd /sys/kernel/debug/google_charger/; "