summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--battery_mitigation/battery_mitigation.rc56
-rw-r--r--conf/init.gs201.rc29
-rw-r--r--dumpstate/Dumpstate.cpp34
-rw-r--r--dumpstate/Dumpstate.h1
-rw-r--r--pixelstats/service.cpp4
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 = {