diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk
index 56e4be11..c599bf68 100644
--- a/BoardConfig-common.mk
+++ b/BoardConfig-common.mk
@@ -58,11 +58,7 @@ BOARD_BOOTCONFIG += androidboot.boot_devices=14700000.ufs
TARGET_NO_BOOTLOADER := true
TARGET_NO_RADIOIMAGE := true
-ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
BOARD_PREBUILT_BOOTIMAGE := $(wildcard $(TARGET_KERNEL_DIR)/boot.img)
-else
-BOARD_PREBUILT_BOOTIMAGE := $(wildcard $(TARGET_KERNEL_DIR)/boot-user.img)
-endif
ifneq (,$(BOARD_PREBUILT_BOOTIMAGE))
TARGET_NO_KERNEL := true
else
@@ -195,6 +191,8 @@ BOARD_USE_DEC_SW_CSC := true
BOARD_USE_ENC_SW_CSC := true
BOARD_SUPPORT_MFC_ENC_RGB := true
BOARD_USE_BLOB_ALLOCATOR := false
+BOARD_SUPPORT_MFC_ENC_BT2020 := true
+
########################
BOARD_SUPER_PARTITION_SIZE := 8531214336
@@ -386,11 +384,20 @@ KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko)
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist
-BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load))
-ifndef BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD
+# Prebuilt kernel modules that are *not* listed in vendor_kernel_boot.modules.load
+BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES = fips140/fips140.ko
+BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA = $(foreach k,$(BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES),$(if $(wildcard $(KERNEL_MODULE_DIR)/$(k)), $(k)))
+KERNEL_MODULES += $(addprefix $(KERNEL_MODULE_DIR)/, $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA))
+
+# Kernel modules that are listed in vendor_kernel_boot.modules.load
+BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load))
+ifndef BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE
$(error vendor_kernel_boot.modules.load not found or empty)
endif
-BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD)))
+BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD := $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA)
+BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD += $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE)
+BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA))
+BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES += $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE)))
BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.load))
ifndef BOARD_VENDOR_KERNEL_MODULES_LOAD
diff --git a/battery_mitigation/battery_mitigation.cpp b/battery_mitigation/battery_mitigation.cpp
index 5784b270..70e8188d 100644
--- a/battery_mitigation/battery_mitigation.cpp
+++ b/battery_mitigation/battery_mitigation.cpp
@@ -61,10 +61,47 @@ const struct MitigationConfig::Config cfg = {
"voltage_now", "current_now",
},
.LogFilePath = "/data/vendor/mitigation/thismeal.txt",
+ .TimestampFormat = "%Y-%m-%d %H:%M:%S",
};
+const char kReadyFilePath[] = "/sys/devices/virtual/pmic/mitigation/instruction/ready";
+const char kReadyProperty[] = "vendor.brownout.mitigation.ready";
+const char kLastMealPath[] = "/data/vendor/mitigation/lastmeal.txt";
+const char kBRRequestedProperty[] = "vendor.brownout_reason";
+const std::regex kTimestampRegex("^\\S+\\s[0-9]+:[0-9]+:[0-9]+\\S+$");
+
int main(int /*argc*/, char ** /*argv*/) {
+ auto batteryMitigationStartTime = std::chrono::system_clock::now();
bmSp = new BatteryMitigation(cfg);
+ if (!bmSp) {
+ return 0;
+ }
+ bool mitigationLogTimeValid = bmSp->isMitigationLogTimeValid(batteryMitigationStartTime,
+ cfg.LogFilePath,
+ cfg.TimestampFormat,
+ kTimestampRegex);
+ std::string reason = android::base::GetProperty(kBRRequestedProperty, "");
+ if (!reason.empty() && mitigationLogTimeValid) {
+ std::ifstream src(cfg.LogFilePath, std::ios::in);
+ std::ofstream dst(kLastMealPath, std::ios::out);
+ dst << src.rdbuf();
+ }
+ bool isBatteryMitigationReady = false;
+ std::string ready_str;
+ int val = 0;
+ while (!isBatteryMitigationReady) {
+ if (!android::base::ReadFileToString(kReadyFilePath, &ready_str)) {
+ continue;
+ }
+ ready_str = android::base::Trim(ready_str);
+ if (!android::base::ParseInt(ready_str, &val)) {
+ continue;
+ }
+ if (val == 1) {
+ isBatteryMitigationReady = true;
+ }
+ }
+ android::base::SetProperty(kReadyProperty, "1");
while (true) {
pause();
}
diff --git a/battery_mitigation/battery_mitigation.rc b/battery_mitigation/battery_mitigation.rc
index c50811cf..c0c76fb5 100644
--- a/battery_mitigation/battery_mitigation.rc
+++ b/battery_mitigation/battery_mitigation.rc
@@ -1,24 +1,92 @@
-on property:sys.boot_completed=1 && property:ro.boot.bootreason=reboot,ocp,pmic,if
- copy data/vendor/mitigation/thismeal.txt data/vendor/mitigation/lastmeal.txt
- chown system system data/vendor/mitigation/lastmeal.txt
-
-on property:sys.boot_completed=1 && property:ro.boot.bootreason=reboot,uvlo,pmic,if
- copy data/vendor/mitigation/thismeal.txt data/vendor/mitigation/lastmeal.txt
- chown system system data/vendor/mitigation/lastmeal.txt
-
-on property:sys.boot_completed=1 && property:ro.boot.bootreason=reboot,uvlo,pmic,main
- copy data/vendor/mitigation/thismeal.txt data/vendor/mitigation/lastmeal.txt
- chown system system data/vendor/mitigation/lastmeal.txt
-
-on property:sys.boot_completed=1 && property:ro.boot.bootreason=reboot,uvlo,pmic,sub
- copy data/vendor/mitigation/thismeal.txt data/vendor/mitigation/lastmeal.txt
- chown system system data/vendor/mitigation/lastmeal.txt
-
on property:vendor.thermal.link_ready=1
mkdir /data/vendor/mitigation 0755 system system
chown system system /data/vendor/mitigation
start vendor.battery_mitigation
+on property:ro.boot.bootreason=reboot,uvlo,pmic,if
+ setprop vendor.brownout_reason "uvlo,pmic,if"
+
+on property:ro.boot.bootreason=reboot,ocp,pmic,if
+ setprop vendor.brownout_reason "ocp,pmic,if"
+
+on property:ro.boot.bootreason=reboot,uvlo,pmic,main
+ setprop vendor.brownout_reason "uvlo,pmic,main"
+
+on property:ro.boot.bootreason=reboot,uvlo,pmic,sub
+ setprop vendor.brownout_reason "uvlo,pmic,sub"
+
+on property:ro.boot.bootreason=reboot,ocp,buck1m
+ setprop vendor.brownout_reason "ocp,buck1m"
+
+on property:ro.boot.bootreason=reboot,ocp,buck2m
+ setprop vendor.brownout_reason "ocp,buck2m"
+
+on property:ro.boot.bootreason=reboot,ocp,buck3m
+ setprop vendor.brownout_reason "ocp,buck3m"
+
+on property:ro.boot.bootreason=reboot,ocp,buck4m
+ setprop vendor.brownout_reason "ocp,buck4m"
+
+on property:ro.boot.bootreason=reboot,ocp,buck5m
+ setprop vendor.brownout_reason "ocp,buck5m"
+
+on property:ro.boot.bootreason=reboot,ocp,buck6m
+ setprop vendor.brownout_reason "ocp,buck6m"
+
+on property:ro.boot.bootreason=reboot,ocp,buck7m
+ setprop vendor.brownout_reason "ocp,buck7m"
+
+on property:ro.boot.bootreason=reboot,ocp,buck8m
+ setprop vendor.brownout_reason "ocp,buck8m"
+
+on property:ro.boot.bootreason=reboot,ocp,buck9m
+ setprop vendor.brownout_reason "ocp,buck9m"
+
+on property:ro.boot.bootreason=reboot,ocp,buck10m
+ setprop vendor.brownout_reason "ocp,buck10m"
+
+on property:ro.boot.bootreason=reboot,ocp,buck1s
+ setprop vendor.brownout_reason "ocp,buck1s"
+
+on property:ro.boot.bootreason=reboot,ocp,buck2s
+ setprop vendor.brownout_reason "ocp,buck2s"
+
+on property:ro.boot.bootreason=reboot,ocp,buck3s
+ setprop vendor.brownout_reason "ocp,buck3s"
+
+on property:ro.boot.bootreason=reboot,ocp,buck4s
+ setprop vendor.brownout_reason "ocp,buck4s"
+
+on property:ro.boot.bootreason=reboot,ocp,buck5s
+ setprop vendor.brownout_reason "ocp,buck5s"
+
+on property:ro.boot.bootreason=reboot,ocp,buck6s
+ setprop vendor.brownout_reason "ocp,buck6s"
+
+on property:ro.boot.bootreason=reboot,ocp,buck7s
+ setprop vendor.brownout_reason "ocp,buck7s"
+
+on property:ro.boot.bootreason=reboot,ocp,buck8s
+ setprop vendor.brownout_reason "ocp,buck8s"
+
+on property:ro.boot.bootreason=reboot,ocp,buck9s
+ setprop vendor.brownout_reason "ocp,buck9s"
+
+on property:ro.boot.bootreason=reboot,ocp,buck10s
+ setprop vendor.brownout_reason "ocp,buck10s"
+
+on property:ro.boot.bootreason=reboot,ocp,buckds
+ setprop vendor.brownout_reason "ocp,buckds"
+
+on property:ro.boot.bootreason=reboot,ocp,buckas
+ setprop vendor.brownout_reason "ocp,buckas"
+
+on property:ro.boot.bootreason=reboot,ocp,buckcs
+ setprop vendor.brownout_reason "ocp,buckcs"
+
+on property:ro.boot.bootreason=reboot,ocp,buckbs
+ setprop vendor.brownout_reason "ocp,buckbs"
+
service vendor.battery_mitigation /vendor/bin/hw/battery_mitigation
user system
group system
diff --git a/conf/init.gs201.rc b/conf/init.gs201.rc
index 6d8c5f45..5baf72d1 100644
--- a/conf/init.gs201.rc
+++ b/conf/init.gs201.rc
@@ -14,6 +14,9 @@ on init
# CPU0 cannot be offline
chmod 0444 /sys/devices/system/cpu/cpu0/online
+ # Set teo as cpu idle governor
+ write /sys/devices/system/cpu/cpuidle/current_governor teo
+
# Boot time fs tuning
write /sys/block/sda/queue/iostats 0
write /sys/block/sda/queue/scheduler bfq
@@ -209,25 +212,6 @@ on init
chown system system /dev/nanohub
chown system system /dev/nanohub_comms
- # 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_monitor
- chown system system /dev/logbuffer_maxfg_base_monitor
- chown system system /dev/logbuffer_maxfg_flip_monitor
- chown system system /dev/logbuffer_maxq
- chown system system /dev/logbuffer_google,cpm
- chown system system /dev/logbuffer_rtx
- chown system system /dev/logbuffer_ssoc
- chown system system /dev/logbuffer_ttf
- chown system system /dev/logbuffer_tcpm
- chown system system /dev/logbuffer_usbpd
- chown system system /dev/logbuffer_pogo_transport
- chown system system /dev/logbuffer_wireless
- chown system system /dev/logbuffer_pca9468
- chown system system /dev/logbuffer_cpm
-
# 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
@@ -254,6 +238,9 @@ on init
# Thermal Charge stats (write 0)
chown system system /sys/devices/platform/google,charger/thermal_stats
+ # Google Charger stats (write 0)
+ chown system system /sys/devices/platform/google,charger/charge_stats
+
# Permission for wireless charging fan
chown system system /sys/devices/platform/google,charger/thermal_dc_fan_alarm
chown system system /sys/devices/platform/google,cpm/thermal_mdis_fan_alarm
@@ -303,9 +290,7 @@ on init
chown system system /sys/devices/platform/google,cpm/dc_ctl
# Important to include dd_state as it's used in battery defender in charger mode
chown system system /sys/devices/platform/google,charger/dd_state
- # Disable dock-defend by default
chown system system /sys/devices/platform/google,charger/dd_settings
- write /sys/devices/platform/google,charger/dd_settings -1
# Power Stats HAL
chown system system /dev/bbd_pwrstat
@@ -377,6 +362,7 @@ on post-fs-data
# Permissions Camera
mkdir /data/vendor/camera 0770 system camera
+ mkdir /data/vendor/camera/catpipe 0770 system camera
mkdir /data/vendor/camera/video_bokeh_node 0770 system camera
chmod 0755 /sys/kernel/debug/tracing
restorecon /sys/kernel/debug/tracing/trace_marker
@@ -462,6 +448,25 @@ on early-boot
chown system system /dev/battery_history
chmod 0644 /dev/battery_history
+ # 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_monitor
+ chown system system /dev/logbuffer_maxfg_base_monitor
+ chown system system /dev/logbuffer_maxfg_flip_monitor
+ chown system system /dev/logbuffer_maxq
+ chown system system /dev/logbuffer_rtx
+ chown system system /dev/logbuffer_ssoc
+ chown system system /dev/logbuffer_ttf
+ chown system system /dev/logbuffer_tcpm
+ chown system system /dev/logbuffer_usbpd
+ chown system system /dev/logbuffer_pogo_transport
+ chown system system /dev/logbuffer_wireless
+ chown system system /dev/logbuffer_pca9468
+ chown system system /dev/logbuffer_cpm
+ chown system system /dev/logbuffer_bd
+
on boot
# Allow to access debugfs for system:system
@@ -515,6 +520,13 @@ on property:persist.vendor.radio.no_modem_board=1
on fs
mount_all --early
+
+ # for battery defender
+ mkdir /mnt/vendor/persist/battery 0700 system system
+
+ # for battery defender
+ mkdir /mnt/vendor/persist/battery 0700 system system
+
restorecon_recursive /mnt/vendor/persist
restorecon_recursive /mnt/vendor/persist/aoc
restorecon_recursive /mnt/vendor/persist/audio
@@ -656,12 +668,12 @@ on property:init.svc.vendor.charger=running
setprop sys.usb.configfs 1
setprop vendor.setup.power 1
- # keep one little and one big
+ # keep one little and one mid core
write /sys/devices/system/cpu/cpu1/online 0
write /sys/devices/system/cpu/cpu2/online 0
write /sys/devices/system/cpu/cpu3/online 0
- write /sys/devices/system/cpu/cpu4/online 0
write /sys/devices/system/cpu/cpu5/online 0
+ write /sys/devices/system/cpu/cpu6/online 0
write /sys/devices/system/cpu/cpu7/online 0
on property:sys.boot_completed=1
@@ -684,6 +696,9 @@ on property:sys.boot_completed=1
swapon_all /vendor/etc/fstab.${ro.board.platform}
write /proc/sys/vm/swappiness 100
+ # Adjust watermark level
+ write /proc/sys/vm/watermark_scale_factor 200
+
# Back to default VM settings
write /proc/sys/vm/dirty_expire_centisecs 3000
write /proc/sys/vm/dirty_background_ratio 10
@@ -705,7 +720,6 @@ on property:sys.boot_completed=1
setprop vendor.powerhal.init 1
# Setup final cpu.uclamp
- write /proc/vendor_sched/uclamp_threshold 8
write /proc/vendor_sched/ta_uclamp_min 1
write /proc/vendor_sched/fg_uclamp_min 0
write /proc/vendor_sched/sys_prefer_idle 0
@@ -908,7 +922,7 @@ on post-fs-data
mkdir /data/vendor/powerstats 0771 system system
chown system system /data/vendor/powerstats
-on property:vendor.thermal.link_ready=1
+on property:vendor.brownout.mitigation.ready=1
# BCL
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0xfff041c1 #DFS
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu1_heavy_clk_ratio 0xfff041c1 #DFS
@@ -924,6 +938,9 @@ on property:vendor.thermal.link_ready=1
write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x1
write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x1
write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x1
+
+on property:vendor.thermal.link_ready=1
+ # BCL
chown system system /dev/thermal/tz-by-name/soc/mode
chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_temp
chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_hyst
diff --git a/conf/init.gs201.usb.rc b/conf/init.gs201.usb.rc
index 4ac57f92..c57e2c56 100644
--- a/conf/init.gs201.usb.rc
+++ b/conf/init.gs201.usb.rc
@@ -152,6 +152,8 @@ on early-boot
on boot
write /config/usb_gadget/g1/bcdDevice 0x0510
+ # Set USB timeout
+ write sys/module/usbcore/parameters/initial_descriptor_timeout 500
# Use USB Gadget HAL
setprop sys.usb.configfs 2
diff --git a/device-common.mk b/device-common.mk
index bd7ad344..56b2e0ec 100644
--- a/device-common.mk
+++ b/device-common.mk
@@ -47,3 +47,7 @@ PRODUCT_PRODUCT_PROPERTIES += \
# ZramWriteback
-include hardware/google/pixel/mm/device_gki.mk
+
+# Set thermal warm reset
+PRODUCT_PRODUCT_PROPERTIES += \
+ ro.thermal_warmreset = true
diff --git a/device.mk b/device.mk
index dfdab1a1..9937e61a 100644
--- a/device.mk
+++ b/device.mk
@@ -226,7 +226,7 @@ endif
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
- frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
+ frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
frameworks/native/data/etc/android.software.vulkan.deqp.level-2022-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
@@ -411,8 +411,10 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml
# eSIM MEP Feature
+ifneq ($(DISABLE_TELEPHONY_EUICC),true)
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.telephony.euicc.mep.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/android.hardware.telephony.euicc.mep.xml
+endif
# default usb debug functions
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
@@ -551,6 +553,11 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
battery_mitigation
+
+ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
+PRODUCT_PACKAGES += BrownoutDetection
+endif
+
PRODUCT_PACKAGES_DEBUG += \
f2fs_io \
check_f2fs \
@@ -652,7 +659,6 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.app.duration=16600000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.frame_rate_multiple_threshold=120
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.layer_caching_active_layer_timeout_ms=1000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.treat_170m_as_sRGB=1
-PRODUCT_DEFAULT_PROPERTY_OVERRIDES += persist.vendor.camera.sf_usedsp=0
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_layer_caching=true
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80
@@ -805,6 +811,7 @@ PRODUCT_PACKAGES += \
#PRODUCT_PACKAGES += \
# trusty_metricsd
+$(call soong_config_set,google_displaycolor,displaycolor_platform,gs201)
PRODUCT_PACKAGES += \
android.hardware.composer.hwc3-service.pixel \
libdisplaycolor
@@ -973,8 +980,6 @@ PRODUCT_COPY_FILES += \
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.cfg \
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.nprf \
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default_metrics.xml \
- device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_Default.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_Default.cfg \
- device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_Default.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_Default.nprf \
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_Default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_Default_metrics.xml \
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_stability.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_stability.cfg \
device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_stability.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_stability.nprf \
@@ -1000,7 +1005,7 @@ PRODUCT_PACKAGES += \
android.hardware.audio@7.1-impl \
android.hardware.audio.effect@7.0-impl \
android.hardware.soundtrigger@2.3-impl \
- vendor.google.whitechapel.audio.audioext@3.0-impl \
+ vendor.google.whitechapel.audio.audioext@4.0-impl \
android.hardware.bluetooth.audio-impl \
#
diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml
index d9e853fd..016137ee 100644
--- a/device_framework_matrix_product.xml
+++ b/device_framework_matrix_product.xml
@@ -98,7 +98,7 @@
com.google.hardware.pixel.display
- 6
+ 7
IDisplay
default
@@ -177,7 +177,7 @@
vendor.google.whitechapel.audio.audioext
- 3.0
+ 4.0
IAudioExt
default
diff --git a/dumpstate/Dumpstate.cpp b/dumpstate/Dumpstate.cpp
index cd484408..0296991f 100644
--- a/dumpstate/Dumpstate.cpp
+++ b/dumpstate/Dumpstate.cpp
@@ -30,6 +30,7 @@
#include "DumpstateUtil.h"
#define MODEM_LOG_DIRECTORY "/data/vendor/radio/logs/always-on"
+#define MODEM_LOG_HISTORY_DIRECTORY "data/vendor/radio/logs/history"
#define MODEM_EXTENDED_LOG_DIRECTORY "/data/vendor/radio/extended_logs"
#define RIL_LOG_DIRECTORY "/data/vendor/radio"
#define RIL_LOG_DIRECTORY_PROPERTY "persist.vendor.ril.log.base_dir"
@@ -241,6 +242,8 @@ Dumpstate::Dumpstate()
{ "gsc", [this](int fd) { dumpGscSection(fd); } },
{ "trusty", [this](int fd) { dumpTrustySection(fd); } },
{ "led", [this](int fd) { dumpLEDSection(fd); } },
+ { "pixel-trace", [this](int fd) { dumpPixelTraceSection(fd); } },
+ { "perf-metrics", [this](int fd) { dumpPerfMetricsSection(fd); } },
},
mLogSections{
{ "modem", [this](int fd, const std::string &destDir) { dumpModemLogs(fd, destDir); } },
@@ -284,11 +287,10 @@ void Dumpstate::dumpTextSection(int fd, const std::string §ionName) {
// Dump items related to wlan
void Dumpstate::dumpWlanSection(int fd) {
- RunCommandToFd(fd, "WLAN Debug Dump", {"/vendor/bin/sh", "-c",
- "cat /sys/wifi/dump_start"});
-
// Dump firmware symbol table for firmware log decryption
DumpFileToFd(fd, "WLAN FW Log Symbol Table", "/vendor/firmware/Data.msc");
+ RunCommandToFd(fd, "WLAN TWT Dump", {"/vendor/bin/sh", "-c",
+ "cat /sys/wlan_ptracker/twt/*"});
}
// Dump items related to power and battery
@@ -376,6 +378,7 @@ void Dumpstate::dumpPowerSection(int fd) {
DumpFileToFd(fd, "TTF stats", "/sys/class/power_supply/battery/ttf_stats");
DumpFileToFd(fd, "aacr_state", "/sys/class/power_supply/battery/aacr_state");
DumpFileToFd(fd, "maxq", "/dev/logbuffer_maxq");
+ 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/;"
@@ -518,6 +521,7 @@ void Dumpstate::dumpThermalSection(int fd) {
DumpFileToFd(fd, "TMU_TOP fall thresholds:", "/sys/module/gs_thermal/parameters/tmu_top_reg_dump_fall_thres");
DumpFileToFd(fd, "TMU_SUB rise thresholds:", "/sys/module/gs_thermal/parameters/tmu_sub_reg_dump_rise_thres");
DumpFileToFd(fd, "TMU_SUB fall thresholds:", "/sys/module/gs_thermal/parameters/tmu_sub_reg_dump_fall_thres");
+ DumpFileToFd(fd, "Temperature Residency Metrics:", "/sys/kernel/metrics/temp_residency/temp_residency_all/stats");
}
// Dump items related to touch
@@ -526,6 +530,8 @@ void Dumpstate::dumpTouchSection(int fd) {
"/proc/fts/driver_test",
"/sys/class/spi_master/spi6/spi6.0",
"/proc/fts_ext/driver_test"};
+ const char fst2_cmd_path[2][50] = {"/sys/class/spi_master/spi0/spi0.0",
+ "/proc/fts/driver_test"};
const char lsi_spi_path[] = "/sys/devices/virtual/sec/tsp";
const char syna_cmd_path[] = "/sys/class/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs";
const char focaltech_cmd_path[] = "/proc/focaltech_touch";
@@ -533,6 +539,8 @@ void Dumpstate::dumpTouchSection(int fd) {
char cmd[256];
if (!access(focaltech_cmd_path, R_OK)) {
+ ::android::base::WriteStringToFd("\n<<<<<< FOCALTECH >>>>>>\n\n", fd);
+
// Enable: force touch active
snprintf(cmd, sizeof(cmd), "echo 21 > %s/force_active", focaltech_cmd_path);
RunCommandToFd(fd, "Enable Force Touch Active", {"/vendor/bin/sh", "-c", cmd});
@@ -587,6 +595,8 @@ void Dumpstate::dumpTouchSection(int fd) {
}
if (!access(syna_cmd_path, R_OK)) {
+ ::android::base::WriteStringToFd("\n<<<<<< SYNA >>>>>>\n\n", fd);
+
// Enable: force touch active
snprintf(cmd, sizeof(cmd), "echo 21 > %s/force_active", syna_cmd_path);
RunCommandToFd(fd, "Enable Force Touch Active", {"/vendor/bin/sh", "-c", cmd});
@@ -615,7 +625,12 @@ void Dumpstate::dumpTouchSection(int fd) {
RunCommandToFd(fd, "Disable Force Touch Active", {"/vendor/bin/sh", "-c", cmd});
}
- for (int i = 0; i < 4; i+=2) {
+ for (int i = 0; i < 4; i += 2) { // ftm5
+ snprintf(cmd, sizeof(cmd), "%s", stm_cmd_path[i]);
+ if (access(cmd, R_OK))
+ continue;
+ ::android::base::WriteStringToFd("\n<<<<<< FTM5 >>>>>>\n\n", fd);
+
snprintf(cmd, sizeof(cmd), "%s", stm_cmd_path[i + 1]);
if (!access(cmd, R_OK)) {
snprintf(cmd, sizeof(cmd), "echo A0 01 01 > %s", stm_cmd_path[i + 1]);
@@ -735,7 +750,36 @@ void Dumpstate::dumpTouchSection(int fd) {
}
}
+ for (int i = 0; i < 2; i += 2) { // fst2
+ snprintf(cmd, sizeof(cmd), "%s", fst2_cmd_path[i]);
+ if (!access(cmd, R_OK)) {
+ ::android::base::WriteStringToFd("\n<<<<<< FST2 >>>>>>\n\n", fd);
+
+ snprintf(cmd, sizeof(cmd), "%s", fst2_cmd_path[i + 1]);
+ if (!access(cmd, R_OK)) {
+ // Enable: force touch active
+ snprintf(cmd, sizeof(cmd), "echo 21 01 > %s", fst2_cmd_path[i + 1]);
+ RunCommandToFd(fd, "Force Set AP as Bus Owner with Bugreport Flag",
+ {"/vendor/bin/sh", "-c", cmd});
+
+ // Golden Mutual Raw Data
+ snprintf(cmd, sizeof(cmd), "echo 0B 00 23 40 > %s;"
+ "echo 02 B7 00 10 04 E0 01 > %s ; cat %s;"
+ "echo 02 B7 04 F0 04 E0 01 > %s ; cat %s;",
+ fst2_cmd_path[i + 1], fst2_cmd_path[i + 1], fst2_cmd_path[i + 1],
+ fst2_cmd_path[i + 1], fst2_cmd_path[i + 1]);
+ RunCommandToFd(fd, "Golden Mutual Raw Data", {"/vendor/bin/sh", "-c", cmd});
+
+ // Restore Bus Owner
+ snprintf(cmd, sizeof(cmd), "echo 21 00 > %s", fst2_cmd_path[i + 1]);
+ RunCommandToFd(fd, "Restore Bus Owner", {"/vendor/bin/sh", "-c", cmd});
+ }
+ }
+ }
+
if (!access(lsi_spi_path, R_OK)) {
+ ::android::base::WriteStringToFd("\n<<<<<< LSI >>>>>>\n\n", fd);
+
// Enable: force touch active
snprintf(cmd, sizeof(cmd),
"echo %s > %s/cmd && cat %s/cmd_result",
@@ -823,6 +867,8 @@ void Dumpstate::dumpTouchSection(int fd) {
}
if (!access(gti0_cmd_path, R_OK)) {
+ ::android::base::WriteStringToFd("\n<<<<<< GTI0 >>>>>>\n\n", fd);
+
// Enable: force touch active
snprintf(cmd, sizeof(cmd), "echo 1 > %s/force_active", gti0_cmd_path);
RunCommandToFd(fd, "Force Touch Active", {"/vendor/bin/sh", "-c", cmd});
@@ -1157,8 +1203,10 @@ void Dumpstate::dumpModemSection(int fd) {
void Dumpstate::dumpModemLogs(int fd, const std::string &destDir) {
std::string extendedLogDir = MODEM_EXTENDED_LOG_DIRECTORY;
+ std::string modemLogHistoryDir = MODEM_LOG_HISTORY_DIRECTORY;
dumpLogs(fd, extendedLogDir, destDir, 20, EXTENDED_LOG_PREFIX);
+ dumpLogs(fd, modemLogHistoryDir, destDir, 2, "Logging");
dumpModemEFS(destDir);
}
@@ -1308,6 +1356,15 @@ void Dumpstate::dumpLogSection(int fd, int fd_bin)
RunCommandToFd(fd, "RM LOG", { "/vendor/bin/rm", logCombined.c_str()}, CommandOptions::WithTimeout(2).Build());
}
+void Dumpstate::dumpPixelTraceSection(int fd) {
+ DumpFileToFd(fd, "Pixel trace", "/sys/kernel/tracing/instances/pixel/trace");
+}
+
+void Dumpstate::dumpPerfMetricsSection(int fd) {
+ DumpFileToFd(fd, "Long running IRQ metrics", "/sys/kernel/metrics/irq/long_irq_metrics");
+ DumpFileToFd(fd, "Resume latency metrics", "/sys/kernel/metrics/resume_latency/resume_latency_metrics");
+}
+
ndk::ScopedAStatus Dumpstate::dumpstateBoard(const std::vector<::ndk::ScopedFileDescriptor>& in_fds,
IDumpstateDevice::DumpstateMode in_mode,
int64_t in_timeoutMillis) {
diff --git a/dumpstate/Dumpstate.h b/dumpstate/Dumpstate.h
index eadaefe6..805c1cbd 100644
--- a/dumpstate/Dumpstate.h
+++ b/dumpstate/Dumpstate.h
@@ -70,6 +70,8 @@ class Dumpstate : public BnDumpstateDevice {
void dumpGscSection(int fd);
void dumpTrustySection(int fd);
void dumpLEDSection(int fd);
+ void dumpPixelTraceSection(int fd);
+ void dumpPerfMetricsSection(int fd);
void dumpLogSection(int fd, int fdModem);
diff --git a/gnss/47765/bin/android.hardware.gnss@2.1-impl-google.so b/gnss/47765/bin/android.hardware.gnss@2.1-impl-google.so
index 729c29ec..e63acdab 100755
Binary files a/gnss/47765/bin/android.hardware.gnss@2.1-impl-google.so and b/gnss/47765/bin/android.hardware.gnss@2.1-impl-google.so differ
diff --git a/gnss/47765/bin/android.hardware.gnss@2.1-service-brcm b/gnss/47765/bin/android.hardware.gnss@2.1-service-brcm
index 57c040be..1ae69f13 100755
Binary files a/gnss/47765/bin/android.hardware.gnss@2.1-service-brcm and b/gnss/47765/bin/android.hardware.gnss@2.1-service-brcm differ
diff --git a/gnss/47765/bin/flp.default.so b/gnss/47765/bin/flp.default.so
index 55805030..728b67c0 100755
Binary files a/gnss/47765/bin/flp.default.so and b/gnss/47765/bin/flp.default.so differ
diff --git a/gnss/47765/bin/gps.default.so b/gnss/47765/bin/gps.default.so
index 37d378f5..061ad5cc 100755
Binary files a/gnss/47765/bin/gps.default.so and b/gnss/47765/bin/gps.default.so differ
diff --git a/gnss/47765/bin/gpsd b/gnss/47765/bin/gpsd
index ca2001cd..73a0c5ef 100755
Binary files a/gnss/47765/bin/gpsd and b/gnss/47765/bin/gpsd differ
diff --git a/gnss/47765/bin/lhd b/gnss/47765/bin/lhd
index b1789ec7..ed83fc7e 100755
Binary files a/gnss/47765/bin/lhd and b/gnss/47765/bin/lhd differ
diff --git a/gnss/47765/bin/scd b/gnss/47765/bin/scd
index 22d5791a..f64cc257 100755
Binary files a/gnss/47765/bin/scd and b/gnss/47765/bin/scd differ
diff --git a/gnss/47765/firmware/SensorHub.patch b/gnss/47765/firmware/SensorHub.patch
index 9d7016b6..cee5c462 100644
--- a/gnss/47765/firmware/SensorHub.patch
+++ b/gnss/47765/firmware/SensorHub.patch
@@ -1,9 +1,9 @@
-
+
-
+
@@ -79,7 +79,7 @@ F087FE022102914FF4005101915B220748084B00F13801
009102A101F438F703B000BD4170700080BD8900708989
00805D8A006905800025643A2564095374617274206368
70704170705461736B0A00000000633A5C77735C626F64
-5F3437373631313336315F3534373834345C637573746F
+5F3437373631323239305F3535373939305C637573746F
6D6572735C676F6F676C655C503231466C61677461696C
6D63755C64656C69766572795C53656E736F724875625F
5032315C7372635C6875625F636F6E74726F6C6C65722E
@@ -390,7 +390,7 @@ D00FF298080FF2206140F271673B4642468B2011F48EF2
F22046FEF700FF07E002464FF4D1630FF2F4518F2011F4
5FF2FEF769FC04F5A6620A23C2E9000105F0F00006F00F
0101433A462046BDE8F041FFF7BDBB0000633A5C77735C
-626F645F3437373631313336315F3534373834345C6375
+626F645F3437373631323239305F3535373939305C6375
73746F6D6572735C676F6F676C655C503231466C616774
61696C6D63755C64656C69766572795C53656E736F7248
75625F5032315C7372635C636870705C7472616E73706F
@@ -526,7 +526,7 @@ B590B00C46C17B0FF248420E91817B0D91417B0C91017B
25210378204626F4F1F510B010BD000025643A25640948
232568687520756E6B6E6F776E20726571756573742E20
636D643D2523782C2049443D256868750A00633A5C7773
-5C626F645F3437373631313336315F3534373834345C63
+5C626F645F3437373631323239305F3535373939305C63
7573746F6D6572735C676F6F676C655C503231466C6167
7461696C6D63755C64656C69766572795C53656E736F72
4875625F5032315C7372F19403502E8000635C63687070
@@ -585,7 +585,7 @@ F752DEC007F9D5FFF7CBFFF6E700B583B0022102914FF4
D803B000BDF07E8A000C53890028878A00113280009D32
800025643A256409434850502042617564726174652069
732073657420746F20256C640A0A00633A5C77735C626F
-645F3437373631313336315F3534373834345C63757374
+645F3437373631323239305F3535373939305C63757374
6F6D6572735C676F6F676C655C503231466C6167746169
6C6D63755C64656C69766572795C53656E736F72487562
5F5032315C7372635C73656E736F725F6875622E630000
@@ -679,13 +679,13 @@ E08619AE4210D22946204600F067FF0028F6D510F1040F
B5C90382B0A0F5A86419D500F65C552846FDF7F6DD0600
12D00020009069462846FDF712DE761E012804DB024600
992046FEF79EF82846FDF76FDD002EECD173BD70470000
-633A5C77735C626F645F3437373631313336315F353437
-3834345C637573746F6D6572735C676F6F676C655C5032
+633A5C77735C626F645F3437373631323239305F353537
+3939305C637573746F6D6572735C676F6F676C655C5032
31466C61677461696C6D63755C64656C69766572795C53
656E736F724875625F5032315C7372635C636870705C69
6E636C7564655C636870702F7472616E73706F72742E68
-00633A5C77735C626F645F3437373631313336315F3534
-373834345C637573746F6D6572735C676F6F676C655C50
+00633A5C77735C626F645F3437373631323239305F3535
+373939305C637573746F6D6572735C676F6F676C655C50
3231466C61677461696C6D63755C64656C69766572795C
53656E736F724875625F5032315C7372635C636870705C
706C6174666F726D5C62636D5C42434D343737785C6C69
@@ -695,8 +695,8 @@ B5C90382B0A0F5A86419D500F65C552846FDF7F6DD0600
138EA4B29C42EBD2D26A04EB440302EBC306327C012AF1
D1D6E90223D0E918679F42E7D8E8D39642E4D2E5E7D0E9
1823CDE900230FF27C010FF2100240F21E238F200FF4B1
-F403B0F0BD0000633A5C77735C626F645F343737363131
-3336315F3534373834345C637573746F6D6572735C676F
+F403B0F0BD0000633A5C77735C626F645F343737363132
+3239305F3535373939305C637573746F6D6572735C676F
6F676C655C503231466C61677461696C6D63755C64656C
69766572795C53656E736F724875625F5032315C737263
5C636870705C636C69656E74732E630000000025643A25
@@ -706,7 +706,7 @@ F403B0F0BD0000633A5C77735C626F645F343737363131
21FEF75DF80AE03246294625F420F40120787032462068
3946FEF718F8012003B0F0BD25643A2564094F4F4D2061
742025733A25640A00633A5C77735C626F645F34373736
-31313336315F3534373834345C637573746F6D6572735C
+31323239305F3535373939305C637573746F6D6572735C
676F6F676C655C503231466C61677461696C6D63755C64
656C69766572795C53656E736F724875625F5032315C73
72635C636870705C73657276696365735C6C6F6F706261
@@ -718,8 +718,8 @@ D4FFC6F80600C6F80A103923D6F80600D6F80A10CDE902
0122460E2000908F200FF2B0010FF4C3F32868314604B0
BDE870400E22FDF78CBF10B58B880124012B02D1FFF7BE
FF00E00024204610BD25643A2564094F4F4D2061742025
-733A25640A00633A5C77735C626F645F34373736313133
-36315F3534373834345C637573746F6D6572735C676F6F
+733A25640A00633A5C77735C626F645F34373736313232
+39305F3535373939305C637573746F6D6572735C676F6F
676C655C503231466C61677461696C6D63755C64656C69
766572795C53656E736F724875625F5032315C7372635C
636870705C73657276696365735C74696D6573796E632E
@@ -734,7 +734,7 @@ D13B2001903B230FF280040FF26801009422468B200FF4
314603B0BDE8F043FDF7E2BE10B58A880124012A02D1FF
F7BAFF00E00024204610BD25643A2564094F4F4D206174
2025733A25640A00633A5C77735C626F645F3437373631
-313336315F3534373834345C637573746F6D6572735C67
+323239305F3535373939305C637573746F6D6572735C67
6F6F676C655C503231466C61677461696C6D63755C6465
6C69766572795C53656E736F724875625F5032315C7372
635C636870705C73657276696365735C646973636F7665
@@ -761,7 +761,7 @@ D0CDE9000197230FF2B8020FF2B0118B200FF41BF2FFF7
05CDE90445AD230FF2AC118F200FF4D8F106B0BDE87083
70B50446084615461E46FFF7BEFF3246294620680068BD
E87040FDF797BD00000000633A5C77735C626F645F3437
-373631313336315F3534373834345C637573746F6D6572
+373631323239305F3535373939305C637573746F6D6572
735C676F6F676C655C503231466C61677461696C6D6375
5C64656C69766572795C53656E736F724875625F503231
5C7372635C636870705C73657276696365732E63000000
@@ -788,8 +788,8 @@ D009D31AE001A8009038230FF264020FF250018B2019E0
230FF240020FF22C018E2007E001A8009042230FF22C02
0FF218018F200FF49DF00DF5027D10BC5DF80CFB0FF284
014160704725643A25640950414C3A2025730A0000633A
-5C77735C626F645F3437373631313336315F3534373834
-345C637573746F6D6572735C676F6F676C655C50323146
+5C77735C626F645F3437373631323239305F3535373939
+305C637573746F6D6572735C676F6F676C655C50323146
6C61677461696C6D63755C64656C69766572795C53656E
736F724875625F5032315C7372635C636870705C706C61
74666F726D5C70616C5F6170692E6300000000000001C9
@@ -848,7 +848,7 @@ F7A8FE6089FFF793FE42F654000059FFF7A0FE02200290
32BD13460A4601460248007810F469B000001453890055
47800065478000687B890060D09100354780002B488000
436870704C696E6B5461736B00000000633A5C77735C62
-6F645F3437373631313336315F3534373834345C637573
+6F645F3437373631323239305F3535373939305C637573
746FF19403D04A80006D6572735C676F6F676C655C5032
31466C61677461696C6D63755C64656C69766572795C53
656E736F724875625F5032315C7372635C636870705C70
@@ -914,7 +914,7 @@ BD38B504464FF0827000F0B5FC144DA86078B90FF27004
0023002240F293210FF2380001B0BDE83040FBF732BB31
BD0000D088890025643A256409474E5353207365727669
636520616C7265616479206F70656E0A00000000633A5C
-77735C626F645F3437373631313336315F353437383434
+77735C626F645F3437373631323239305F353537393930
5C637573746F6D6572735C676F6F676C655C503231466C
61677461696C6D63755C64656C69766572795C53656E73
6F724875625F5032315C7372635C636870705C73657276
@@ -965,7 +965,7 @@ B6F9286060B13421ADF80410821D01A900913B46811D20
0023002295210FF23000FBF7EFF836B90023002296210F
F22000FBF7E7F83620FEF78EF9286030B1811D2046FFF7
99FF36203060012070BD633A5C77735C626F645F343737
-3631313336315F3534373834345C637573746F6D657273
+3631323239305F3535373939305C637573746F6D657273
5C676F6F676C655C503231466C61677461696C6D63755C
64656C69766572795C53656E736F724875625F5032315C
7372635C636870705C636F6D6D6F6E5C676E73735F63F1
@@ -1020,7 +1020,7 @@ B02016BD6272636D476E73734F6E4D6561734461746100
0025643A2564095B25735D204D6561737572656D656E74
2064617461206576656E74203A206D6561737572656D65
6E745F636F756E74203D20282564290A000000633A5C77
-735C626F645F3437373631313336315F3534373834345C
+735C626F645F3437373631323239305F3535373939305C
637573746F6D6572735C676F6F676C655C503231466C61
677461696C6D63755C64656C69766572795C53656E736F
724875625F5032315C7372635C636870705C706C617466
@@ -1229,9 +1229,9 @@ A288F2804343226C9A4214D291FBF0F111FB00F1A980F1
8891FBF0F111FB00F008E0B08838B1A88070BD00291CBF
F088002800D0A08070BD0B480170704700000948007870
4700000848017070470000064800787047000001484161
-70470000787B8900045C080099CB91009ACB91002F2F64
+70470000787B8900A683080099CB91009ACB91002F2F64
65706F742F636C69656E742F636F72652F72656C2F476F
-6F676C652F5032322F3534353339302F2E2E2E0000007E
+6F676C652F5032322F3535343830332F2E2E2E0000007E
24247E5056542044756D70203A20474C4C207665722E20
256C7520666C61677461696C3A25730A000000007E2424
7E5056542044756D70203A2054203D20256C752C204E54
@@ -2433,54 +2433,54 @@ F80BF1010BBBF1040FE7DB6D1E6DB2002D13D4E4B214F8
D25738CFE77F1CFFB2072F93DB0322314607A022F423F6
002805D1F01C05F0E2FEDFF8481908607AE707B0BDE8F0
8F574E3A006946A6F4BFB4000068467AF4CDB500002DE9
-F0430D46C1B00446A868410911F0010114BFDFF814294F
-F0FF32A36893431040184304F59856A060A23609B9E889
-308000F00DFA002800F06F817DF4AEF5DCF4C2F1806818
-B94FF4CF7100F004FA288A40B17DF4A2F5DCF4B6F18168
-288A29F400F504E07DF499F5DCF4ADF18068708000F0ED
-F93188D1F4DAF400F0E8F97188D1F4DDF400F0E3F90268
-217AD2F8942001F001019047207A00F0810081280CBF01
-26002600F0D3F93146D0F4BAF700F0CEF90268A168D2F8
-A020890801F00101904700F0C4F90268A168D2F8A42049
-0801F00101904700F0BAF90268A168D2F8B020490A01F0
-0101904700F0B0F90268A168D2F8AC20C90801F0010190
-4700F0A6F90268A168D2F8B820890A01F00101904700F0
-9CF9A989CFF439F100F097F9A168CA09CB064CBF022300
-23CE034CBF10260026490302F001024CBF202100211A43
-324311430268D2F8F1940350D980009020904700F07EF9
-0268A168D2F8BC20090A01F00101904700F074F9A168DE
-F439F6A068800004D500F06CF90121D4F481F007A826F4
-C8F220680FF62409CBF4A7F5DEF431F606460020002159
-F821201043491C0729F9D3A16810EA010808BF4FF49018
-002759F8270018EA000F51D004F598503946A830A0F404
-F501461BA89FF434F715E08DF8000001A87AF4DEF49DF8
-0000512801DB562807DB684656F471F518B1694607A827
-F424F61BA89FF423F71BA89FF422F760BB1BA89FF420F7
-C1B202A890F422F60246394601A8A6F4CDF30246314668
-469FF4B6F401A876F4B9F402A87AF4B2F4684656F44BF5
-0028CED11BA89FF404F7C1B201A890F406F69FF400F79A
-F47AF3C11D0E2934BF3B300020B8E77F1C072FA5D30026
-03A829F465F2324607A911A826F490F211A91BA829F4B4
-F712E01BA901A829F4B5F73146684626F473F19DF80400
-9DF80010411A03A829F4D1F01BA829F4AEF71BA829F4AD
-F70028E7D0761C072ED7DB00F0C4F807A989F463F300F0
-C5F8D1F4C5F300F0C1F8FBF74FF800F0BDF8D1F49FF3A0
-6880010CD500F0B0F8D5F49CF4064600F0ABF846F00401
-0268D2F888209047A068400004D500F0A6F80121FAF731
-FCA068002804D500F09EF80121FAF72DFCA068010504D5
-DBF4EEF141F288311AE0C10404D5DBF4E7F14FF47A6113
-E0810404D5DBF4E0F140F6B8310CE0410404D5DBF4D9F1
-4FF4FA6105E0000405D5DBF4D2F14FF47A71DBF4EAF700
-F074F850B1A079297B00F0010001F00101884218BF4FF0
-010801D14FF0000800F064F848B1A079297B00F0040001
-F00401884218BF012700D1002700F056F850B1A079297B
-00F0020001F00201884218BF4FF0010901D14FF0000900
-F046F848B1A079297B00F0100001F01001884218BF0126
-00D10026A889E08000F030F828B100F02DF80268E18852
-6E9047B8F1000F03D000F02AF8CDF414F41FB100F025F8
-FBF7DFFBB9F1000F03D000F01EF8FBF7F6FB1EB100F019
-F8CDF42DF400F015F848B1DFF8FC542868012804DB00F0
-0DF82968FEF7E2F841B0BDE8F08300002068D5F4E7B300
+F0430D46C1B00446A86881064CBFDFF818194FF0FF31A2
+688A4308401043A06004F59856E889A23618B1B0F5C87F
+B8BF308000F00CFA002800F06F817DF4ADF5DCF4C1F180
+6818B94FF4CF7100F003FA288A40B17DF4A1F5DCF4B5F1
+8168288A29F4FFF404E07DF498F5DCF4ACF18068708000
+F0ECF93188D1F4D9F400F0E7F97188D1F4DCF400F0E2F9
+0268217AD2F8942001F001019047207A00F0810081280C
+BF0126002600F0D2F93146D0F4B9F700F0CDF90268A168
+D2F8A020890801F00101904700F0C3F90268A168D2F8A4
+20490801F00101904700F0B9F90268A168D2F8B020490A
+01F00101904700F0AFF90268A168D2F8AC20C90801F001
+01904700F0A5F90268A168D2F8B820890A01F001019047
+00F09BF9A989CFF438F100F096F9A168CA09CB064CBF02
+230023CE034CBF10260026490302F001024CBF20210021
+1A43324311430268F1940350D98000D2F89020904700F0
+7DF90268A168D2F8BC20090A01F00101904700F073F9A1
+68DEF438F6A068800004D500F06BF90121D4F480F007A8
+26F4C7F220680FF62009CBF4A6F5DEF430F60646002000
+2159F821201043491C0729F9D3A16810EA010808BF4FF4
+9018002759F8270018EA000F51D004F598503946A830A0
+F403F501461BA89FF433F715E08DF8000001A87AF4DDF4
+9DF80000512801DB562807DB684656F470F518B1694607
+A827F423F61BA89FF422F71BA89FF421F760BB1BA89FF4
+1FF7C1B202A890F421F60246394601A8A6F4CCF3024631
+4668469FF4B5F401A876F4B8F402A87AF4B1F4684656F4
+4AF50028CED11BA89FF403F7C1B201A890F405F69FF4FF
+F69AF479F3C11D0E2934BF3B300020B8E77F1C072FA5D3
+002603A829F464F2324607A911A826F48FF211A91BA829
+F4B3F712E01BA901A829F4B4F73146684626F472F19DF8
+04009DF80010411A03A829F4D0F01BA829F4ADF71BA829
+F4ACF70028E7D0761C072ED7DB00F0C3F807A989F462F3
+00F0C4F8D1F4C4F300F0C0F8FBF74EF800F0BCF8D1F49E
+F3A06880010CD500F0AFF8D5F49BF4064600F0AAF846F0
+04010268D2F888209047A068400004D500F0A5F80121FA
+F730FCA068002804D500F09DF80121FAF72CFCA0680105
+04D5DBF4EDF141F288311AE0C10404D5DBF4E6F14FF47A
+6113E0810404D5DBF4DFF140F6B8310CE0410404D5DBF4
+D8F14FF4FA6105E0000405D5DBF4D1F14FF47A71DBF4E9
+F700F073F850B1A079297B00F0010001F00101884218BF
+4FF0010801D14FF0000800F063F848B1A079297B00F004
+0001F00401884218BF012700D1002700F055F850B1A079
+297B00F0020001F00201884218BF4FF0010901D14FF000
+0900F045F848B1A079297B00F0100001F01001884218BF
+012600D10026A889E08000F02FF828B100F02CF80268E1
+88526E9047B8F1000F03D000F029F8CDF413F41FB100F0
+24F8FBF7DEFBB9F1000F03D000F01DF8FBF7F5FB1EB100
+F018F8CDF42CF400F014F848B1DFF8FC542868012804DB
+00F00CF82968FEF7E1F841B0BDE8F0832068D5F4E7B300
00ADF800002068CBF443B400000FF22C50F2F71EBD0268
0A60406848607047000038B5846842F02005AC43114021
4300F59852816022F8A23F049951800021BDE83440D5F4
diff --git a/manifest-gralloc3.xml b/manifest-gralloc3.xml
index 920307a3..852c76f0 100644
--- a/manifest-gralloc3.xml
+++ b/manifest-gralloc3.xml
@@ -142,7 +142,7 @@
vendor.google.whitechapel.audio.audioext
hwbinder
- 3.0
+ 4.0
IAudioExt
default
diff --git a/manifest.xml b/manifest.xml
index 347e8573..902aaa60 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -67,7 +67,7 @@
vendor.google.whitechapel.audio.audioext
hwbinder
- 3.0
+ 4.0
IAudioExt
default
diff --git a/media_codecs_bo_c2.xml b/media_codecs_bo_c2.xml
index 7830b9c9..b57a92aa 100644
--- a/media_codecs_bo_c2.xml
+++ b/media_codecs_bo_c2.xml
@@ -26,7 +26,8 @@
-
+
+
@@ -39,7 +40,8 @@
-
+
+
diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml
index fada0abc..08dfd5d1 100644
--- a/media_codecs_performance_c2.xml
+++ b/media_codecs_performance_c2.xml
@@ -231,7 +231,7 @@
-
+
diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp
index 83a46727..b94b4817 100644
--- a/pixelstats/service.cpp
+++ b/pixelstats/service.cpp
@@ -58,6 +58,7 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = {
},
.BlockStatsLength = BLOCK_STATS_LENGTH,
.AmsRatePath = "/sys/devices/platform/audiometrics/ams_rate_read_once",
+ .MitigationPath = "/sys/devices/virtual/pmic/mitigation",
.ThermalStatsPaths = {
"/sys/devices/platform/100a0000.BIG/trip_counter",
"/sys/devices/platform/100a0000.MID/trip_counter",
@@ -65,7 +66,11 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = {
"/sys/devices/platform/100b0000.G3D/trip_counter",
"/sys/devices/platform/100b0000.TPU/trip_counter",
"/sys/devices/platform/100b0000.AUR/trip_counter",
- }
+ },
+ .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"
};
const struct UeventListener::UeventPaths ueventPaths = {
diff --git a/powerstats/Gs201CommonDataProviders.cpp b/powerstats/Gs201CommonDataProviders.cpp
index 5b3bc2b6..a3249357 100644
--- a/powerstats/Gs201CommonDataProviders.cpp
+++ b/powerstats/Gs201CommonDataProviders.cpp
@@ -295,15 +295,6 @@ void addCPUclusters(std::shared_ptr p) {
p->addStateResidencyDataProvider(std::make_unique(
"/sys/devices/platform/acpm_stats/core_stats", cfgs));
- p->addStateResidencyDataProvider(std::make_unique(
- "CL0", "/sys/devices/system/cpu/cpufreq/policy0/stats"));
-
- p->addStateResidencyDataProvider(std::make_unique(
- "CL1", "/sys/devices/system/cpu/cpufreq/policy4/stats"));
-
- p->addStateResidencyDataProvider(std::make_unique(
- "CL2", "/sys/devices/system/cpu/cpufreq/policy6/stats"));
-
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
EnergyConsumerType::CPU_CLUSTER, "CPUCL0", {"S4M_VDD_CPUCL0"}));
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
@@ -318,7 +309,6 @@ void addGPU(std::shared_ptr p) {
// TODO (b/197721618): Measuring the GPU power numbers
stateCoeffs = {
- {"151000", 642},
{"202000", 890},
{"251000", 1102},
{"302000", 1308},
@@ -533,6 +523,18 @@ void addPowerDomains(std::shared_ptr p) {
}
void addDevfreq(std::shared_ptr p) {
+ p->addStateResidencyDataProvider(std::make_unique(
+ "CL0",
+ "/sys/devices/system/cpu/cpufreq/policy0/stats"));
+
+ p->addStateResidencyDataProvider(std::make_unique(
+ "CL1",
+ "/sys/devices/system/cpu/cpufreq/policy4/stats"));
+
+ p->addStateResidencyDataProvider(std::make_unique(
+ "CL2",
+ "/sys/devices/system/cpu/cpufreq/policy6/stats"));
+
p->addStateResidencyDataProvider(std::make_unique(
"MIF",
"/sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif"));
@@ -599,9 +601,10 @@ void addPixelStateResidencyDataProvider(std::shared_ptr p) {
p->addStateResidencyDataProvider(std::move(pixelSdp));
}
-void addCommonDataProviders(std::shared_ptr p) {
+void addGs201CommonDataProviders(std::shared_ptr p) {
setEnergyMeter(p);
+ addPixelStateResidencyDataProvider(p);
addAoC(p);
addDvfsStats(p);
addSoC(p);
@@ -610,41 +613,11 @@ void addCommonDataProviders(std::shared_ptr p) {
addMobileRadio(p);
addGNSS(p);
addPCIe(p);
+ addWifi(p);
addUfs(p);
addPowerDomains(p);
addDevfreq(p);
addTPU(p);
-
- // TODO (b/181070764) (b/182941084):
- // Remove this when Wifi/BT energy consumption models are available or revert before ship
- addPlaceholderEnergyConsumers(p);
-}
-
-void addGs201CommonDataProviders(std::shared_ptr p) {
- addCommonDataProviders(p);
- addPixelStateResidencyDataProvider(p);
- addWifi(p);
-}
-
-void addGs201CommonDataProvidersQc(std::shared_ptr p) {
- addCommonDataProviders(p);
- addWlan(p);
-}
-
-void addGs201CommonDataProvidersBig(std::shared_ptr p) {
- setEnergyMeter(p);
-
- addAoC(p);
- addDvfsStats(p);
- addSoC(p);
- addCPUclusters(p);
- addGPU(p);
- addUfs(p);
- addPowerDomains(p);
- addDevfreq(p);
- addTPU(p);
- addPixelStateResidencyDataProvider(p);
- addWifi(p);
}
void addNFC(std::shared_ptr p, const std::string& path) {
diff --git a/powerstats/include/Gs201CommonDataProviders.h b/powerstats/include/Gs201CommonDataProviders.h
index 3f66637a..5ee8108f 100644
--- a/powerstats/include/Gs201CommonDataProviders.h
+++ b/powerstats/include/Gs201CommonDataProviders.h
@@ -20,7 +20,20 @@
using aidl::android::hardware::power::stats::PowerStats;
+void addAoC(std::shared_ptr p);
+void addCPUclusters(std::shared_ptr p);
+void addDevfreq(std::shared_ptr p);
+void addDvfsStats(std::shared_ptr p);
+void addGNSS(std::shared_ptr p);
void addGs201CommonDataProviders(std::shared_ptr p);
-void addGs201CommonDataProvidersBig(std::shared_ptr p);
-void addGs201CommonDataProvidersQc(std::shared_ptr p);
+void addMobileRadio(std::shared_ptr p);
void addNFC(std::shared_ptr p, const std::string& path);
+void addPCIe(std::shared_ptr p);
+void addPixelStateResidencyDataProvider(std::shared_ptr p);
+void addPowerDomains(std::shared_ptr p);
+void addSoC(std::shared_ptr p);
+void addTPU(std::shared_ptr p);
+void addUfs(std::shared_ptr p);
+void addWifi(std::shared_ptr p);
+void addWlan(std::shared_ptr p);
+void setEnergyMeter(std::shared_ptr p);
diff --git a/radio/config/Pixel_Default.cfg b/radio/config/Pixel_Default.cfg
deleted file mode 100644
index b1a83fde..00000000
--- a/radio/config/Pixel_Default.cfg
+++ /dev/null
@@ -1 +0,0 @@
-Pixel_Default.nprf,Pixel_Default_metrics.xml
\ No newline at end of file
diff --git a/radio/config/Pixel_Default.nprf b/radio/config/Pixel_Default.nprf
deleted file mode 100644
index b21a27e8..00000000
Binary files a/radio/config/Pixel_Default.nprf and /dev/null differ
diff --git a/radio/config/Pixel_stability.nprf b/radio/config/Pixel_stability.nprf
index b8ab831f..c4c44e4a 100644
Binary files a/radio/config/Pixel_stability.nprf and b/radio/config/Pixel_stability.nprf differ
diff --git a/radio/config/default.nprf b/radio/config/default.nprf
index 09c48748..a59dd2df 100644
Binary files a/radio/config/default.nprf and b/radio/config/default.nprf differ
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc204-mnc04/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc204-mnc04/config.xml
new file mode 100644
index 00000000..2a6d2e5c
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc204-mnc04/config.xml
@@ -0,0 +1,28 @@
+
+
+
+
+ 0
+
+
+ 0
+
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc004/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc004/config.xml
new file mode 100644
index 00000000..3cc7253a
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc004/config.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ 0
+
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc590/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc590/config.xml
new file mode 100644
index 00000000..3cc7253a
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc590/config.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ 0
+
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc599/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc599/config.xml
new file mode 100644
index 00000000..3cc7253a
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc310-mnc599/config.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ 0
+
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc270/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc270/config.xml
new file mode 100644
index 00000000..3cc7253a
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc270/config.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ 0
+
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc280/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc280/config.xml
new file mode 100644
index 00000000..3cc7253a
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc280/config.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ 0
+
diff --git a/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc480/config.xml b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc480/config.xml
new file mode 100644
index 00000000..3cc7253a
--- /dev/null
+++ b/rro_overlays/ConnectivityOverlay/res/values-mcc311-mnc480/config.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ 0
+
diff --git a/rro_overlays/ConnectivityOverlay/res/values/config.xml b/rro_overlays/ConnectivityOverlay/res/values/config.xml
index d9a29b07..d9e9b583 100644
--- a/rro_overlays/ConnectivityOverlay/res/values/config.xml
+++ b/rro_overlays/ConnectivityOverlay/res/values/config.xml
@@ -23,4 +23,8 @@
0x80000000
+
+
+ 1
diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp
index d7227840..f25ee347 100644
--- a/usb/usb/Usb.cpp
+++ b/usb/usb/Usb.cpp
@@ -73,7 +73,7 @@ constexpr char kThermalZoneForTempReadPrimary[] = "usb_pwr_therm2";
constexpr char kThermalZoneForTempReadSecondary1[] = "usb_pwr_therm";
constexpr char kThermalZoneForTempReadSecondary2[] = "qi_therm";
constexpr char kPogoUsbActive[] = "/sys/devices/platform/google,pogo/pogo_usb_active";
-constexpr char kPogoEnableUsb[] = "/sys/devices/platform/google,pogo/enable_usb";
+constexpr char KPogoMoveDataToUsb[] = "/sys/devices/platform/google,pogo/move_data_to_usb";
constexpr char kPowerSupplyUsbType[] = "/sys/class/power_supply/usb/usb_type";
constexpr int kSamplingIntervalSec = 5;
void queryVersionHelper(android::hardware::usb::Usb *usb,
@@ -159,12 +159,12 @@ ScopedAStatus Usb::enableUsbDataWhileDocked(const string& in_portName,
ALOGI("Userspace enableUsbDataWhileDocked opID:%ld", in_transactionId);
int flags = O_RDONLY;
- ::android::base::unique_fd fd(TEMP_FAILURE_RETRY(open(kPogoEnableUsb, flags)));
+ ::android::base::unique_fd fd(TEMP_FAILURE_RETRY(open(KPogoMoveDataToUsb, flags)));
if (fd != -1) {
notSupported = false;
- success = WriteStringToFile("1", kPogoEnableUsb);
+ success = WriteStringToFile("1", KPogoMoveDataToUsb);
if (!success) {
- ALOGE("Write to enable_usb failed");
+ ALOGE("Write to move_data_to_usb failed");
}
}
diff --git a/usb/usb/android.hardware.usb-service.rc b/usb/usb/android.hardware.usb-service.rc
index f06b46b7..3ee952aa 100644
--- a/usb/usb/android.hardware.usb-service.rc
+++ b/usb/usb/android.hardware.usb-service.rc
@@ -8,30 +8,42 @@ on post-fs
chown root system /sys/class/typec/port0/power_role
chown root system /sys/class/typec/port0/data_role
chown root system /sys/class/typec/port0/port_type
+ chown root system /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/contaminant_detection
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/contaminant_detection
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/contaminant_detection
+ chown root system /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/usb_limit_accessory_current
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_accessory_current
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_accessory_current
+ chown root system /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/usb_limit_accessory_enable
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_accessory_enable
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_accessory_enable
+ chown root system /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/usb_limit_sink_current
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_sink_current
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_sink_current
+ chown root system /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/usb_limit_sink_enable
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_sink_enable
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_sink_enable
+ chown root system /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/usb_limit_source_enable
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_source_enable
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_source_enable
chmod 664 /sys/class/typec/port0/power_role
chmod 664 /sys/class/typec/port0/data_role
chmod 664 /sys/class/typec/port0/port_type
+ chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/contaminant_detection
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/contaminant_detection
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/contaminant_detection
+ chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/usb_limit_accessory_current
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_accessory_current
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_accessory_current
+ chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/usb_limit_accessory_enable
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_accessory_enable
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_accessory_enable
+ chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/usb_limit_sink_current
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_sink_current
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_sink_current
+ chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/usb_limit_sink_enable
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_sink_enable
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_sink_enable
+ chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/usb_limit_source_enable
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/usb_limit_source_enable
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/usb_limit_source_enable