diff --git a/dumpstate/Dumpstate.cpp b/dumpstate/Dumpstate.cpp index de973669..c7a35b16 100644 --- a/dumpstate/Dumpstate.cpp +++ b/dumpstate/Dumpstate.cpp @@ -239,30 +239,12 @@ void endSection(int fd, const std::string §ionName, timepoint_t startTime) { "\n", fd); } -Dumpstate::Dumpstate() - : mTextSections{ - { "power", [this](int fd) { dumpPowerSection(fd); } }, - } { -} - // Dump data requested by an argument to the "dump" interface, or help info // if the specified section is not supported. void Dumpstate::dumpTextSection(int fd, const std::string §ionName) { bool dumpAll = (sectionName == kAllSections); std::string dumpFiles; - for (const auto §ion : mTextSections) { - if (dumpAll || sectionName == section.first) { - auto startTime = startSection(fd, section.first); - section.second(fd); - endSection(fd, section.first, startTime); - - if (!dumpAll) { - return; - } - } - } - // Execute all or designated programs under vendor/bin/dump/ std::unique_ptr dir(opendir("/vendor/bin/dump"), closedir); if (!dir) { @@ -296,200 +278,11 @@ void Dumpstate::dumpTextSection(int fd, const std::string §ionName) { // An unsupported section was requested on the command line ::android::base::WriteStringToFd("Unrecognized text section: " + sectionName + "\n", fd); ::android::base::WriteStringToFd("Try \"" + kAllSections + "\" or one of the following:", fd); - for (const auto §ion : mTextSections) { - ::android::base::WriteStringToFd(" " + section.first, fd); - } ::android::base::WriteStringToFd(dumpFiles, fd); ::android::base::WriteStringToFd("\nNote: sections with attachments (e.g. modem) are" "not avalable from the command line.\n", fd); } -// Dump items related to power and battery -void Dumpstate::dumpPowerSection(int fd) { - struct stat buffer; - - RunCommandToFd(fd, "Power Stats Times", {"/vendor/bin/sh", "-c", - "echo -n \"Boot: \" && /vendor/bin/uptime -s && " - "echo -n \"Now: \" && date"}); - - RunCommandToFd(fd, "ACPM stats", {"/vendor/bin/sh", "-c", - "for f in /sys/devices/platform/acpm_stats/*_stats ; do " - "echo \"\\n\\n$f\" ; cat $f ; " - "done"}); - - DumpFileToFd(fd, "CPU PM stats", "/sys/devices/system/cpu/cpupm/cpupm/time_in_state"); - - DumpFileToFd(fd, "GENPD summary", "/d/pm_genpd/pm_genpd_summary"); - - DumpFileToFd(fd, "Power supply property battery", "/sys/class/power_supply/battery/uevent"); - DumpFileToFd(fd, "Power supply property dc", "/sys/class/power_supply/dc/uevent"); - DumpFileToFd(fd, "Power supply property gcpm", "/sys/class/power_supply/gcpm/uevent"); - DumpFileToFd(fd, "Power supply property gcpm_pps", "/sys/class/power_supply/gcpm_pps/uevent"); - DumpFileToFd(fd, "Power supply property main-charger", "/sys/class/power_supply/main-charger/uevent"); - DumpFileToFd(fd, "Power supply property pca9486-mains", "/sys/class/power_supply/pca9468-mains/uevent"); - DumpFileToFd(fd, "Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-i2c-max77759tcpc/uevent"); - DumpFileToFd(fd, "Power supply property usb", "/sys/class/power_supply/usb/uevent"); - DumpFileToFd(fd, "Power supply property wireless", "/sys/class/power_supply/wireless/uevent"); - if (!stat("/sys/class/power_supply/maxfg", &buffer)) { - DumpFileToFd(fd, "Power supply property maxfg", "/sys/class/power_supply/maxfg/uevent"); - DumpFileToFd(fd, "m5_state", "/sys/class/power_supply/maxfg/m5_model_state"); - DumpFileToFd(fd, "maxfg", "/dev/logbuffer_maxfg"); - DumpFileToFd(fd, "maxfg", "/dev/logbuffer_maxfg_monitor"); - } else { - DumpFileToFd(fd, "Power supply property maxfg_base", "/sys/class/power_supply/maxfg_base/uevent"); - DumpFileToFd(fd, "Power supply property maxfg_flip", "/sys/class/power_supply/maxfg_flip/uevent"); - DumpFileToFd(fd, "m5_state", "/sys/class/power_supply/maxfg_base/m5_model_state"); - DumpFileToFd(fd, "maxfg_base", "/dev/logbuffer_maxfg_base"); - DumpFileToFd(fd, "maxfg_flip", "/dev/logbuffer_maxfg_flip"); - DumpFileToFd(fd, "maxfg_base", "/dev/logbuffer_maxfg_base_monitor"); - DumpFileToFd(fd, "maxfg_flip", "/dev/logbuffer_maxfg_flip_monitor"); - } - if (!stat("/sys/class/power_supply/dock", &buffer)) { - DumpFileToFd(fd, "Power supply property dock", "/sys/class/power_supply/dock/uevent"); - } - - if (!stat("/dev/logbuffer_tcpm", &buffer)) { - DumpFileToFd(fd, "Logbuffer TCPM", "/dev/logbuffer_tcpm"); - } else if (!PropertiesHelper::IsUserBuild()) { - if (!stat("/sys/kernel/debug/tcpm", &buffer)) { - RunCommandToFd(fd, "TCPM logs", {"/vendor/bin/sh", "-c", "cat /sys/kernel/debug/tcpm/*"}); - } else { - RunCommandToFd(fd, "TCPM logs", {"/vendor/bin/sh", "-c", "cat /sys/kernel/debug/usb/tcpm*"}); - } - } - - RunCommandToFd(fd, "TCPC", {"/vendor/bin/sh", "-c", - "for f in /sys/devices/platform/10d50000.hsi2c/i2c-*/i2c-max77759tcpc;" - "do echo \"registers:\"; cat $f/registers;" - "echo \"frs:\"; cat $f/frs;" - "echo \"auto_discharge:\"; cat $f/auto_discharge;" - "echo \"bc12_enabled:\"; cat $f/bc12_enabled;" - "echo \"cc_toggle_enable:\"; cat $f/cc_toggle_enable;" - "echo \"contaminant_detection:\"; cat $f/contaminant_detection;" - "echo \"contaminant_detection_status:\"; cat $f/contaminant_detection_status; done"}); - - DumpFileToFd(fd, "PD Engine", "/dev/logbuffer_usbpd"); - DumpFileToFd(fd, "POGO Transport", "/dev/logbuffer_pogo_transport"); - DumpFileToFd(fd, "PPS-google_cpm", "/dev/logbuffer_cpm"); - DumpFileToFd(fd, "PPS-dc", "/dev/logbuffer_pca9468"); - - DumpFileToFd(fd, "Battery Health", "/sys/class/power_supply/battery/health_index_stats"); - DumpFileToFd(fd, "BMS", "/dev/logbuffer_ssoc"); - DumpFileToFd(fd, "TTF", "/dev/logbuffer_ttf"); - DumpFileToFd(fd, "TTF details", "/sys/class/power_supply/battery/ttf_details"); - DumpFileToFd(fd, "TTF stats", "/sys/class/power_supply/battery/ttf_stats"); - DumpFileToFd(fd, "maxq", "/dev/logbuffer_maxq"); - DumpFileToFd(fd, "aacr_state", "/sys/class/power_supply/battery/aacr_state"); - DumpFileToFd(fd, "TEMP/DOCK-DEFEND", "/dev/logbuffer_bd"); - - RunCommandToFd(fd, "TRICKLE-DEFEND Config", {"/vendor/bin/sh", "-c", - " cd /sys/devices/platform/google,battery/power_supply/battery/;" - " for f in `ls bd_*` ; do echo \"$f: `cat $f`\" ; done"}); - - RunCommandToFd(fd, "DWELL-DEFEND Config", {"/vendor/bin/sh", "-c", - " cd /sys/devices/platform/google,charger/;" - " for f in `ls charge_s*` ; do echo \"$f: `cat $f`\" ; done"}); - - RunCommandToFd(fd, "TEMP-DEFEND Config", {"/vendor/bin/sh", "-c", - " cd /sys/devices/platform/google,charger/;" - " for f in `ls bd_*` ; do echo \"$f: `cat $f`\" ; done"}); - if (!PropertiesHelper::IsUserBuild()) { - - DumpFileToFd(fd, "DC_registers dump", "/sys/class/power_supply/pca9468-mains/device/registers_dump"); - DumpFileToFd(fd, "max77759_chg registers dump", "/d/max77759_chg/registers"); - DumpFileToFd(fd, "max77729_pmic registers dump", "/d/max77729_pmic/registers"); - DumpFileToFd(fd, "Charging table dump", "/d/google_battery/chg_raw_profile"); - - - RunCommandToFd(fd, "fg_model", {"/vendor/bin/sh", "-c", - "for f in /d/maxfg* ; do " - "regs=`cat $f/fg_model`; echo $f: ;" - "echo \"$regs\"; done"}); - - RunCommandToFd(fd, "fg_alo_ver", {"/vendor/bin/sh", "-c", - "for f in /d/maxfg* ; do " - "regs=`cat $f/algo_ver`; echo $f: ;" - "echo \"$regs\"; done"}); - - RunCommandToFd(fd, "fg_model_ok", {"/vendor/bin/sh", "-c", - "for f in /d/maxfg* ; do " - "regs=`cat $f/model_ok`; echo $f: ;" - "echo \"$regs\"; done"}); - - - /* FG Registers */ - RunCommandToFd(fd, "fg registers", {"/vendor/bin/sh", "-c", - "for f in /d/maxfg* ; do " - "regs=`cat $f/registers`; echo $f: ;" - "echo \"$regs\"; done"}); - } - - /* EEPROM State */ - if (!stat("/sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom", &buffer)) { - RunCommandToFd(fd, "Battery EEPROM", {"/vendor/bin/sh", "-c", "xxd /sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom"}); - } else if(!stat("/sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom", &buffer)) { - 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/10970000.hsi2c/i2c-6/6-0050/eeprom", &buffer)) { - RunCommandToFd(fd, "Battery EEPROM", {"/vendor/bin/sh", "-c", "xxd /sys/devices/platform/10970000.hsi2c/i2c-6/6-0050/eeprom"}); - } else if(!stat("/sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom", &buffer)) { - RunCommandToFd(fd, "Battery EEPROM", {"/vendor/bin/sh", "-c", "xxd /sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom"}); - } else { - RunCommandToFd(fd, "Battery EEPROM", {"/vendor/bin/sh", "-c", "xxd /sys/devices/platform/10970000.hsi2c/i2c-8/8-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/; " - "for f in `ls pps_*` ; do echo \"$f: `cat $f`\" ; done"}); - RunCommandToFd(fd, "Google Battery", {"/vendor/bin/sh", "-c", "cd /sys/kernel/debug/google_battery/; " - "for f in `ls ssoc_*` ; do echo \"$f: `cat $f`\" ; done"}); - } - - DumpFileToFd(fd, "WLC logs", "/dev/logbuffer_wireless"); - DumpFileToFd(fd, "WLC VER", "/sys/class/power_supply/wireless/device/version"); - DumpFileToFd(fd, "WLC STATUS", "/sys/class/power_supply/wireless/device/status"); - DumpFileToFd(fd, "WLC FW Version", "/sys/class/power_supply/wireless/device/fw_rev"); - DumpFileToFd(fd, "RTX", "/dev/logbuffer_rtx"); - - if (!PropertiesHelper::IsUserBuild()) { - RunCommandToFd(fd, "gvotables", {"/vendor/bin/sh", "-c", "cat /sys/kernel/debug/gvotables/*/status"}); - } - RunCommandToFd(fd, "Mitigation Stats", {"/vendor/bin/sh", "-c", "echo \"Source\\t\\tCount\\tSOC\\tTime\\tVoltage\"; " - "for f in `ls /sys/devices/virtual/pmic/mitigation/last_triggered_count/*` ; " - "do count=`cat $f`; " - "a=${f/\\/sys\\/devices\\/virtual\\/pmic\\/mitigation\\/last_triggered_count\\//}; " - "b=${f/last_triggered_count/last_triggered_capacity}; " - "c=${f/last_triggered_count/last_triggered_timestamp/}; " - "d=${f/last_triggered_count/last_triggered_voltage/}; " - "cnt=`cat $f`; " - "cap=`cat ${b/count/cap}`; " - "ti=`cat ${c/count/time}`; " - "volt=`cat ${d/count/volt}`; " - "echo \"${a/_count/} " - "\\t$cnt\\t$cap\\t$ti\\t$volt\" ; done"}); - RunCommandToFd(fd, "Clock Divider Ratio", {"/vendor/bin/sh", "-c", "echo \"Source\\t\\tRatio\"; " - "for f in `ls /sys/devices/virtual/pmic/mitigation/clock_ratio/*` ; " - "do ratio=`cat $f`; " - "a=${f/\\/sys\\/devices\\/virtual\\/pmic\\/mitigation\\/clock_ratio\\//}; " - "echo \"${a/_ratio/} \\t$ratio\" ; done"}); - RunCommandToFd(fd, "Clock Stats", {"/vendor/bin/sh", "-c", "echo \"Source\\t\\tStats\"; " - "for f in `ls /sys/devices/virtual/pmic/mitigation/clock_stats/*` ; " - "do stats=`cat $f`; " - "a=${f/\\/sys\\/devices\\/virtual\\/pmic\\/mitigation\\/clock_stats\\//}; " - "echo \"${a/_stats/} \\t$stats\" ; done"}); - RunCommandToFd(fd, "Triggered Level", {"/vendor/bin/sh", "-c", "echo \"Source\\t\\tLevel\"; " - "for f in `ls /sys/devices/virtual/pmic/mitigation/triggered_lvl/*` ; " - "do lvl=`cat $f`; " - "a=${f/\\/sys\\/devices\\/virtual\\/pmic\\/mitigation\\/triggered_lvl\\//}; " - "echo \"${a/_lvl/} \\t$lvl\" ; done"}); - RunCommandToFd(fd, "Instruction", {"/vendor/bin/sh", "-c", - "for f in `ls /sys/devices/virtual/pmic/mitigation/instruction/*` ; " - "do val=`cat $f` ; " - "a=${f/\\/sys\\/devices\\/virtual\\/pmic\\/mitigation\\/instruction\\//}; " - "echo \"$a=$val\" ; done"}); - -} - static void *dumpModemThread(void *data) { ATRACE_ASYNC_BEGIN("dumpModemThread", 0); std::string modemLogDir = MODEM_LOG_DIRECTORY; diff --git a/dumpstate/Dumpstate.h b/dumpstate/Dumpstate.h index cfca5a15..e2b639d5 100644 --- a/dumpstate/Dumpstate.h +++ b/dumpstate/Dumpstate.h @@ -28,8 +28,6 @@ namespace dumpstate { class Dumpstate : public BnDumpstateDevice { public: - Dumpstate(); - ::ndk::ScopedAStatus dumpstateBoard(const std::vector<::ndk::ScopedFileDescriptor>& in_fds, IDumpstateDevice::DumpstateMode in_mode, int64_t in_timeoutMillis) override; @@ -41,14 +39,7 @@ class Dumpstate : public BnDumpstateDevice { private: const std::string kAllSections = "all"; - std::vector>> mTextSections; - void dumpTextSection(int fd, std::string const& sectionName); - - // Text sections that can be dumped individually on the command line in - // addition to being included in full dumps - void dumpPowerSection(int fd); - void dumpMemorySection(int fd); }; } // namespace dumpstate diff --git a/dumpstate/dump_gs101.sh b/dumpstate/dump_gs101.sh index c37b2bfb..e86b1d51 100644 --- a/dumpstate/dump_gs101.sh +++ b/dumpstate/dump_gs101.sh @@ -19,3 +19,307 @@ for f in $(ls -t /data/vendor/camera/hal_graph_state*.txt |head -1); do cat $f done +build_type="$(getprop ro.build.type)" + +echo "\n------ Power Stats Times ------" +echo -n "Boot: " && /vendor/bin/uptime -s && echo -n "Now: " && date; + +echo "\n------ ACPM stats ------" +for f in /sys/devices/platform/acpm_stats/*_stats ; do + echo "\n\n$f" + cat $f +done + +echo "\n------ CPU PM stats ------" +cat "/sys/devices/system/cpu/cpupm/cpupm/time_in_state" + +echo "\n------ GENPD summary ------" +cat "/d/pm_genpd/pm_genpd_summary" + +echo "\n------ Power supply property battery ------" +cat "/sys/class/power_supply/battery/uevent" +echo "\n------ Power supply property dc ------" +cat "/sys/class/power_supply/dc/uevent" +echo "\n------ Power supply property gcpm ------" +cat "/sys/class/power_supply/gcpm/uevent" +echo "\n------ Power supply property gcpm_pps ------" +cat "/sys/class/power_supply/gcpm_pps/uevent" +echo "\n------ Power supply property main-charger ------" +cat "/sys/class/power_supply/main-charger/uevent" +echo "\n------ Power supply property pca9486-mains ------" +cat "/sys/class/power_supply/pca9468-mains/uevent" +echo "\n------ Power supply property tcpm ------" +cat "/sys/class/power_supply/tcpm-source-psy-i2c-max77759tcpc/uevent" +echo "\n------ Power supply property usb ------" +cat "/sys/class/power_supply/usb/uevent" +echo "\n------ Power supply property wireless ------" +cat "/sys/class/power_supply/wireless/uevent" + +if [ -d "/sys/class/power_supply/maxfg" ] +then + echo "\n------ Power supply property maxfg ------" + cat "/sys/class/power_supply/maxfg/uevent" + echo "\n------ m5_state ------" + cat "/sys/class/power_supply/maxfg/m5_model_state" + echo "\n------ maxfg ------" + cat "/dev/logbuffer_maxfg" + echo "\n------ maxfg ------" + cat "/dev/logbuffer_maxfg_monitor" +else + echo "\n------ Power supply property maxfg_base ------" + cat "/sys/class/power_supply/maxfg_base/uevent" + echo "\n------ Power supply property maxfg_flip ------" + cat "/sys/class/power_supply/maxfg_flip/uevent" + echo "\n------ m5_state ------" + cat "/sys/class/power_supply/maxfg_base/m5_model_state" + echo "\n------ maxfg_base ------" + cat "/dev/logbuffer_maxfg_base" + echo "\n------ maxfg_flip ------" + cat "/dev/logbuffer_maxfg_flip" + echo "\n------ maxfg_base ------" + cat "/dev/logbuffer_maxfg_base_monitor" + echo "\n------ maxfg_flip ------" + cat "/dev/logbuffer_maxfg_flip_monitor" +fi + +if [ -d "/sys/class/power_supply/dock" ] +then + echo "\n------ Power supply property dock ------" + cat "/sys/class/power_supply/dock/uevent" +fi + +if [ -e "/dev/logbuffer_tcpm" ] +then + echo "\n------ Logbuffer TCPM ------" + cat "/dev/logbuffer_tcpm" + if [ -d "/sys/kernel/debug/tcpm" ] + then + echo "\n------ TCPM logs ------" + cat /sys/kernel/debug/tcpm/* + else + echo "\n------ TCPM logs ------" + cat /sys/kernel/debug/usb/tcpm* + fi +fi + +echo "\n------ TCPC ------" +for f in /sys/devices/platform/10d50000.hsi2c/i2c-*/i2c-max77759tcpc +do + echo "registers:" + cat $f/registers + echo "frs:" + cat $f/frs + echo "auto_discharge:" + cat $f/auto_discharge + echo "bc12_enabled:" + cat $f/bc12_enabled + echo "cc_toggle_enable:" + cat $f/cc_toggle_enable + echo "contaminant_detection:" + cat $f/contaminant_detection + echo "contaminant_detection_status:" + cat $f/contaminant_detection_status +done + +echo "\n------ PD Engine ------" +cat "/dev/logbuffer_usbpd" +echo "\n------ POGO Transport ------" +cat "/dev/logbuffer_pogo_transport" +echo "\n------ PPS-google_cpm ------" +cat "/dev/logbuffer_cpm" +echo "\n------ PPS-dc ------" +cat "/dev/logbuffer_pca9468" + +echo "\n------ Battery Health ------" +cat "/sys/class/power_supply/battery/health_index_stats" +echo "\n------ BMS ------" +cat "/dev/logbuffer_ssoc" +echo "\n------ TTF ------" +cat "/dev/logbuffer_ttf" +echo "\n------ TTF details ------" +cat "/sys/class/power_supply/battery/ttf_details" +echo "\n------ TTF stats ------" +cat "/sys/class/power_supply/battery/ttf_stats" +echo "\n------ maxq ------" +cat "/dev/logbuffer_maxq" +echo "\n------ aacr_state ------" +cat "/sys/class/power_supply/battery/aacr_state" +echo "\n------ TEMP/DOCK-DEFEND ------" +cat "/dev/logbuffer_bd" + +echo "\n------ TRICKLE-DEFEND Config ------" +cd /sys/devices/platform/google,battery/power_supply/battery/ +for f in `ls bd_*` +do + echo $f: `cat $f` +done + +echo "\n------ DWELL-DEFEND Config ------" +cd /sys/devices/platform/google,charger/ +for f in `ls charge_s*` +do + echo "$f: `cat $f`" +done + +echo "\n------ TEMP-DEFEND Config ------" +cd /sys/devices/platform/google,charger/ +for f in `ls bd_*` +do + echo "$f: `cat $f`" +done + +if [ $build_type = "userdebug" ] +then + echo "\n------ DC_registers dump ------" + cat "/sys/class/power_supply/pca9468-mains/device/registers_dump" + echo "\n------ max77759_chg registers dump ------" + cat "/d/max77759_chg/registers" + echo "\n------ max77729_pmic registers dump ------" + cat "/d/max77729_pmic/registers" + echo "\n------ Charging table dump ------" + cat "/d/google_battery/chg_raw_profile" + + echo "\n------ fg_model ------" + for f in /d/maxfg* + do + regs=`cat $f/fg_model` + echo $f: + echo "$regs" + done + + echo "\n------ fg_alo_ver ------" + for f in /d/maxfg* + do + regs=`cat $f/algo_ver` + echo $f: + echo "$regs" + done + + echo "\n------ fg_model_ok ------" + for f in /d/maxfg* + do + regs=`cat $f/model_ok` + echo $f: + echo "$regs" + done + + echo "\n------ fg registers ------" + for f in /d/maxfg* + do + regs=`cat $f/registers` + echo $f: + echo "$regs" + done +fi + +echo "\n------ Battery EEPROM ------" +if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom" ] +then + xxd /sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom +fi + +if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom" ] +then + xxd /sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom +fi + +if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-6/6-0050/eeprom" ] +then + xxd /sys/devices/platform/10970000.hsi2c/i2c-6/6-0050/eeprom +fi + +if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom" ] +then + xxd /sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom +fi + +if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom" ] +then + xxd /sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom +fi + +echo "\n------ Charger Stats ------" +cat "/sys/class/power_supply/battery/charge_details" +if [ $build_type = "userdebug" ] +then + echo "\n------ Google Charger ------" + cd /sys/kernel/debug/google_charger/ + for f in `ls pps_*` + do + echo "$f: `cat $f`" + done + echo "\n------ Google Battery ------" + cd /sys/kernel/debug/google_battery/ + for f in `ls ssoc_*` + do + echo "$f: `cat $f`" + done +fi + +echo "\n------ WLC logs ------" +cat "/dev/logbuffer_wireless" +echo "\n------ WLC VER ------" +cat "/sys/class/power_supply/wireless/device/version" +echo "\n------ WLC STATUS ------" +cat "/sys/class/power_supply/wireless/device/status" +echo "\n------ WLC FW Version ------" +cat "/sys/class/power_supply/wireless/device/fw_rev" +echo "\n------ RTX ------" +cat "/dev/logbuffer_rtx" + +if [ $build_type = "userdebug" ] +then + echo "\n------ gvotables ------" + cat /sys/kernel/debug/gvotables/*/status +fi + +echo "\n------ Mitigation Stats ------" +echo "Source\t\tCount\tSOC\tTime\tVoltage" +for f in `ls /sys/devices/virtual/pmic/mitigation/last_triggered_count/*` +do + count=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/last_triggered_count\//} + b=${f/last_triggered_count/last_triggered_capacity} + c=${f/last_triggered_count/last_triggered_timestamp/} + d=${f/last_triggered_count/last_triggered_voltage/} + cnt=`cat $f` + cap=`cat ${b/count/cap}` + ti=`cat ${c/count/time}` + volt=`cat ${d/count/volt}` + echo "${a/_count/} \t$cnt\t$cap\t$ti\t$volt" +done + +echo "\n------ Clock Divider Ratio ------" +echo \"Source\t\tRatio\" +for f in `ls /sys/devices/virtual/pmic/mitigation/clock_ratio/*` +do ratio=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/clock_ratio\//} + echo "${a/_ratio/} \t$ratio" +done + +echo "\n------ Clock Stats ------" +echo "Source\t\tStats" +for f in `ls /sys/devices/virtual/pmic/mitigation/clock_stats/*` +do + stats=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/clock_stats\//}; + echo "${a/_stats/} \t$stats" +done + +echo "\n------ Triggered Level ------" +echo "Source\t\tLevel" +for f in `ls /sys/devices/virtual/pmic/mitigation/triggered_lvl/*` +do + lvl=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/triggered_lvl\//} + echo "${a/_lvl/} \t$lvl" +done + +echo "\n------ Instruction ------" +for f in `ls /sys/devices/virtual/pmic/mitigation/instruction/*` +do + val=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/instruction\//} + echo "$a=$val" +done +