diff options
-rw-r--r-- | battery_mitigation/battery_mitigation.rc | 56 | ||||
-rw-r--r-- | conf/init.gs201.rc | 29 | ||||
-rw-r--r-- | dumpstate/Dumpstate.cpp | 34 | ||||
-rw-r--r-- | dumpstate/Dumpstate.h | 1 | ||||
-rw-r--r-- | pixelstats/service.cpp | 4 |
5 files changed, 83 insertions, 41 deletions
diff --git a/battery_mitigation/battery_mitigation.rc b/battery_mitigation/battery_mitigation.rc index c0c76fb..fcc9a4f 100644 --- a/battery_mitigation/battery_mitigation.rc +++ b/battery_mitigation/battery_mitigation.rc @@ -3,88 +3,88 @@ on property:vendor.thermal.link_ready=1 chown system system /data/vendor/mitigation start vendor.battery_mitigation -on property:ro.boot.bootreason=reboot,uvlo,pmic,if +on property:ro.boot.bootreason=reboot,uvlo,pmic,if && property:sys.boot.reason=reboot,uvlo,pmic,if setprop vendor.brownout_reason "uvlo,pmic,if" -on property:ro.boot.bootreason=reboot,ocp,pmic,if +on property:ro.boot.bootreason=reboot,ocp,pmic,if && property:sys.boot.reason=reboot,ocp,pmic,if setprop vendor.brownout_reason "ocp,pmic,if" -on property:ro.boot.bootreason=reboot,uvlo,pmic,main +on property:ro.boot.bootreason=reboot,uvlo,pmic,main && property:sys.boot.reason=reboot,uvlo,pmic,main setprop vendor.brownout_reason "uvlo,pmic,main" -on property:ro.boot.bootreason=reboot,uvlo,pmic,sub +on property:ro.boot.bootreason=reboot,uvlo,pmic,sub && property:sys.boot.reason=reboot,uvlo,pmic,sub setprop vendor.brownout_reason "uvlo,pmic,sub" -on property:ro.boot.bootreason=reboot,ocp,buck1m +on property:ro.boot.bootreason=reboot,ocp,buck1m && property:sys.boot.reason=reboot,ocp,buck1m setprop vendor.brownout_reason "ocp,buck1m" -on property:ro.boot.bootreason=reboot,ocp,buck2m +on property:ro.boot.bootreason=reboot,ocp,buck2m && property:sys.boot.reason=reboot,ocp,buck2m setprop vendor.brownout_reason "ocp,buck2m" -on property:ro.boot.bootreason=reboot,ocp,buck3m +on property:ro.boot.bootreason=reboot,ocp,buck3m && property:sys.boot.reason=reboot,ocp,buck3m setprop vendor.brownout_reason "ocp,buck3m" -on property:ro.boot.bootreason=reboot,ocp,buck4m +on property:ro.boot.bootreason=reboot,ocp,buck4m && property:sys.boot.reason=reboot,ocp,buck4m setprop vendor.brownout_reason "ocp,buck4m" -on property:ro.boot.bootreason=reboot,ocp,buck5m +on property:ro.boot.bootreason=reboot,ocp,buck5m && property:sys.boot.reason=reboot,ocp,buck5m setprop vendor.brownout_reason "ocp,buck5m" -on property:ro.boot.bootreason=reboot,ocp,buck6m +on property:ro.boot.bootreason=reboot,ocp,buck6m && property:sys.boot.reason=reboot,ocp,buck6m setprop vendor.brownout_reason "ocp,buck6m" -on property:ro.boot.bootreason=reboot,ocp,buck7m +on property:ro.boot.bootreason=reboot,ocp,buck7m && property:sys.boot.reason=reboot,ocp,buck7m setprop vendor.brownout_reason "ocp,buck7m" -on property:ro.boot.bootreason=reboot,ocp,buck8m +on property:ro.boot.bootreason=reboot,ocp,buck8m && property:sys.boot.reason=reboot,ocp,buck8m setprop vendor.brownout_reason "ocp,buck8m" -on property:ro.boot.bootreason=reboot,ocp,buck9m +on property:ro.boot.bootreason=reboot,ocp,buck9m && property:sys.boot.reason=reboot,ocp,buck9m setprop vendor.brownout_reason "ocp,buck9m" -on property:ro.boot.bootreason=reboot,ocp,buck10m +on property:ro.boot.bootreason=reboot,ocp,buck10m && property:sys.boot.reason=reboot,ocp,buck10m setprop vendor.brownout_reason "ocp,buck10m" -on property:ro.boot.bootreason=reboot,ocp,buck1s +on property:ro.boot.bootreason=reboot,ocp,buck1s && property:sys.boot.reason=reboot,ocp,buck1s setprop vendor.brownout_reason "ocp,buck1s" -on property:ro.boot.bootreason=reboot,ocp,buck2s +on property:ro.boot.bootreason=reboot,ocp,buck2s && property:sys.boot.reason=reboot,ocp,buck2s setprop vendor.brownout_reason "ocp,buck2s" -on property:ro.boot.bootreason=reboot,ocp,buck3s +on property:ro.boot.bootreason=reboot,ocp,buck3s && property:sys.boot.reason=reboot,ocp,buck3s setprop vendor.brownout_reason "ocp,buck3s" -on property:ro.boot.bootreason=reboot,ocp,buck4s +on property:ro.boot.bootreason=reboot,ocp,buck4s && property:sys.boot.reason=reboot,ocp,buck4s setprop vendor.brownout_reason "ocp,buck4s" -on property:ro.boot.bootreason=reboot,ocp,buck5s +on property:ro.boot.bootreason=reboot,ocp,buck5s && property:sys.boot.reason=reboot,ocp,buck5s setprop vendor.brownout_reason "ocp,buck5s" -on property:ro.boot.bootreason=reboot,ocp,buck6s +on property:ro.boot.bootreason=reboot,ocp,buck6s && property:sys.boot.reason=reboot,ocp,buck6s setprop vendor.brownout_reason "ocp,buck6s" -on property:ro.boot.bootreason=reboot,ocp,buck7s +on property:ro.boot.bootreason=reboot,ocp,buck7s && property:sys.boot.reason=reboot,ocp,buck7s setprop vendor.brownout_reason "ocp,buck7s" -on property:ro.boot.bootreason=reboot,ocp,buck8s +on property:ro.boot.bootreason=reboot,ocp,buck8s && property:sys.boot.reason=reboot,ocp,buck8s setprop vendor.brownout_reason "ocp,buck8s" -on property:ro.boot.bootreason=reboot,ocp,buck9s +on property:ro.boot.bootreason=reboot,ocp,buck9s && property:sys.boot.reason=reboot,ocp,buck9s setprop vendor.brownout_reason "ocp,buck9s" -on property:ro.boot.bootreason=reboot,ocp,buck10s +on property:ro.boot.bootreason=reboot,ocp,buck10s && property:sys.boot.reason=reboot,ocp,buck10s setprop vendor.brownout_reason "ocp,buck10s" -on property:ro.boot.bootreason=reboot,ocp,buckds +on property:ro.boot.bootreason=reboot,ocp,buckds && property:sys.boot.reason=reboot,ocp,buckds setprop vendor.brownout_reason "ocp,buckds" -on property:ro.boot.bootreason=reboot,ocp,buckas +on property:ro.boot.bootreason=reboot,ocp,buckas && property:sys.boot.reason=reboot,ocp,buckas setprop vendor.brownout_reason "ocp,buckas" -on property:ro.boot.bootreason=reboot,ocp,buckcs +on property:ro.boot.bootreason=reboot,ocp,buckcs && property:sys.boot.reason=reboot,ocp,buckcs setprop vendor.brownout_reason "ocp,buckcs" -on property:ro.boot.bootreason=reboot,ocp,buckbs +on property:ro.boot.bootreason=reboot,ocp,buckbs && property:sys.boot.reason=reboot,ocp,buckbs setprop vendor.brownout_reason "ocp,buckbs" service vendor.battery_mitigation /vendor/bin/hw/battery_mitigation diff --git a/conf/init.gs201.rc b/conf/init.gs201.rc index 5baf72d..617e6df 100644 --- a/conf/init.gs201.rc +++ b/conf/init.gs201.rc @@ -220,6 +220,7 @@ on init # Dump eeprom 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-5/5-0050/eeprom chown system system /sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom chown system system /sys/devices/platform/10da0000.hsi2c/i2c-7/7-0050/eeprom @@ -444,6 +445,20 @@ on early-boot chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt chown system system /dev/sys/block/bootdevice/slowio_sync_cnt + # PCIe link stats for pixelstats + chown system system /sys/devices/platform/11920000.pcie/link_stats/complete_timeout_irqs + chown system system /sys/devices/platform/11920000.pcie/link_stats/link_down_irqs + chown system system /sys/devices/platform/11920000.pcie/link_stats/link_recovery_failures + chown system system /sys/devices/platform/11920000.pcie/link_stats/link_up_average + chown system system /sys/devices/platform/11920000.pcie/link_stats/link_up_failures + chown system system /sys/devices/platform/11920000.pcie/link_stats/pll_lock_average + chown system system /sys/devices/platform/14520000.pcie/link_stats/complete_timeout_irqs + chown system system /sys/devices/platform/14520000.pcie/link_stats/link_down_irqs + chown system system /sys/devices/platform/14520000.pcie/link_stats/link_recovery_failures + chown system system /sys/devices/platform/14520000.pcie/link_stats/link_up_average + chown system system /sys/devices/platform/14520000.pcie/link_stats/link_up_failures + chown system system /sys/devices/platform/14520000.pcie/link_stats/pll_lock_average + # Dump Battery EEPROM history for pixelstats chown system system /dev/battery_history chmod 0644 /dev/battery_history @@ -451,10 +466,10 @@ on early-boot # Permission for logbuffer chown system system /dev/logbuffer_maxfg chown system system /dev/logbuffer_maxfg_base - chown system system /dev/logbuffer_maxfg_flip + chown system system /dev/logbuffer_maxfg_secondary chown system system /dev/logbuffer_maxfg_monitor chown system system /dev/logbuffer_maxfg_base_monitor - chown system system /dev/logbuffer_maxfg_flip_monitor + chown system system /dev/logbuffer_maxfg_secondary_monitor chown system system /dev/logbuffer_maxq chown system system /dev/logbuffer_rtx chown system system /dev/logbuffer_ssoc @@ -466,6 +481,9 @@ on early-boot chown system system /dev/logbuffer_pca9468 chown system system /dev/logbuffer_cpm chown system system /dev/logbuffer_bd + chown system system /dev/logbuffer_dual_batt + chown system system /dev/logbuffer_pcie0 + chown system system /dev/logbuffer_pcie1 on boot @@ -651,6 +669,13 @@ on property:vendor.device.modules.ready=1 chown system system /sys/devices/virtual/sec/tsp/cmd chown system system /sys/devices/virtual/sec/tsp/cmd_result chown system system /sys/devices/virtual/sec/tsp/status + chown system system /proc/goog_touch_interface/gti.0 + chown system system /proc/goog_touch_interface/gti.0/ms_base + chown system system /proc/goog_touch_interface/gti.0/ms_diff + chown system system /proc/goog_touch_interface/gti.0/ms_raw + chown system system /proc/goog_touch_interface/gti.0/ss_base + chown system system /proc/goog_touch_interface/gti.0/ss_diff + chown system system /proc/goog_touch_interface/gti.0/ss_raw # Allow access to touch chown system input /dev/touch_offload chmod 660 /dev/touch_offload diff --git a/dumpstate/Dumpstate.cpp b/dumpstate/Dumpstate.cpp index 0296991..65f774a 100644 --- a/dumpstate/Dumpstate.cpp +++ b/dumpstate/Dumpstate.cpp @@ -244,6 +244,7 @@ Dumpstate::Dumpstate() { "led", [this](int fd) { dumpLEDSection(fd); } }, { "pixel-trace", [this](int fd) { dumpPixelTraceSection(fd); } }, { "perf-metrics", [this](int fd) { dumpPerfMetricsSection(fd); } }, + { "pcie", [this](int fd) { dumpPCIeSection(fd); } }, }, mLogSections{ { "modem", [this](int fd, const std::string &destDir) { dumpModemLogs(fd, destDir); } }, @@ -330,12 +331,13 @@ void Dumpstate::dumpPowerSection(int fd) { 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, "Power supply property maxfg_secondary", "/sys/class/power_supply/maxfg_secondary/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_secondary", "/dev/logbuffer_maxfg_secondary"); DumpFileToFd(fd, "maxfg_base", "/dev/logbuffer_maxfg_base_monitor"); - DumpFileToFd(fd, "maxfg_flip", "/dev/logbuffer_maxfg_flip_monitor"); + DumpFileToFd(fd, "maxfg_secondary", "/dev/logbuffer_maxfg_secondary_monitor"); + DumpFileToFd(fd, "google_dual_batt", "/dev/logbuffer_dual_batt"); } if (!stat("/dev/maxfg_history", &buffer)) { @@ -430,6 +432,8 @@ void Dumpstate::dumpPowerSection(int fd) { 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/10da0000.hsi2c/i2c-5/5-0050/eeprom", &buffer)) { + RunCommandToFd(fd, "Battery EEPROM", {"/vendor/bin/sh", "-c", "xxd /sys/devices/platform/10da0000.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)) { @@ -536,6 +540,7 @@ void Dumpstate::dumpTouchSection(int fd) { const char syna_cmd_path[] = "/sys/class/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs"; const char focaltech_cmd_path[] = "/proc/focaltech_touch"; const char gti0_cmd_path[] = "/sys/devices/virtual/goog_touch_interface/gti.0"; + const char gti0_procfs_path[] = "/proc/goog_touch_interface/gti.0"; char cmd[256]; if (!access(focaltech_cmd_path, R_OK)) { @@ -867,6 +872,10 @@ void Dumpstate::dumpTouchSection(int fd) { } if (!access(gti0_cmd_path, R_OK)) { + const char *heatmap_path = gti0_cmd_path; + + if (!access(gti0_procfs_path, R_OK)) + heatmap_path = gti0_procfs_path; ::android::base::WriteStringToFd("\n<<<<<< GTI0 >>>>>>\n\n", fd); // Enable: force touch active @@ -878,27 +887,27 @@ void Dumpstate::dumpTouchSection(int fd) { DumpFileToFd(fd, "Touch Firmware Version", cmd); // Get Mutual Sensing Data - Baseline - snprintf(cmd, sizeof(cmd), "cat %s/ms_base", gti0_cmd_path); + snprintf(cmd, sizeof(cmd), "cat %s/ms_base", heatmap_path); RunCommandToFd(fd, "Get Mutual Sensing Data - Baseline", {"/vendor/bin/sh", "-c", cmd}); // Get Mutual Sensing Data - Delta - snprintf(cmd, sizeof(cmd), "cat %s/ms_diff", gti0_cmd_path); + snprintf(cmd, sizeof(cmd), "cat %s/ms_diff", heatmap_path); RunCommandToFd(fd, "Get Mutual Sensing Data - Delta", {"/vendor/bin/sh", "-c", cmd}); // Get Mutual Sensing Data - Raw - snprintf(cmd, sizeof(cmd), "cat %s/ms_raw", gti0_cmd_path); + snprintf(cmd, sizeof(cmd), "cat %s/ms_raw", heatmap_path); RunCommandToFd(fd, "Get Mutual Sensing Data - Raw", {"/vendor/bin/sh", "-c", cmd}); // Get Self Sensing Data - Baseline - snprintf(cmd, sizeof(cmd), "cat %s/ss_base", gti0_cmd_path); + snprintf(cmd, sizeof(cmd), "cat %s/ss_base", heatmap_path); RunCommandToFd(fd, "Get Self Sensing Data - Baseline", {"/vendor/bin/sh", "-c", cmd}); // Get Self Sensing Data - Delta - snprintf(cmd, sizeof(cmd), "cat %s/ss_diff", gti0_cmd_path); + snprintf(cmd, sizeof(cmd), "cat %s/ss_diff", heatmap_path); RunCommandToFd(fd, "Get Self Sensing Data - Delta", {"/vendor/bin/sh", "-c", cmd}); // Get Self Sensing Data - Raw - snprintf(cmd, sizeof(cmd), "cat %s/ss_raw", gti0_cmd_path); + snprintf(cmd, sizeof(cmd), "cat %s/ss_raw", heatmap_path); RunCommandToFd(fd, "Get Self Sensing Data - Raw", {"/vendor/bin/sh", "-c", cmd}); // Self Test @@ -1189,6 +1198,11 @@ void Dumpstate::dumpLEDSection(int fd) { } } +void Dumpstate::dumpPCIeSection(int fd) { + DumpFileToFd(fd, "PCIe0 Logs", "/dev/logbuffer_pcie0"); + DumpFileToFd(fd, "PCIe1 Logs", "/dev/logbuffer_pcie1"); +} + void Dumpstate::dumpModemSection(int fd) { DumpFileToFd(fd, "Modem Stat", "/data/vendor/modem_stat/debug.txt"); RunCommandToFd(fd, "Modem SSR history", {"/vendor/bin/sh", "-c", @@ -1395,7 +1409,7 @@ ndk::ScopedAStatus Dumpstate::dumpstateBoard(const std::vector<::ndk::ScopedFile "Invalid mode"); } - if (in_fds.size() < 1) { + if (in_fds.size() < 2) { ALOGE("no FD for dumpstate_board binary\n"); } else { int fd_bin = in_fds[1].get(); diff --git a/dumpstate/Dumpstate.h b/dumpstate/Dumpstate.h index 805c1cb..b13061f 100644 --- a/dumpstate/Dumpstate.h +++ b/dumpstate/Dumpstate.h @@ -72,6 +72,7 @@ class Dumpstate : public BnDumpstateDevice { void dumpLEDSection(int fd); void dumpPixelTraceSection(int fd); void dumpPerfMetricsSection(int fd); + void dumpPCIeSection(int fd); void dumpLogSection(int fd, int fdModem); diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index b94b481..445d222 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -70,7 +70,9 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { .CCARatePath = "/sys/devices/platform/audiometrics/cca_rate_read_once", .TempResidencyPath = "/sys/kernel/metrics/temp_residency/temp_residency_all/stats", .ResumeLatencyMetricsPath = "/sys/kernel/metrics/resume_latency/resume_latency_metrics", - .LongIRQMetricsPath = "/sys/kernel/metrics/irq/long_irq_metrics" + .LongIRQMetricsPath = "/sys/kernel/metrics/irq/long_irq_metrics", + .ModemPcieLinkStatsPath = "/sys/devices/platform/11920000.pcie/link_stats", + .WifiPcieLinkStatsPath = "/sys/devices/platform/14520000.pcie/link_stats" }; const struct UeventListener::UeventPaths ueventPaths = { |