Merge Android 24Q2 Release (ab/11526283) to aosp-main-future
Bug: 337098550 Merged-In: I065f8e844d13d1d6d36c36ef689ff6c34b3e3fa6 Change-Id: I3e04f83e98e907febe6820c0a1f5abd18a3bd91a
This commit is contained in:
commit
64fedf02c7
27 changed files with 345 additions and 440 deletions
|
@ -190,6 +190,7 @@ BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||||
# Video Codec
|
# Video Codec
|
||||||
########################
|
########################
|
||||||
# 1. Exynos C2
|
# 1. Exynos C2
|
||||||
|
BOARD_USE_CODEC2_HIDL_1_2 := true
|
||||||
BOARD_USE_CSC_FILTER := false
|
BOARD_USE_CSC_FILTER := false
|
||||||
BOARD_USE_DEC_SW_CSC := true
|
BOARD_USE_DEC_SW_CSC := true
|
||||||
BOARD_USE_ENC_SW_CSC := true
|
BOARD_USE_ENC_SW_CSC := true
|
||||||
|
@ -380,6 +381,9 @@ BOARD_BUILD_VENDOR_RAMDISK_IMAGE := true
|
||||||
KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)
|
KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)
|
||||||
KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko)
|
KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko)
|
||||||
|
|
||||||
|
ifneq ($(wildcard $(KERNEL_MODULE_DIR)/system_dlkm.modules.blocklist),)
|
||||||
|
BOARD_SYSTEM_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/system_dlkm.modules.blocklist
|
||||||
|
endif
|
||||||
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist
|
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist
|
||||||
|
|
||||||
# Prebuilt kernel modules that are *not* listed in vendor_kernel_boot.modules.load
|
# Prebuilt kernel modules that are *not* listed in vendor_kernel_boot.modules.load
|
||||||
|
@ -411,6 +415,9 @@ else
|
||||||
BOARD_VENDOR_KERNEL_MODULES := $(KERNEL_MODULES)
|
BOARD_VENDOR_KERNEL_MODULES := $(KERNEL_MODULES)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
BOARD_SYSTEM_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/system_dlkm.modules.load))
|
||||||
|
BOARD_SYSTEM_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_SYSTEM_KERNEL_MODULES_LOAD)))
|
||||||
|
|
||||||
# Using BUILD_COPY_HEADERS
|
# Using BUILD_COPY_HEADERS
|
||||||
BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true
|
BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true
|
||||||
|
|
||||||
|
|
|
@ -20,12 +20,8 @@ on init
|
||||||
write /proc/vendor_sched/teo_util_threshold "1024 1024 1024"
|
write /proc/vendor_sched/teo_util_threshold "1024 1024 1024"
|
||||||
|
|
||||||
# Boot time fs tuning
|
# Boot time fs tuning
|
||||||
write /sys/block/sda/queue/iostats 0
|
|
||||||
write /sys/block/sda/queue/scheduler bfq
|
write /sys/block/sda/queue/scheduler bfq
|
||||||
write /sys/block/sda/queue/iosched/slice_idle 0
|
write /sys/block/sda/queue/iosched/slice_idle 0
|
||||||
write /sys/block/sda/queue/nr_requests 256
|
|
||||||
write /dev/sys/fs/by-name/userdata/data_io_flag 56
|
|
||||||
write /dev/sys/fs/by-name/userdata/node_io_flag 56
|
|
||||||
|
|
||||||
chown system system /proc/vendor_sched/groups/bg/set_task_group
|
chown system system /proc/vendor_sched/groups/bg/set_task_group
|
||||||
chown system system /proc/vendor_sched/groups/cam/set_task_group
|
chown system system /proc/vendor_sched/groups/cam/set_task_group
|
||||||
|
@ -105,15 +101,6 @@ on init
|
||||||
chmod 0220 /proc/vendor_sched/pmu_poll_enable
|
chmod 0220 /proc/vendor_sched/pmu_poll_enable
|
||||||
chmod 0220 /proc/vendor_sched/pmu_poll_time
|
chmod 0220 /proc/vendor_sched/pmu_poll_time
|
||||||
|
|
||||||
wait /dev/block/platform/${ro.boot.boot_devices}
|
|
||||||
symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice
|
|
||||||
|
|
||||||
# to access UFS/eMMC sysfs directly
|
|
||||||
symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice
|
|
||||||
|
|
||||||
# Disable UFS powersaving
|
|
||||||
write /dev/sys/block/bootdevice/clkgate_enable 0
|
|
||||||
|
|
||||||
start vendor.keymaster-4-0
|
start vendor.keymaster-4-0
|
||||||
|
|
||||||
# ZRAM setup
|
# ZRAM setup
|
||||||
|
@ -238,12 +225,7 @@ on init
|
||||||
chown system system /dev/maxfg_history
|
chown system system /dev/maxfg_history
|
||||||
|
|
||||||
# Dump eeprom
|
# Dump eeprom
|
||||||
chown system system /sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom
|
chown system system /sys/devices/platform/10da0000.hsi2c/i2c-15/15-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
|
|
||||||
chown system system /sys/devices/platform/10da0000.hsi2c/i2c-9/9-0050/eeprom
|
|
||||||
|
|
||||||
# Loading common kernel modules in background
|
# Loading common kernel modules in background
|
||||||
start init_display
|
start init_display
|
||||||
|
@ -288,6 +270,7 @@ on init
|
||||||
|
|
||||||
# BatteryHealthData
|
# BatteryHealthData
|
||||||
chown system system /sys/class/power_supply/battery/first_usage_date
|
chown system system /sys/class/power_supply/battery/first_usage_date
|
||||||
|
chown system system /sys/devices/platform/google,battery/power_supply/battery/swelling_data
|
||||||
|
|
||||||
# Battery Defender
|
# Battery Defender
|
||||||
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt
|
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt
|
||||||
|
@ -310,6 +293,7 @@ on init
|
||||||
chown system system /sys/devices/platform/google,charger/bd_trigger_time
|
chown system system /sys/devices/platform/google,charger/bd_trigger_time
|
||||||
chown system system /sys/devices/platform/google,charger/bd_trigger_voltage
|
chown system system /sys/devices/platform/google,charger/bd_trigger_voltage
|
||||||
chown system system /sys/devices/platform/google,charger/bd_clear
|
chown system system /sys/devices/platform/google,charger/bd_clear
|
||||||
|
chown system system /sys/devices/platform/google,charger/bd_state
|
||||||
chown system system /sys/devices/platform/google,charger/charge_start_level
|
chown system system /sys/devices/platform/google,charger/charge_start_level
|
||||||
chown system system /sys/devices/platform/google,charger/charge_stop_level
|
chown system system /sys/devices/platform/google,charger/charge_stop_level
|
||||||
chown system system /sys/devices/platform/google,cpm/dc_ctl
|
chown system system /sys/devices/platform/google,cpm/dc_ctl
|
||||||
|
@ -461,15 +445,6 @@ on early-boot
|
||||||
# Wait for insmod_sh to finish all common modules
|
# Wait for insmod_sh to finish all common modules
|
||||||
wait_for_prop vendor.common.modules.ready 1
|
wait_for_prop vendor.common.modules.ready 1
|
||||||
|
|
||||||
# Permission for Health Storage HAL
|
|
||||||
chown system system /dev/sys/block/bootdevice/manual_gc
|
|
||||||
|
|
||||||
# Permission for Pixelstats
|
|
||||||
chown system system /dev/sys/block/bootdevice/slowio_read_cnt
|
|
||||||
chown system system /dev/sys/block/bootdevice/slowio_write_cnt
|
|
||||||
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
|
# 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/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_down_irqs
|
||||||
|
@ -507,6 +482,7 @@ on early-boot
|
||||||
chown system system /dev/logbuffer_cpm
|
chown system system /dev/logbuffer_cpm
|
||||||
chown system system /dev/logbuffer_bd
|
chown system system /dev/logbuffer_bd
|
||||||
chown system system /dev/logbuffer_dual_batt
|
chown system system /dev/logbuffer_dual_batt
|
||||||
|
chown system system /dev/logbuffer_cpif
|
||||||
|
|
||||||
on boot
|
on boot
|
||||||
|
|
||||||
|
@ -590,6 +566,7 @@ on fs
|
||||||
chown system system /sys/class/backlight/panel0-backlight/dimming_on
|
chown system system /sys/class/backlight/panel0-backlight/dimming_on
|
||||||
chown system system /sys/class/backlight/panel0-backlight/hbm_mode
|
chown system system /sys/class/backlight/panel0-backlight/hbm_mode
|
||||||
chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode
|
chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode
|
||||||
|
chown system system /sys/class/backlight/panel0-backlight/allow_wakeup_by_state_change
|
||||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma
|
chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma
|
||||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh
|
chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh
|
||||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms
|
chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms
|
||||||
|
@ -687,21 +664,6 @@ on property:init.svc.vendor.charger=running
|
||||||
write /sys/devices/system/cpu/cpu7/online 0
|
write /sys/devices/system/cpu/cpu7/online 0
|
||||||
|
|
||||||
on property:sys.boot_completed=1
|
on property:sys.boot_completed=1
|
||||||
|
|
||||||
# Runtime fs tuning
|
|
||||||
write /sys/block/sda/queue/nr_requests 128
|
|
||||||
write /sys/block/sda/queue/iostats 1
|
|
||||||
write /sys/block/sda/queue/iosched/slice_idle 0
|
|
||||||
write /dev/sys/fs/by-name/userdata/data_io_flag 8
|
|
||||||
write /dev/sys/fs/by-name/userdata/node_io_flag 8
|
|
||||||
|
|
||||||
# Permission for Pixelstats
|
|
||||||
chown system system /dev/sys/fs/by-name/userdata/compr_written_block
|
|
||||||
chown system system /dev/sys/fs/by-name/userdata/compr_saved_block
|
|
||||||
chown system system /dev/sys/fs/by-name/userdata/compr_new_inode
|
|
||||||
chown system system /dev/sys/fs/by-name/userdata/gc_segment_mode
|
|
||||||
chown system system /dev/sys/fs/by-name/userdata/gc_reclaimed_segments
|
|
||||||
|
|
||||||
# Enable ZRAM on boot_complete
|
# Enable ZRAM on boot_complete
|
||||||
swapon_all /vendor/etc/fstab.${ro.board.platform}
|
swapon_all /vendor/etc/fstab.${ro.board.platform}
|
||||||
write /proc/sys/vm/swappiness 60
|
write /proc/sys/vm/swappiness 60
|
||||||
|
@ -713,9 +675,6 @@ on property:sys.boot_completed=1
|
||||||
write /proc/sys/vm/dirty_expire_centisecs 3000
|
write /proc/sys/vm/dirty_expire_centisecs 3000
|
||||||
write /proc/sys/vm/dirty_background_ratio 10
|
write /proc/sys/vm/dirty_background_ratio 10
|
||||||
|
|
||||||
# Enable UFS powersaving
|
|
||||||
write /dev/sys/block/bootdevice/clkgate_enable 1
|
|
||||||
|
|
||||||
# Reset DDR frequency
|
# Reset DDR frequency
|
||||||
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
|
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
|
||||||
write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
|
write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
|
||||||
|
@ -769,11 +728,11 @@ on property:sys.boot_completed=1
|
||||||
write /proc/vendor_sched/pmu_poll_enable 0
|
write /proc/vendor_sched/pmu_poll_enable 0
|
||||||
|
|
||||||
# Make devices on the critical path for suspend/resume asynchronous
|
# Make devices on the critical path for suspend/resume asynchronous
|
||||||
write /sys/devices/platform/acpm_mfd_bus@18110000/i2c-8/i2c-s2mpg13mfd/power/async "enabled"
|
write /sys/devices/platform/acpm_mfd_bus@18110000/i2c-21/21-002f/power/async "enabled"
|
||||||
write /sys/devices/platform/acpm_mfd_bus@18110000/i2c-8/power/async "enabled"
|
write /sys/devices/platform/acpm_mfd_bus@18110000/i2c-21/power/async "enabled"
|
||||||
write /sys/devices/platform/acpm_mfd_bus@18110000/power/async "enabled"
|
write /sys/devices/platform/acpm_mfd_bus@18110000/power/async "enabled"
|
||||||
write /sys/devices/platform/acpm_mfd_bus@18100000/i2c-7/i2c-s2mpg12mfd/power/async "enabled"
|
write /sys/devices/platform/acpm_mfd_bus@18100000/i2c-20/20-001f/power/async "enabled"
|
||||||
write /sys/devices/platform/acpm_mfd_bus@18100000/i2c-7/power/async "enabled"
|
write /sys/devices/platform/acpm_mfd_bus@18100000/i2c-20/power/async "enabled"
|
||||||
write /sys/devices/platform/acpm_mfd_bus@18100000/power/async "enabled"
|
write /sys/devices/platform/acpm_mfd_bus@18100000/power/async "enabled"
|
||||||
write /sys/devices/platform/dbgdev-pd-hsi0/power/async "enabled"
|
write /sys/devices/platform/dbgdev-pd-hsi0/power/async "enabled"
|
||||||
write /sys/devices/platform/fixedregulator@0/regulator/regulator.2/power/async "enabled"
|
write /sys/devices/platform/fixedregulator@0/regulator/regulator.2/power/async "enabled"
|
||||||
|
@ -924,6 +883,7 @@ on post-fs-data
|
||||||
chown bluetooth system /proc/bluetooth/sleep/btwake
|
chown bluetooth system /proc/bluetooth/sleep/btwake
|
||||||
chown bluetooth system /proc/bluetooth/sleep/lpm
|
chown bluetooth system /proc/bluetooth/sleep/lpm
|
||||||
chown bluetooth system /proc/bluetooth/sleep/btwrite
|
chown bluetooth system /proc/bluetooth/sleep/btwrite
|
||||||
|
mkdir /data/vendor/bluetooth 0770 bluetooth system
|
||||||
|
|
||||||
on post-fs-data
|
on post-fs-data
|
||||||
mkdir /data/vendor/powerstats 0771 system system
|
mkdir /data/vendor/powerstats 0771 system system
|
||||||
|
@ -937,9 +897,9 @@ on property:vendor.brownout.mitigation.ready=1
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0x80041c3 #DFS
|
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0x80041c3 #DFS
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu1_heavy_clk_ratio 0xfff041c0 #DFS
|
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu1_heavy_clk_ratio 0xfff041c0 #DFS
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_heavy_clk_ratio 0xfff041c0 #DFS
|
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_heavy_clk_ratio 0xfff041c0 #DFS
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_light_clk_ratio 0x80041c3 #DFS
|
write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_light_clk_ratio 0xfff041c1 #DFS
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_light_clk_ratio 0xfff041c3 #OCP
|
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_light_clk_ratio 0xfff041c3 #OCP
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04381 #OCP
|
write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04385 #OCP
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c1 #OCP
|
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c1 #OCP
|
||||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/uvlo1_lvl 3200
|
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/uvlo1_lvl 3200
|
||||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/smpl_lvl 3100
|
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/smpl_lvl 3100
|
||||||
|
@ -1025,16 +985,6 @@ on charger
|
||||||
mkdir /dev/thermal/cdev-by-name 0750 system system
|
mkdir /dev/thermal/cdev-by-name 0750 system system
|
||||||
start vendor.thermal.symlinks
|
start vendor.thermal.symlinks
|
||||||
|
|
||||||
# Runtime fs tuning
|
|
||||||
write /sys/block/sda/queue/nr_requests 128
|
|
||||||
write /sys/block/sda/queue/iostats 1
|
|
||||||
write /sys/block/sda/queue/iosched/slice_idle 0
|
|
||||||
write /dev/sys/fs/by-name/userdata/data_io_flag 8
|
|
||||||
write /dev/sys/fs/by-name/userdata/node_io_flag 8
|
|
||||||
|
|
||||||
# Enable UFS powersaving
|
|
||||||
write /dev/sys/block/bootdevice/clkgate_enable 1
|
|
||||||
|
|
||||||
# Cancel boot devfreq and uclamp
|
# Cancel boot devfreq and uclamp
|
||||||
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
|
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
|
||||||
write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
|
write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
|
||||||
|
@ -1075,10 +1025,7 @@ on property:persist.vendor.softmaxfreq.cl1=*
|
||||||
on property:persist.vendor.softmaxfreq.cl2=*
|
on property:persist.vendor.softmaxfreq.cl2=*
|
||||||
write /sys/devices/platform/exynos-acme/freq_qos_max "6 ${persist.vendor.softmaxfreq.cl2}"
|
write /sys/devices/platform/exynos-acme/freq_qos_max "6 ${persist.vendor.softmaxfreq.cl2}"
|
||||||
|
|
||||||
# UFS
|
|
||||||
on property:ro.boot.mode=charger && property:init.svc.vendor.charger=running
|
on property:ro.boot.mode=charger && property:init.svc.vendor.charger=running
|
||||||
# Enable UFS powersaving in Off Mode Charger
|
|
||||||
write /dev/sys/block/bootdevice/clkgate_enable 1
|
|
||||||
# Disable dock-defend in Off Mode Charger
|
# Disable dock-defend in Off Mode Charger
|
||||||
write /sys/devices/platform/google,charger/dd_state -1
|
write /sys/devices/platform/google,charger/dd_state -1
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,6 @@
|
||||||
/dev/video55 0666 system graphics
|
/dev/video55 0666 system graphics
|
||||||
/dev/g2d 0660 system graphics
|
/dev/g2d 0660 system graphics
|
||||||
/dev/fimg2d 0666 system graphics
|
/dev/fimg2d 0666 system graphics
|
||||||
/dev/i2c-2 0660 system system
|
|
||||||
/dev/HPD 0660 system system
|
/dev/HPD 0660 system system
|
||||||
|
|
||||||
# wfd
|
# wfd
|
||||||
|
|
|
@ -45,6 +45,8 @@
|
||||||
package="com.google.android.apps.camera.services">
|
package="com.google.android.apps.camera.services">
|
||||||
<!-- Camera -->
|
<!-- Camera -->
|
||||||
<permission name="android.permission.CAMERA" fixed="false"/>
|
<permission name="android.permission.CAMERA" fixed="false"/>
|
||||||
|
<!-- Camera Connectivity -->
|
||||||
|
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
|
||||||
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||||
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
|
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
|
||||||
<permission name="android.permission.BLUETOOTH_SCAN" fixed="false"/>
|
<permission name="android.permission.BLUETOOTH_SCAN" fixed="false"/>
|
||||||
|
|
66
device.mk
66
device.mk
|
@ -37,6 +37,10 @@ include device/google/gs-common/sota_app/factoryota.mk
|
||||||
include device/google/gs-common/misc_writer/misc_writer.mk
|
include device/google/gs-common/misc_writer/misc_writer.mk
|
||||||
include device/google/gs-common/gyotaku_app/gyotaku.mk
|
include device/google/gs-common/gyotaku_app/gyotaku.mk
|
||||||
include device/google/gs-common/bootctrl/bootctrl_aidl.mk
|
include device/google/gs-common/bootctrl/bootctrl_aidl.mk
|
||||||
|
include device/google/gs-common/betterbug/betterbug.mk
|
||||||
|
ifneq ($(filter cheetah felix panther, $(TARGET_PRODUCT)),)
|
||||||
|
include device/google/gs-common/bcmbt/dump/dumplog.mk
|
||||||
|
endif
|
||||||
|
|
||||||
TARGET_BOARD_PLATFORM := gs201
|
TARGET_BOARD_PLATFORM := gs201
|
||||||
|
|
||||||
|
@ -68,7 +72,7 @@ PRODUCT_SOONG_NAMESPACES += \
|
||||||
hardware/google/pixel \
|
hardware/google/pixel \
|
||||||
device/google/gs201 \
|
device/google/gs201 \
|
||||||
device/google/gs201/powerstats \
|
device/google/gs201/powerstats \
|
||||||
system/chre/host/hal_generic \
|
vendor/google_devices/common/chre/host/hal \
|
||||||
vendor/google/whitechapel/tools \
|
vendor/google/whitechapel/tools \
|
||||||
vendor/google/interfaces \
|
vendor/google/interfaces \
|
||||||
vendor/google_devices/common/proprietary/confirmatioui_hal \
|
vendor/google_devices/common/proprietary/confirmatioui_hal \
|
||||||
|
@ -281,8 +285,7 @@ PRODUCT_VENDOR_PROPERTIES += \
|
||||||
|
|
||||||
PRODUCT_VENDOR_PROPERTIES += \
|
PRODUCT_VENDOR_PROPERTIES += \
|
||||||
ro.opengles.version=196610 \
|
ro.opengles.version=196610 \
|
||||||
graphics.gpu.profiler.support=true \
|
graphics.gpu.profiler.support=true
|
||||||
debug.renderengine.backend=skiaglthreaded
|
|
||||||
|
|
||||||
# b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache
|
# b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache
|
||||||
PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1
|
PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1
|
||||||
|
@ -367,25 +370,21 @@ PRODUCT_HOST_PACKAGES += \
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
messaging
|
messaging
|
||||||
|
|
||||||
# Contexthub HAL
|
# CHRE
|
||||||
PRODUCT_PACKAGES += \
|
## tools
|
||||||
android.hardware.contexthub-service.generic
|
|
||||||
|
|
||||||
# CHRE tools
|
|
||||||
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
|
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
chre_power_test_client \
|
chre_power_test_client \
|
||||||
chre_test_client
|
chre_test_client \
|
||||||
|
chre_aidl_hal_client
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
## HAL
|
||||||
|
include device/google/gs-common/chre/hal.mk
|
||||||
PRODUCT_COPY_FILES += \
|
PRODUCT_COPY_FILES += \
|
||||||
frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml
|
frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml
|
||||||
|
|
||||||
## Enable the CHRE Daemon
|
|
||||||
CHRE_USF_DAEMON_ENABLED := true
|
|
||||||
CHRE_DEDICATED_TRANSPORT_CHANNEL_ENABLED := true
|
CHRE_DEDICATED_TRANSPORT_CHANNEL_ENABLED := true
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
chre \
|
|
||||||
preloaded_nanoapps.json
|
preloaded_nanoapps.json
|
||||||
|
|
||||||
# Filesystem management tools
|
# Filesystem management tools
|
||||||
|
@ -518,7 +517,7 @@ PRODUCT_PACKAGES += \
|
||||||
|
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
android.hardware.graphics.mapper@4.0-impl \
|
android.hardware.graphics.mapper@4.0-impl \
|
||||||
android.hardware.graphics.allocator-V2-service
|
android.hardware.graphics.allocator-V1-service
|
||||||
|
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
android.hardware.memtrack-service.pixel \
|
android.hardware.memtrack-service.pixel \
|
||||||
|
@ -704,10 +703,8 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_color_management=tr
|
||||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true
|
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true
|
||||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50
|
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50
|
||||||
|
|
||||||
# force to blend in P3 mode
|
|
||||||
PRODUCT_PROPERTY_OVERRIDES += \
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
persist.sys.sf.native_mode=2 \
|
persist.sys.sf.native_mode=2
|
||||||
persist.sys.sf.color_mode=9
|
|
||||||
PRODUCT_COPY_FILES += \
|
PRODUCT_COPY_FILES += \
|
||||||
device/google/gs201/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb
|
device/google/gs201/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb
|
||||||
|
|
||||||
|
@ -750,30 +747,14 @@ endif
|
||||||
$(call soong_config_set,bigo,soc,gs201)
|
$(call soong_config_set,bigo,soc,gs201)
|
||||||
|
|
||||||
# 1. Codec 2.0
|
# 1. Codec 2.0
|
||||||
# exynos service
|
# for settings used by different C2 hal
|
||||||
PRODUCT_SOONG_NAMESPACES += vendor/samsung_slsi/codec2
|
include device/google/gs-common/mediacodec/common/mediacodec_common.mk
|
||||||
|
# for Exynos C2 Hal
|
||||||
|
include device/google/gs-common/mediacodec/samsung/mediacodec_samsung.mk
|
||||||
|
|
||||||
PRODUCT_COPY_FILES += \
|
PRODUCT_COPY_FILES += \
|
||||||
device/google/gs201/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
|
device/google/gs201/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
|
||||||
|
|
||||||
PRODUCT_PACKAGES += \
|
|
||||||
samsung.hardware.media.c2@1.0-service \
|
|
||||||
codec2.vendor.base.policy \
|
|
||||||
codec2.vendor.ext.policy \
|
|
||||||
libExynosC2ComponentStore \
|
|
||||||
libExynosC2H264Dec \
|
|
||||||
libExynosC2H264Enc \
|
|
||||||
libExynosC2HevcDec \
|
|
||||||
libExynosC2HevcEnc \
|
|
||||||
libExynosC2Mpeg4Dec \
|
|
||||||
libExynosC2Mpeg4Enc \
|
|
||||||
libExynosC2H263Dec \
|
|
||||||
libExynosC2H263Enc \
|
|
||||||
libExynosC2Vp8Dec \
|
|
||||||
libExynosC2Vp8Enc \
|
|
||||||
libExynosC2Vp9Dec \
|
|
||||||
libExynosC2Vp9Enc
|
|
||||||
|
|
||||||
PRODUCT_PROPERTY_OVERRIDES += \
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
debug.stagefright.c2-poolmask=458752 \
|
debug.stagefright.c2-poolmask=458752 \
|
||||||
debug.c2.use_dmabufheaps=1 \
|
debug.c2.use_dmabufheaps=1 \
|
||||||
|
@ -1082,6 +1063,14 @@ PRODUCT_PROPERTY_OVERRIDES += persist.vendor.enable.thermal.genl=true
|
||||||
include device/google/gs-common/edgetpu/edgetpu.mk
|
include device/google/gs-common/edgetpu/edgetpu.mk
|
||||||
# Config variables for TPU chip on device.
|
# Config variables for TPU chip on device.
|
||||||
$(call soong_config_set,edgetpu_config,chip,janeiro)
|
$(call soong_config_set,edgetpu_config,chip,janeiro)
|
||||||
|
# Include the edgetpu targets defined the namespaces below into the final image.
|
||||||
|
PRODUCT_SOONG_NAMESPACES += \
|
||||||
|
vendor/google_devices/gs201/proprietary/gchips/tpu/metrics \
|
||||||
|
vendor/google_devices/gs201/proprietary/gchips/tpu/tflite_delegate \
|
||||||
|
vendor/google_devices/gs201/proprietary/gchips/tpu/darwinn_logging_service \
|
||||||
|
vendor/google_devices/gs201/proprietary/gchips/tpu/nnapi_stable_aidl \
|
||||||
|
vendor/google_devices/gs201/proprietary/gchips/tpu/aidl \
|
||||||
|
vendor/google_devices/gs201/proprietary/gchips/tpu/hal
|
||||||
# TPU firmware
|
# TPU firmware
|
||||||
PRODUCT_PACKAGES += edgetpu-janeiro.fw
|
PRODUCT_PACKAGES += edgetpu-janeiro.fw
|
||||||
|
|
||||||
|
@ -1168,3 +1157,6 @@ include hardware/google/pixel/HardwareInfo/HardwareInfo.mk
|
||||||
|
|
||||||
# UFS: the script is used to select the corresponding firmware to run FFU.
|
# UFS: the script is used to select the corresponding firmware to run FFU.
|
||||||
PRODUCT_PACKAGES += ufs_firmware_update.sh
|
PRODUCT_PACKAGES += ufs_firmware_update.sh
|
||||||
|
|
||||||
|
# Touch service
|
||||||
|
include device/google/gs-common/touch/twoshay/aidl_gs101.mk
|
||||||
|
|
|
@ -84,14 +84,6 @@
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
</interface>
|
</interface>
|
||||||
</hal>
|
</hal>
|
||||||
<hal format="aidl" optional="true">
|
|
||||||
<name>com.google.input</name>
|
|
||||||
<version>2</version>
|
|
||||||
<interface>
|
|
||||||
<name>ITouchContextService</name>
|
|
||||||
<instance>default</instance>
|
|
||||||
</interface>
|
|
||||||
</hal>
|
|
||||||
<hal format="aidl" optional="true">
|
<hal format="aidl" optional="true">
|
||||||
<name>hardware.qorvo.uwb</name>
|
<name>hardware.qorvo.uwb</name>
|
||||||
<version>2</version>
|
<version>2</version>
|
||||||
|
@ -142,13 +134,6 @@
|
||||||
<instance>sced0</instance>
|
<instance>sced0</instance>
|
||||||
</interface>
|
</interface>
|
||||||
</hal>
|
</hal>
|
||||||
<hal format="aidl" optional="true">
|
|
||||||
<name>com.google.pixel.modem.logmasklibrary</name>
|
|
||||||
<interface>
|
|
||||||
<name>ILiboemserviceProxy</name>
|
|
||||||
<instance>default</instance>
|
|
||||||
</interface>
|
|
||||||
</hal>
|
|
||||||
<hal format="hidl" optional="true">
|
<hal format="hidl" optional="true">
|
||||||
<name>vendor.samsung_slsi.telephony.hardware.radioExternal</name>
|
<name>vendor.samsung_slsi.telephony.hardware.radioExternal</name>
|
||||||
<version>1.1</version>
|
<version>1.1</version>
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#!/vendor/bin/sh
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
for f in /sys/devices/platform/10d60000.hsi2c/i2c-*/i2c-max77759tcpc; do
|
max77759tcpc_path=/sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025
|
||||||
if [ -d $f ]; then
|
if [ -d $max77759tcpc_path ]; then
|
||||||
echo 0 > $f/contaminant_detection;
|
echo 0 > $max77759tcpc_path/contaminant_detection;
|
||||||
fi
|
fi
|
||||||
done
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "\n------ Power supply property tcpm ------"
|
echo "\n------ Power supply property tcpm ------"
|
||||||
cat "/sys/class/power_supply/tcpm-source-psy-8-0025/uevent"
|
cat /sys/class/power_supply/tcpm-source-psy-*/uevent
|
||||||
echo "\n------ Power supply property usb ------"
|
echo "\n------ Power supply property usb ------"
|
||||||
cat "/sys/class/power_supply/usb/uevent"
|
cat "/sys/class/power_supply/usb/uevent"
|
||||||
echo "\n------ Power supply property wireless ------"
|
echo "\n------ Power supply property wireless ------"
|
||||||
|
@ -100,23 +100,21 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "\n------ TCPC ------"
|
echo "\n------ TCPC ------"
|
||||||
for f in /sys/devices/platform/10d60000.hsi2c/i2c-*/i2c-max77759tcpc
|
max77759tcpc_path="/sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025"
|
||||||
do
|
echo "registers:"
|
||||||
echo "registers:"
|
cat $max77759tcpc_path/registers
|
||||||
cat $f/registers
|
echo "frs:"
|
||||||
echo "frs:"
|
cat $max77759tcpc_path/frs
|
||||||
cat $f/frs
|
echo "auto_discharge:"
|
||||||
echo "auto_discharge:"
|
cat $max77759tcpc_path/auto_discharge
|
||||||
cat $f/auto_discharge
|
echo "bc12_enabled:"
|
||||||
echo "bc12_enabled:"
|
cat $max77759tcpc_path/bc12_enabled
|
||||||
cat $f/bc12_enabled
|
echo "cc_toggle_enable:"
|
||||||
echo "cc_toggle_enable:"
|
cat $max77759tcpc_path/cc_toggle_enable
|
||||||
cat $f/cc_toggle_enable
|
echo "contaminant_detection:"
|
||||||
echo "contaminant_detection:"
|
cat $max77759tcpc_path/contaminant_detection
|
||||||
cat $f/contaminant_detection
|
echo "contaminant_detection_status:"
|
||||||
echo "contaminant_detection_status:"
|
cat $max77759tcpc_path/contaminant_detection_status
|
||||||
cat $f/contaminant_detection_status
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "\n------ PD Engine ------"
|
echo "\n------ PD Engine ------"
|
||||||
cat "/dev/logbuffer_usbpd"
|
cat "/dev/logbuffer_usbpd"
|
||||||
|
@ -129,6 +127,8 @@ cat "/dev/logbuffer_pca9468"
|
||||||
|
|
||||||
echo "\n------ Battery Health ------"
|
echo "\n------ Battery Health ------"
|
||||||
cat "/sys/class/power_supply/battery/health_index_stats"
|
cat "/sys/class/power_supply/battery/health_index_stats"
|
||||||
|
echo "\n------ Battery Health SoC Residency ------"
|
||||||
|
cat "/sys/class/power_supply/battery/swelling_data"
|
||||||
echo "\n------ BMS ------"
|
echo "\n------ BMS ------"
|
||||||
cat "/dev/logbuffer_ssoc"
|
cat "/dev/logbuffer_ssoc"
|
||||||
echo "\n------ TTF ------"
|
echo "\n------ TTF ------"
|
||||||
|
@ -165,14 +165,15 @@ do
|
||||||
echo "$f: `cat $f`"
|
echo "$f: `cat $f`"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
echo "\n------ DC_registers dump ------"
|
||||||
|
cat "/sys/class/power_supply/pca94xx-mains/device/registers_dump"
|
||||||
|
echo "\n------ max77759_chg registers dump ------"
|
||||||
|
cat "/sys/class/power_supply/main-charger/device/registers_dump"
|
||||||
|
echo "\n------ max77729_pmic registers dump ------"
|
||||||
|
cat /sys/devices/platform/*.hsi2c/i2c-*/*-0066/registers_dump
|
||||||
|
|
||||||
if [ $build_type = "userdebug" ]
|
if [ $build_type = "userdebug" ]
|
||||||
then
|
then
|
||||||
echo "\n------ DC_registers dump ------"
|
|
||||||
cat "/sys/class/power_supply/pca94xx-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 ------"
|
echo "\n------ Charging table dump ------"
|
||||||
cat "/d/google_battery/chg_raw_profile"
|
cat "/d/google_battery/chg_raw_profile"
|
||||||
|
|
||||||
|
@ -218,34 +219,9 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "\n------ Battery EEPROM ------"
|
echo "\n------ Battery EEPROM ------"
|
||||||
if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom" ]
|
if [ -e "/sys/devices/platform/10da0000.hsi2c/i2c-15/15-0050/eeprom" ]
|
||||||
then
|
then
|
||||||
xxd /sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom
|
xxd /sys/devices/platform/10da0000.hsi2c/i2c-15/15-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/10da0000.hsi2c/i2c-5/5-0050/eeprom" ]
|
|
||||||
then
|
|
||||||
xxd /sys/devices/platform/10da0000.hsi2c/i2c-5/5-0050/eeprom
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "/sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom" ]
|
|
||||||
then
|
|
||||||
xxd /sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "/sys/devices/platform/10da0000.hsi2c/i2c-7/7-0050/eeprom" ]
|
|
||||||
then
|
|
||||||
xxd /sys/devices/platform/10da0000.hsi2c/i2c-7/7-0050/eeprom
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "/sys/devices/platform/10da0000.hsi2c/i2c-9/9-0050/eeprom" ]
|
|
||||||
then
|
|
||||||
xxd /sys/devices/platform/10da0000.hsi2c/i2c-9/9-0050/eeprom
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "\n------ Charger Stats ------"
|
echo "\n------ Charger Stats ------"
|
||||||
|
|
|
@ -159,3 +159,17 @@ Op9P1ZW2kjqv5D2+q/qtaePAyHn3B05UZrQYUmx7LaHNO7op6dZgCdoR0sVsR+Fc
|
||||||
Zyr0AhgiuTWrjtUEOGx2qJVwAsHkpqtlN+DaGT08dT64LvIf0bfGvmtm++/WEDWJ
|
Zyr0AhgiuTWrjtUEOGx2qJVwAsHkpqtlN+DaGT08dT64LvIf0bfGvmtm++/WEDWJ
|
||||||
HInwg85pGm+sEkYbYFRBD0woPBsL3g==
|
HInwg85pGm+sEkYbYFRBD0woPBsL3g==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw
|
||||||
|
CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp
|
||||||
|
Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2
|
||||||
|
MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
|
||||||
|
bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG
|
||||||
|
ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS
|
||||||
|
7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp
|
||||||
|
0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS
|
||||||
|
B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49
|
||||||
|
BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ
|
||||||
|
LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4
|
||||||
|
DXZDjC5Ty3zfDBeWUA==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -86,14 +86,6 @@
|
||||||
<transport>hwbinder</transport>
|
<transport>hwbinder</transport>
|
||||||
<fqname>@1.3::IDevice/google-edgetpu</fqname>
|
<fqname>@1.3::IDevice/google-edgetpu</fqname>
|
||||||
</hal>
|
</hal>
|
||||||
<hal format="aidl">
|
|
||||||
<name>com.google.input</name>
|
|
||||||
<version>2</version>
|
|
||||||
<interface>
|
|
||||||
<name>ITouchContextService</name>
|
|
||||||
<instance>default</instance>
|
|
||||||
</interface>
|
|
||||||
</hal>
|
|
||||||
<hal format="aidl">
|
<hal format="aidl">
|
||||||
<name>vendor.google.google_battery</name>
|
<name>vendor.google.google_battery</name>
|
||||||
<version>2-3</version>
|
<version>2-3</version>
|
||||||
|
|
|
@ -12,12 +12,4 @@
|
||||||
<name>android.hardware.boot</name>
|
<name>android.hardware.boot</name>
|
||||||
<fqname>IBootControl/default</fqname>
|
<fqname>IBootControl/default</fqname>
|
||||||
</hal>
|
</hal>
|
||||||
<hal format="aidl">
|
|
||||||
<name>com.google.input</name>
|
|
||||||
<version>2</version>
|
|
||||||
<interface>
|
|
||||||
<name>ITouchContextService</name>
|
|
||||||
<instance>default</instance>
|
|
||||||
</interface>
|
|
||||||
</hal>
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -5,8 +5,16 @@
|
||||||
<version>1.0</version>
|
<version>1.0</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>IComponentStore</name>
|
<name>IComponentStore</name>
|
||||||
<instance>default</instance>
|
|
||||||
<instance>default1</instance>
|
<instance>default1</instance>
|
||||||
</interface>
|
</interface>
|
||||||
</hal>
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.media.c2</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.2</version>
|
||||||
|
<interface>
|
||||||
|
<name>IComponentStore</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<hal format="hidl">
|
<hal format="hidl">
|
||||||
<name>android.hardware.media.c2</name>
|
<name>android.hardware.media.c2</name>
|
||||||
<transport>hwbinder</transport>
|
<transport>hwbinder</transport>
|
||||||
<version>1.0</version>
|
<version>1.2</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>IComponentStore</name>
|
<name>IComponentStore</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
|
|
|
@ -174,10 +174,10 @@
|
||||||
<Limit name="measured-frame-rate-1280x720" range="65-71" />
|
<Limit name="measured-frame-rate-1280x720" range="65-71" />
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.android.av1-dav1d.decoder" type="video/av01" update="true">
|
<MediaCodec name="c2.android.av1-dav1d.decoder" type="video/av01" update="true">
|
||||||
<Limit name="measured-frame-rate-352x288" range="358-383" />
|
<Limit name="measured-frame-rate-352x288" range="848-1033" />
|
||||||
<Limit name="measured-frame-rate-640x360" range="207-221" />
|
<Limit name="measured-frame-rate-640x360" range="450-685" />
|
||||||
<Limit name="measured-frame-rate-720x480" range="106-148" />
|
<Limit name="measured-frame-rate-720x480" range="406-484" />
|
||||||
<Limit name="measured-frame-rate-1280x720" range="65-71" />
|
<Limit name="measured-frame-rate-1280x720" range="148-187" />
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
</Decoders>
|
</Decoders>
|
||||||
|
|
||||||
|
|
|
@ -309,6 +309,7 @@
|
||||||
<item>com.zhiliaoapp.musically:0.07</item>
|
<item>com.zhiliaoapp.musically:0.07</item>
|
||||||
<item>com.bilibili.app.in:0.07</item>
|
<item>com.bilibili.app.in:0.07</item>
|
||||||
<item>com.twitter.android:0.07</item>
|
<item>com.twitter.android:0.07</item>
|
||||||
|
<item>com.google.android.youtube:0.07</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<!-- Pre-scale volume at volume step 1 for Absolute Volume -->
|
<!-- Pre-scale volume at volume step 1 for Absolute Volume -->
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
on property:sys.boot_completed=1
|
on property:sys.boot_completed=1
|
||||||
|
chown system system /sys/class/power_supply/maxfg_base/fg_learning_events
|
||||||
|
chown system system /sys/class/power_supply/maxfg/fg_learning_events
|
||||||
start vendor.pixelstats_vendor
|
start vendor.pixelstats_vendor
|
||||||
on post-fs-data
|
on post-fs-data
|
||||||
chown system system /sys/kernel/metrics/irq/stats_reset
|
chown system system /sys/kernel/metrics/irq/stats_reset
|
||||||
|
|
|
@ -88,13 +88,26 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = {
|
||||||
.IRQStatsResetPath = "/sys/kernel/metrics/irq/stats_reset",
|
.IRQStatsResetPath = "/sys/kernel/metrics/irq/stats_reset",
|
||||||
.ModemPcieLinkStatsPath = "/sys/devices/platform/11920000.pcie/link_stats",
|
.ModemPcieLinkStatsPath = "/sys/devices/platform/11920000.pcie/link_stats",
|
||||||
.WifiPcieLinkStatsPath = "/sys/devices/platform/14520000.pcie/link_stats",
|
.WifiPcieLinkStatsPath = "/sys/devices/platform/14520000.pcie/link_stats",
|
||||||
.GMSRPath = "/sys/class/power_supply/maxfg/gmsr",
|
.GMSRPath = {
|
||||||
|
"/sys/class/power_supply/maxfg/gmsr",
|
||||||
|
"/sys/class/power_supply/maxfg_base/gmsr",
|
||||||
|
},
|
||||||
.TotalCallCountPath = "/sys/devices/platform/audiometrics/call_count"
|
.TotalCallCountPath = "/sys/devices/platform/audiometrics/call_count"
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct UeventListener::UeventPaths ueventPaths = {
|
const struct UeventListener::UeventPaths ueventPaths = {
|
||||||
.AudioUevent = "/devices/virtual/amcs/amcs",
|
.AudioUevent = "/devices/virtual/amcs/amcs",
|
||||||
.TypeCPartnerUevent = "PRODUCT_TYPE="};
|
.TypeCPartnerUevent = "PRODUCT_TYPE=",
|
||||||
|
.FGLearningPath = {
|
||||||
|
"/sys/class/power_supply/maxfg/fg_learning_events",
|
||||||
|
"/sys/class/power_supply/maxfg_base/fg_learning_events"
|
||||||
|
},
|
||||||
|
.FwUpdatePath = "",
|
||||||
|
.FGModelLoadingPath = {
|
||||||
|
"/sys/class/power_supply/maxfg/m5_model_state",
|
||||||
|
"/sys/class/power_supply/maxfg_base/m5_model_state"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
LOG(INFO) << "starting PixelStats";
|
LOG(INFO) << "starting PixelStats";
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include <AdaptiveDvfsStateResidencyDataProvider.h>
|
#include <AdaptiveDvfsStateResidencyDataProvider.h>
|
||||||
#include <AocTimedStateResidencyDataProvider.h>
|
#include <AocTimedStateResidencyDataProvider.h>
|
||||||
#include <DevfreqStateResidencyDataProvider.h>
|
#include <DevfreqStateResidencyDataProvider.h>
|
||||||
|
#include <DisplayMrrStateResidencyDataProvider.h>
|
||||||
#include <DvfsStateResidencyDataProvider.h>
|
#include <DvfsStateResidencyDataProvider.h>
|
||||||
#include <UfsStateResidencyDataProvider.h>
|
#include <UfsStateResidencyDataProvider.h>
|
||||||
#include <dataproviders/GenericStateResidencyDataProvider.h>
|
#include <dataproviders/GenericStateResidencyDataProvider.h>
|
||||||
|
@ -37,6 +38,7 @@
|
||||||
using aidl::android::hardware::power::stats::AdaptiveDvfsStateResidencyDataProvider;
|
using aidl::android::hardware::power::stats::AdaptiveDvfsStateResidencyDataProvider;
|
||||||
using aidl::android::hardware::power::stats::AocTimedStateResidencyDataProvider;
|
using aidl::android::hardware::power::stats::AocTimedStateResidencyDataProvider;
|
||||||
using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider;
|
using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider;
|
||||||
|
using aidl::android::hardware::power::stats::DisplayMrrStateResidencyDataProvider;
|
||||||
using aidl::android::hardware::power::stats::DvfsStateResidencyDataProvider;
|
using aidl::android::hardware::power::stats::DvfsStateResidencyDataProvider;
|
||||||
using aidl::android::hardware::power::stats::UfsStateResidencyDataProvider;
|
using aidl::android::hardware::power::stats::UfsStateResidencyDataProvider;
|
||||||
using aidl::android::hardware::power::stats::EnergyConsumerType;
|
using aidl::android::hardware::power::stats::EnergyConsumerType;
|
||||||
|
@ -608,6 +610,15 @@ void addCamera(std::shared_ptr<PowerStats> p) {
|
||||||
{"VSYS_PWR_CAM"}));
|
{"VSYS_PWR_CAM"}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addDisplayMrrByEntity(std::shared_ptr<PowerStats> p, std::string name, std::string path) {
|
||||||
|
p->addStateResidencyDataProvider(std::make_unique<DisplayMrrStateResidencyDataProvider>(
|
||||||
|
name, path));
|
||||||
|
}
|
||||||
|
|
||||||
|
void addDisplayMrr(std::shared_ptr<PowerStats> p) {
|
||||||
|
addDisplayMrrByEntity(p, "Display", "/sys/class/drm/card0/device/primary-panel/");
|
||||||
|
}
|
||||||
|
|
||||||
void addGs201CommonDataProviders(std::shared_ptr<PowerStats> p) {
|
void addGs201CommonDataProviders(std::shared_ptr<PowerStats> p) {
|
||||||
setEnergyMeter(p);
|
setEnergyMeter(p);
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,8 @@ void addAoC(std::shared_ptr<PowerStats> p);
|
||||||
void addCPUclusters(std::shared_ptr<PowerStats> p);
|
void addCPUclusters(std::shared_ptr<PowerStats> p);
|
||||||
void addCamera(std::shared_ptr<PowerStats> p);
|
void addCamera(std::shared_ptr<PowerStats> p);
|
||||||
void addDevfreq(std::shared_ptr<PowerStats> p);
|
void addDevfreq(std::shared_ptr<PowerStats> p);
|
||||||
|
void addDisplayMrr(std::shared_ptr<PowerStats> p);
|
||||||
|
void addDisplayMrrByEntity(std::shared_ptr<PowerStats> p, std::string name, std::string path);
|
||||||
void addDvfsStats(std::shared_ptr<PowerStats> p);
|
void addDvfsStats(std::shared_ptr<PowerStats> p);
|
||||||
void addGNSS(std::shared_ptr<PowerStats> p);
|
void addGNSS(std::shared_ptr<PowerStats> p);
|
||||||
void addGs201CommonDataProviders(std::shared_ptr<PowerStats> p);
|
void addGs201CommonDataProviders(std::shared_ptr<PowerStats> p);
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
#define LOG_TAG "android.hardware.usb.gadget.aidl-service"
|
#define LOG_TAG "android.hardware.usb.gadget.aidl-service"
|
||||||
|
|
||||||
#include "UsbGadget.h"
|
#include "UsbGadget.h"
|
||||||
#include <dirent.h>
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/inotify.h>
|
#include <sys/inotify.h>
|
||||||
|
@ -29,6 +28,7 @@
|
||||||
#include <android-base/properties.h>
|
#include <android-base/properties.h>
|
||||||
|
|
||||||
#include <aidl/android/frameworks/stats/IStats.h>
|
#include <aidl/android/frameworks/stats/IStats.h>
|
||||||
|
#include <pixelusb/I2cHelper.h>
|
||||||
|
|
||||||
namespace aidl {
|
namespace aidl {
|
||||||
namespace android {
|
namespace android {
|
||||||
|
@ -37,39 +37,19 @@ namespace usb {
|
||||||
namespace gadget {
|
namespace gadget {
|
||||||
|
|
||||||
using ::android::base::GetBoolProperty;
|
using ::android::base::GetBoolProperty;
|
||||||
|
using ::android::hardware::google::pixel::usb::getI2cClientPath;
|
||||||
using ::android::hardware::google::pixel::usb::kUvcEnabled;
|
using ::android::hardware::google::pixel::usb::kUvcEnabled;
|
||||||
|
|
||||||
string enabledPath;
|
string enabledPath;
|
||||||
constexpr char kHsi2cPath[] = "/sys/devices/platform/10d60000.hsi2c";
|
constexpr char kHsi2cPath[] = "/sys/devices/platform/10d60000.hsi2c";
|
||||||
constexpr char kI2CPath[] = "/sys/devices/platform/10d60000.hsi2c/i2c-";
|
constexpr char kTcpcDevName[] = "i2c-max77759tcpc";
|
||||||
constexpr char kAccessoryLimitCurrent[] = "i2c-max77759tcpc/usb_limit_accessory_current";
|
constexpr char kI2cClientId[] = "0025";
|
||||||
constexpr char kAccessoryLimitCurrentEnable[] = "i2c-max77759tcpc/usb_limit_accessory_enable";
|
constexpr char kAccessoryLimitCurrent[] = "usb_limit_accessory_current";
|
||||||
constexpr char kUpdateSdpEnumTimeout[] = "i2c-max77759tcpc/update_sdp_enum_timeout";
|
constexpr char kAccessoryLimitCurrentEnable[] = "usb_limit_accessory_enable";
|
||||||
|
constexpr char kUpdateSdpEnumTimeout[] = "update_sdp_enum_timeout";
|
||||||
|
|
||||||
Status getI2cBusHelper(string *name) {
|
UsbGadget::UsbGadget() : mGadgetIrqPath(""),
|
||||||
DIR *dp;
|
mI2cClientPath("") {
|
||||||
|
|
||||||
dp = opendir(kHsi2cPath);
|
|
||||||
if (dp != NULL) {
|
|
||||||
struct dirent *ep;
|
|
||||||
|
|
||||||
while ((ep = readdir(dp))) {
|
|
||||||
if (ep->d_type == DT_DIR) {
|
|
||||||
if (string::npos != string(ep->d_name).find("i2c-")) {
|
|
||||||
std::strtok(ep->d_name, "-");
|
|
||||||
*name = std::strtok(NULL, "-");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
closedir(dp);
|
|
||||||
return Status::SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
ALOGE("Failed to open %s", kHsi2cPath);
|
|
||||||
return Status::ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
UsbGadget::UsbGadget() : mGadgetIrqPath("") {
|
|
||||||
if (access(OS_DESC_PATH, R_OK) != 0) {
|
if (access(OS_DESC_PATH, R_OK) != 0) {
|
||||||
ALOGE("configfs setup not done yet");
|
ALOGE("configfs setup not done yet");
|
||||||
abort();
|
abort();
|
||||||
|
@ -389,14 +369,16 @@ ScopedAStatus UsbGadget::reset(const shared_ptr<IUsbGadgetCallback> &callback,
|
||||||
}
|
}
|
||||||
|
|
||||||
void UsbGadget::updateSdpEnumTimeout() {
|
void UsbGadget::updateSdpEnumTimeout() {
|
||||||
string i2c_node, update_sdp_enum_timeout_path;
|
string update_sdp_enum_timeout_path;
|
||||||
|
|
||||||
Status status = getI2cBusHelper(&i2c_node);
|
if (mI2cClientPath.empty()) {
|
||||||
if (status != Status::SUCCESS) {
|
mI2cClientPath = getI2cClientPath(kHsi2cPath, kTcpcDevName, kI2cClientId);
|
||||||
ALOGE("%s: Unable to locate i2c bus node", __func__);
|
if (mI2cClientPath.empty()) {
|
||||||
|
ALOGE("%s: Unable to locate i2c bus node", __func__);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
update_sdp_enum_timeout_path = kI2CPath + i2c_node + "/" + kUpdateSdpEnumTimeout;
|
update_sdp_enum_timeout_path = mI2cClientPath + kUpdateSdpEnumTimeout;
|
||||||
if (!WriteStringToFile("1", update_sdp_enum_timeout_path)) {
|
if (!WriteStringToFile("1", update_sdp_enum_timeout_path)) {
|
||||||
ALOGE("%s: Unable to write to %s.", __func__, update_sdp_enum_timeout_path.c_str());
|
ALOGE("%s: Unable to write to %s.", __func__, update_sdp_enum_timeout_path.c_str());
|
||||||
} else {
|
} else {
|
||||||
|
@ -494,15 +476,20 @@ ScopedAStatus UsbGadget::setCurrentUsbFunctions(long functions,
|
||||||
std::unique_lock<std::mutex> lk(mLockSetCurrentFunction);
|
std::unique_lock<std::mutex> lk(mLockSetCurrentFunction);
|
||||||
std::string current_usb_power_operation_mode, current_usb_type;
|
std::string current_usb_power_operation_mode, current_usb_type;
|
||||||
std::string usb_limit_sink_enable;
|
std::string usb_limit_sink_enable;
|
||||||
|
std::string accessoryCurrentLimitEnablePath, accessoryCurrentLimitPath;
|
||||||
string accessoryCurrentLimitEnablePath, accessoryCurrentLimitPath, path;
|
|
||||||
|
|
||||||
mCurrentUsbFunctions = functions;
|
mCurrentUsbFunctions = functions;
|
||||||
mCurrentUsbFunctionsApplied = false;
|
mCurrentUsbFunctionsApplied = false;
|
||||||
|
|
||||||
getI2cBusHelper(&path);
|
if (mI2cClientPath.empty()) {
|
||||||
accessoryCurrentLimitPath = kI2CPath + path + "/" + kAccessoryLimitCurrent;
|
mI2cClientPath = getI2cClientPath(kHsi2cPath, kTcpcDevName, kI2cClientId);
|
||||||
accessoryCurrentLimitEnablePath = kI2CPath + path + "/" + kAccessoryLimitCurrentEnable;
|
if (mI2cClientPath.empty()) {
|
||||||
|
ALOGE("%s: Unable to locate i2c bus node", __func__);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
accessoryCurrentLimitPath = mI2cClientPath + kAccessoryLimitCurrent;
|
||||||
|
accessoryCurrentLimitEnablePath = mI2cClientPath + kAccessoryLimitCurrentEnable;
|
||||||
|
|
||||||
// Get the gadget IRQ number before tearDownGadget()
|
// Get the gadget IRQ number before tearDownGadget()
|
||||||
if (mGadgetIrqPath.empty())
|
if (mGadgetIrqPath.empty())
|
||||||
|
|
|
@ -118,6 +118,7 @@ struct UsbGadget : public BnUsbGadget {
|
||||||
// Indicates to the kernel that the gadget service is ready and the kernel can
|
// Indicates to the kernel that the gadget service is ready and the kernel can
|
||||||
// set SDP timeout to a lower value.
|
// set SDP timeout to a lower value.
|
||||||
void updateSdpEnumTimeout();
|
void updateSdpEnumTimeout();
|
||||||
|
std::string mI2cClientPath;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Status tearDownGadget();
|
Status tearDownGadget();
|
||||||
|
|
|
@ -7,7 +7,7 @@ on post-fs
|
||||||
chown root system /sys/class/typec/port0/power_role
|
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/data_role
|
||||||
chown root system /sys/class/typec/port0/port_type
|
chown root system /sys/class/typec/port0/port_type
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/contaminant_detection
|
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/contaminant_detection
|
||||||
chown root system /sys/devices/platform/11210000.usb/dwc3_exynos_otg_b_sess
|
chown root system /sys/devices/platform/11210000.usb/dwc3_exynos_otg_b_sess
|
||||||
chown root system /sys/devices/platform/11210000.usb/dwc3_exynos_otg_id
|
chown root system /sys/devices/platform/11210000.usb/dwc3_exynos_otg_id
|
||||||
chown root system /sys/devices/platform/11210000.usb/usb_data_enabled
|
chown root system /sys/devices/platform/11210000.usb/usb_data_enabled
|
||||||
|
|
103
usb/usb/Usb.cpp
103
usb/usb/Usb.cpp
|
@ -43,8 +43,9 @@
|
||||||
|
|
||||||
#include <aidl/android/frameworks/stats/IStats.h>
|
#include <aidl/android/frameworks/stats/IStats.h>
|
||||||
#include <android_hardware_usb_flags.h>
|
#include <android_hardware_usb_flags.h>
|
||||||
#include <pixelusb/UsbGadgetAidlCommon.h>
|
|
||||||
#include <pixelstats/StatsHelper.h>
|
#include <pixelstats/StatsHelper.h>
|
||||||
|
#include <pixelusb/I2cHelper.h>
|
||||||
|
#include <pixelusb/UsbGadgetAidlCommon.h>
|
||||||
|
|
||||||
namespace usb_flags = android::hardware::usb::flags;
|
namespace usb_flags = android::hardware::usb::flags;
|
||||||
|
|
||||||
|
@ -55,6 +56,7 @@ using android::base::Trim;
|
||||||
using android::hardware::google::pixel::getStatsService;
|
using android::hardware::google::pixel::getStatsService;
|
||||||
using android::hardware::google::pixel::PixelAtoms::VendorUsbPortOverheat;
|
using android::hardware::google::pixel::PixelAtoms::VendorUsbPortOverheat;
|
||||||
using android::hardware::google::pixel::reportUsbPortOverheat;
|
using android::hardware::google::pixel::reportUsbPortOverheat;
|
||||||
|
using android::hardware::google::pixel::usb::getI2cClientPath;
|
||||||
using android::String8;
|
using android::String8;
|
||||||
using android::Vector;
|
using android::Vector;
|
||||||
|
|
||||||
|
@ -67,18 +69,19 @@ volatile bool destroyThread;
|
||||||
|
|
||||||
string enabledPath;
|
string enabledPath;
|
||||||
constexpr char kHsi2cPath[] = "/sys/devices/platform/10d60000.hsi2c";
|
constexpr char kHsi2cPath[] = "/sys/devices/platform/10d60000.hsi2c";
|
||||||
constexpr char kI2CPath[] = "/sys/devices/platform/10d60000.hsi2c/i2c-";
|
constexpr char kTcpcDevName[] = "i2c-max77759tcpc";
|
||||||
|
constexpr char kI2cClientId[] = "0025";
|
||||||
constexpr char kComplianceWarningsPath[] = "device/non_compliant_reasons";
|
constexpr char kComplianceWarningsPath[] = "device/non_compliant_reasons";
|
||||||
constexpr char kComplianceWarningBC12[] = "bc12";
|
constexpr char kComplianceWarningBC12[] = "bc12";
|
||||||
constexpr char kComplianceWarningDebugAccessory[] = "debug-accessory";
|
constexpr char kComplianceWarningDebugAccessory[] = "debug-accessory";
|
||||||
constexpr char kComplianceWarningMissingRp[] = "missing_rp";
|
constexpr char kComplianceWarningMissingRp[] = "missing_rp";
|
||||||
constexpr char kComplianceWarningOther[] = "other";
|
constexpr char kComplianceWarningOther[] = "other";
|
||||||
constexpr char kComplianceWarningInputPowerLimited[] = "input_power_limited";
|
constexpr char kComplianceWarningInputPowerLimited[] = "input_power_limited";
|
||||||
constexpr char kContaminantDetectionPath[] = "i2c-max77759tcpc/contaminant_detection";
|
constexpr char kContaminantDetectionPath[] = "contaminant_detection";
|
||||||
constexpr char kStatusPath[] = "i2c-max77759tcpc/contaminant_detection_status";
|
constexpr char kStatusPath[] = "contaminant_detection_status";
|
||||||
constexpr char kSinkLimitEnable[] = "i2c-max77759tcpc/usb_limit_sink_enable";
|
constexpr char kSinkLimitEnable[] = "usb_limit_sink_enable";
|
||||||
constexpr char kSourceLimitEnable[] = "i2c-max77759tcpc/usb_limit_source_enable";
|
constexpr char kSourceLimitEnable[] = "usb_limit_source_enable";
|
||||||
constexpr char kSinkLimitCurrent[] = "i2c-max77759tcpc/usb_limit_sink_current";
|
constexpr char kSinkLimitCurrent[] = "usb_limit_sink_current";
|
||||||
constexpr char kTypecPath[] = "/sys/class/typec";
|
constexpr char kTypecPath[] = "/sys/class/typec";
|
||||||
constexpr char kDisableContatminantDetection[] = "vendor.usb.contaminantdisable";
|
constexpr char kDisableContatminantDetection[] = "vendor.usb.contaminantdisable";
|
||||||
constexpr char kOverheatStatsPath[] = "/sys/devices/platform/google,usbc_port_cooling_dev/";
|
constexpr char kOverheatStatsPath[] = "/sys/devices/platform/google,usbc_port_cooling_dev/";
|
||||||
|
@ -245,31 +248,9 @@ ScopedAStatus Usb::resetUsbPort(const std::string& in_portName, int64_t in_trans
|
||||||
return ::ndk::ScopedAStatus::ok();
|
return ::ndk::ScopedAStatus::ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
Status getI2cBusHelper(string *name) {
|
Status queryMoistureDetectionStatus(android::hardware::usb::Usb *usb,
|
||||||
DIR *dp;
|
std::vector<PortStatus> *currentPortStatus) {
|
||||||
|
string enabled, status, DetectedPath;
|
||||||
dp = opendir(kHsi2cPath);
|
|
||||||
if (dp != NULL) {
|
|
||||||
struct dirent *ep;
|
|
||||||
|
|
||||||
while ((ep = readdir(dp))) {
|
|
||||||
if (ep->d_type == DT_DIR) {
|
|
||||||
if (string::npos != string(ep->d_name).find("i2c-")) {
|
|
||||||
std::strtok(ep->d_name, "-");
|
|
||||||
*name = std::strtok(NULL, "-");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
closedir(dp);
|
|
||||||
return Status::SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
ALOGE("Failed to open %s", kHsi2cPath);
|
|
||||||
return Status::ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status queryMoistureDetectionStatus(std::vector<PortStatus> *currentPortStatus) {
|
|
||||||
string enabled, status, path, DetectedPath;
|
|
||||||
|
|
||||||
(*currentPortStatus)[0].supportedContaminantProtectionModes
|
(*currentPortStatus)[0].supportedContaminantProtectionModes
|
||||||
.push_back(ContaminantProtectionMode::FORCE_DISABLE);
|
.push_back(ContaminantProtectionMode::FORCE_DISABLE);
|
||||||
|
@ -278,8 +259,15 @@ Status queryMoistureDetectionStatus(std::vector<PortStatus> *currentPortStatus)
|
||||||
(*currentPortStatus)[0].supportsEnableContaminantPresenceDetection = true;
|
(*currentPortStatus)[0].supportsEnableContaminantPresenceDetection = true;
|
||||||
(*currentPortStatus)[0].supportsEnableContaminantPresenceProtection = false;
|
(*currentPortStatus)[0].supportsEnableContaminantPresenceProtection = false;
|
||||||
|
|
||||||
getI2cBusHelper(&path);
|
if (usb->mI2cClientPath.empty()) {
|
||||||
enabledPath = kI2CPath + path + "/" + kContaminantDetectionPath;
|
usb->mI2cClientPath = getI2cClientPath(kHsi2cPath, kTcpcDevName, kI2cClientId);
|
||||||
|
if (usb->mI2cClientPath.empty()) {
|
||||||
|
ALOGE("%s: Unable to locate i2c bus node", __func__);
|
||||||
|
return Status::ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enabledPath = usb->mI2cClientPath + kContaminantDetectionPath;
|
||||||
if (!ReadFileToString(enabledPath, &enabled)) {
|
if (!ReadFileToString(enabledPath, &enabled)) {
|
||||||
ALOGE("Failed to open moisture_detection_enabled");
|
ALOGE("Failed to open moisture_detection_enabled");
|
||||||
return Status::ERROR;
|
return Status::ERROR;
|
||||||
|
@ -287,7 +275,7 @@ Status queryMoistureDetectionStatus(std::vector<PortStatus> *currentPortStatus)
|
||||||
|
|
||||||
enabled = Trim(enabled);
|
enabled = Trim(enabled);
|
||||||
if (enabled == "1") {
|
if (enabled == "1") {
|
||||||
DetectedPath = kI2CPath + path + "/" + kStatusPath;
|
DetectedPath = usb->mI2cClientPath + kStatusPath;
|
||||||
if (!ReadFileToString(DetectedPath, &status)) {
|
if (!ReadFileToString(DetectedPath, &status)) {
|
||||||
ALOGE("Failed to open moisture_detected");
|
ALOGE("Failed to open moisture_detected");
|
||||||
return Status::ERROR;
|
return Status::ERROR;
|
||||||
|
@ -562,7 +550,8 @@ Usb::Usb()
|
||||||
ThrottlingSeverity::NONE)}, kSamplingIntervalSec),
|
ThrottlingSeverity::NONE)}, kSamplingIntervalSec),
|
||||||
mUsbDataEnabled(true),
|
mUsbDataEnabled(true),
|
||||||
mUsbHubVendorCmdValue(GL852G_VENDOR_CMD_VALUE_DEFAULT),
|
mUsbHubVendorCmdValue(GL852G_VENDOR_CMD_VALUE_DEFAULT),
|
||||||
mUsbHubVendorCmdIndex(GL852G_VENDOR_CMD_INDEX_DEFAULT) {
|
mUsbHubVendorCmdIndex(GL852G_VENDOR_CMD_INDEX_DEFAULT),
|
||||||
|
mI2cClientPath("") {
|
||||||
pthread_condattr_t attr;
|
pthread_condattr_t attr;
|
||||||
if (pthread_condattr_init(&attr)) {
|
if (pthread_condattr_init(&attr)) {
|
||||||
ALOGE("pthread_condattr_init failed: %s", strerror(errno));
|
ALOGE("pthread_condattr_init failed: %s", strerror(errno));
|
||||||
|
@ -584,6 +573,11 @@ Usb::Usb()
|
||||||
ALOGE("pthread creation failed %d\n", errno);
|
ALOGE("pthread creation failed %d\n", errno);
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ALOGI("feature flag enable_usb_data_compliance_warning: %d",
|
||||||
|
usb_flags::enable_usb_data_compliance_warning());
|
||||||
|
ALOGI("feature flag enable_input_power_limited_warning: %d",
|
||||||
|
usb_flags::enable_input_power_limited_warning());
|
||||||
}
|
}
|
||||||
|
|
||||||
ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role,
|
ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role,
|
||||||
|
@ -645,12 +639,19 @@ ScopedAStatus Usb::limitPowerTransfer(const string& in_portName, bool in_limit,
|
||||||
int64_t in_transactionId) {
|
int64_t in_transactionId) {
|
||||||
bool sessionFail = false, success;
|
bool sessionFail = false, success;
|
||||||
std::vector<PortStatus> currentPortStatus;
|
std::vector<PortStatus> currentPortStatus;
|
||||||
string path, sinkLimitEnablePath, currentLimitPath, sourceLimitEnablePath;
|
string sinkLimitEnablePath, currentLimitPath, sourceLimitEnablePath;
|
||||||
|
|
||||||
getI2cBusHelper(&path);
|
if (mI2cClientPath.empty()) {
|
||||||
sinkLimitEnablePath = kI2CPath + path + "/" + kSinkLimitEnable;
|
mI2cClientPath = getI2cClientPath(kHsi2cPath, kTcpcDevName, kI2cClientId);
|
||||||
currentLimitPath = kI2CPath + path + "/" + kSinkLimitCurrent;
|
if (mI2cClientPath.empty()) {
|
||||||
sourceLimitEnablePath = kI2CPath + path + "/" + kSourceLimitEnable;
|
ALOGE("%s: Unable to locate i2c bus node", __func__);
|
||||||
|
return ScopedAStatus::ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sinkLimitEnablePath = mI2cClientPath + kSinkLimitEnable;
|
||||||
|
currentLimitPath = mI2cClientPath + kSinkLimitCurrent;
|
||||||
|
sourceLimitEnablePath = mI2cClientPath + kSourceLimitEnable;
|
||||||
|
|
||||||
pthread_mutex_lock(&mLock);
|
pthread_mutex_lock(&mLock);
|
||||||
if (in_limit) {
|
if (in_limit) {
|
||||||
|
@ -690,11 +691,19 @@ ScopedAStatus Usb::limitPowerTransfer(const string& in_portName, bool in_limit,
|
||||||
return ScopedAStatus::ok();
|
return ScopedAStatus::ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
Status queryPowerTransferStatus(std::vector<PortStatus> *currentPortStatus) {
|
Status queryPowerTransferStatus(android::hardware::usb::Usb *usb,
|
||||||
string limitedPath, enabled, path;
|
std::vector<PortStatus> *currentPortStatus) {
|
||||||
|
string limitedPath, enabled;
|
||||||
|
|
||||||
getI2cBusHelper(&path);
|
if (usb->mI2cClientPath.empty()) {
|
||||||
limitedPath = kI2CPath + path + "/" + kSinkLimitEnable;
|
usb->mI2cClientPath = getI2cClientPath(kHsi2cPath, kTcpcDevName, kI2cClientId);
|
||||||
|
if (usb->mI2cClientPath.empty()) {
|
||||||
|
ALOGE("%s: Unable to locate i2c bus node", __func__);
|
||||||
|
return Status::ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
limitedPath = usb->mI2cClientPath + kSinkLimitEnable;
|
||||||
if (!ReadFileToString(limitedPath, &enabled)) {
|
if (!ReadFileToString(limitedPath, &enabled)) {
|
||||||
ALOGE("Failed to open limit_sink_enable");
|
ALOGE("Failed to open limit_sink_enable");
|
||||||
return Status::ERROR;
|
return Status::ERROR;
|
||||||
|
@ -948,8 +957,8 @@ void queryVersionHelper(android::hardware::usb::Usb *usb,
|
||||||
Status status;
|
Status status;
|
||||||
pthread_mutex_lock(&usb->mLock);
|
pthread_mutex_lock(&usb->mLock);
|
||||||
status = getPortStatusHelper(usb, currentPortStatus);
|
status = getPortStatusHelper(usb, currentPortStatus);
|
||||||
queryMoistureDetectionStatus(currentPortStatus);
|
queryMoistureDetectionStatus(usb, currentPortStatus);
|
||||||
queryPowerTransferStatus(currentPortStatus);
|
queryPowerTransferStatus(usb, currentPortStatus);
|
||||||
queryNonCompliantChargerStatus(currentPortStatus);
|
queryNonCompliantChargerStatus(currentPortStatus);
|
||||||
queryUsbDataSession(usb, currentPortStatus);
|
queryUsbDataSession(usb, currentPortStatus);
|
||||||
if (usb->mCallback != NULL) {
|
if (usb->mCallback != NULL) {
|
||||||
|
|
|
@ -99,6 +99,7 @@ struct Usb : public BnUsb {
|
||||||
// Usb hub vendor command settings for JK level tuning
|
// Usb hub vendor command settings for JK level tuning
|
||||||
int mUsbHubVendorCmdValue;
|
int mUsbHubVendorCmdValue;
|
||||||
int mUsbHubVendorCmdIndex;
|
int mUsbHubVendorCmdIndex;
|
||||||
|
std::string mI2cClientPath;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
pthread_t mPoll;
|
pthread_t mPoll;
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include <pixelstats/StatsHelper.h>
|
#include <pixelstats/StatsHelper.h>
|
||||||
#include <pixelusb/CommonUtils.h>
|
#include <pixelusb/CommonUtils.h>
|
||||||
#include <sys/epoll.h>
|
#include <sys/epoll.h>
|
||||||
|
#include <sys/timerfd.h>
|
||||||
#include <utils/Log.h>
|
#include <utils/Log.h>
|
||||||
|
|
||||||
#include <regex>
|
#include <regex>
|
||||||
|
@ -48,6 +49,9 @@ namespace usb {
|
||||||
#define UEVENT_MSG_LEN 2048
|
#define UEVENT_MSG_LEN 2048
|
||||||
#define USB_STATE_MAX_LEN 20
|
#define USB_STATE_MAX_LEN 20
|
||||||
#define DATA_ROLE_MAX_LEN 10
|
#define DATA_ROLE_MAX_LEN 10
|
||||||
|
#define WARNING_SURFACE_DELAY_SEC 5
|
||||||
|
#define ENUM_FAIL_DEFAULT_COUNT_THRESHOLD 3
|
||||||
|
#define DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD 5
|
||||||
|
|
||||||
constexpr char kUdcConfigfsPath[] = "/config/usb_gadget/g1/UDC";
|
constexpr char kUdcConfigfsPath[] = "/config/usb_gadget/g1/UDC";
|
||||||
constexpr char kNotAttachedState[] = "not attached\n";
|
constexpr char kNotAttachedState[] = "not attached\n";
|
||||||
|
@ -115,6 +119,15 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
|
||||||
if (addEpollFd(epollFd, ueventFd))
|
if (addEpollFd(epollFd, ueventFd))
|
||||||
abort();
|
abort();
|
||||||
|
|
||||||
|
unique_fd timerFd(timerfd_create(CLOCK_BOOTTIME, TFD_NONBLOCK));
|
||||||
|
if (timerFd.get() == -1) {
|
||||||
|
ALOGE("create timerFd failed");
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (addEpollFd(epollFd, timerFd))
|
||||||
|
abort();
|
||||||
|
|
||||||
if (addEpollFile(epollFd.get(), dataRolePath, mDataRoleFd) != 0) {
|
if (addEpollFile(epollFd.get(), dataRolePath, mDataRoleFd) != 0) {
|
||||||
ALOGE("monitor data role failed");
|
ALOGE("monitor data role failed");
|
||||||
abort();
|
abort();
|
||||||
|
@ -139,6 +152,7 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
|
||||||
|
|
||||||
mEpollFd = std::move(epollFd);
|
mEpollFd = std::move(epollFd);
|
||||||
mUeventFd = std::move(ueventFd);
|
mUeventFd = std::move(ueventFd);
|
||||||
|
mTimerFd = std::move(timerFd);
|
||||||
mUpdatePortStatusCb = updatePortStatusCb;
|
mUpdatePortStatusCb = updatePortStatusCb;
|
||||||
|
|
||||||
if (ReadFileToString(kUdcConfigfsPath, &udc) && !udc.empty())
|
if (ReadFileToString(kUdcConfigfsPath, &udc) && !udc.empty())
|
||||||
|
@ -150,6 +164,9 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
|
||||||
ALOGE("pthread creation failed %d", errno);
|
ALOGE("pthread creation failed %d", errno);
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ALOGI("feature flag enable_report_usb_data_compliance_warning: %d",
|
||||||
|
usb_flags::enable_report_usb_data_compliance_warning());
|
||||||
}
|
}
|
||||||
|
|
||||||
UsbDataSessionMonitor::~UsbDataSessionMonitor() {}
|
UsbDataSessionMonitor::~UsbDataSessionMonitor() {}
|
||||||
|
@ -223,13 +240,55 @@ void UsbDataSessionMonitor::notifyComplianceWarning() {
|
||||||
|
|
||||||
void UsbDataSessionMonitor::evaluateComplianceWarning() {
|
void UsbDataSessionMonitor::evaluateComplianceWarning() {
|
||||||
std::set<ComplianceWarning> newWarningSet;
|
std::set<ComplianceWarning> newWarningSet;
|
||||||
|
int elapsedTimeSec;
|
||||||
|
|
||||||
// TODO: add heuristics and update newWarningSet
|
elapsedTimeSec =
|
||||||
if (mDataRole == PortDataRole::DEVICE && mUdcBind) {
|
std::chrono::duration_cast<std::chrono::seconds>(boot_clock::now() - mDataSessionStart)
|
||||||
} else if (mDataRole == PortDataRole::HOST) {
|
.count();
|
||||||
|
|
||||||
|
if (elapsedTimeSec >= WARNING_SURFACE_DELAY_SEC) {
|
||||||
|
if (mDataRole == PortDataRole::DEVICE && mUdcBind) {
|
||||||
|
int configuredCount = std::count(mDeviceState.states.begin(),
|
||||||
|
mDeviceState.states.end(), kConfiguredState);
|
||||||
|
int defaultCount =
|
||||||
|
std::count(mDeviceState.states.begin(), mDeviceState.states.end(), kDefaultState);
|
||||||
|
|
||||||
|
if (configuredCount == 0 && defaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD)
|
||||||
|
newWarningSet.insert(ComplianceWarning::ENUMERATION_FAIL);
|
||||||
|
|
||||||
|
if (configuredCount > DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD)
|
||||||
|
newWarningSet.insert(ComplianceWarning::FLAKY_CONNECTION);
|
||||||
|
} else if (mDataRole == PortDataRole::HOST) {
|
||||||
|
int host1StateCount = mHost1State.states.size();
|
||||||
|
int host1ConfiguredCount =
|
||||||
|
std::count(mHost1State.states.begin(), mHost1State.states.end(), kConfiguredState);
|
||||||
|
int host1DefaultCount =
|
||||||
|
std::count(mHost1State.states.begin(), mHost1State.states.end(), kDefaultState);
|
||||||
|
int host2StateCount = mHost2State.states.size();
|
||||||
|
int host2ConfiguredCount =
|
||||||
|
std::count(mHost2State.states.begin(), mHost2State.states.end(), kConfiguredState);
|
||||||
|
int host2DefaultCount =
|
||||||
|
std::count(mHost2State.states.begin(), mHost2State.states.end(), kDefaultState);
|
||||||
|
|
||||||
|
if (host1ConfiguredCount == 0 && host2ConfiguredCount == 0 &&
|
||||||
|
(host1DefaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD ||
|
||||||
|
host2DefaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD))
|
||||||
|
newWarningSet.insert(ComplianceWarning::ENUMERATION_FAIL);
|
||||||
|
|
||||||
|
if (host1StateCount == 1 && mHost1State.states.front() == kNotAttachedState &&
|
||||||
|
host2StateCount == 1 && mHost2State.states.front() == kNotAttachedState)
|
||||||
|
newWarningSet.insert(ComplianceWarning::MISSING_DATA_LINES);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newWarningSet != mWarningSet) {
|
if (newWarningSet != mWarningSet) {
|
||||||
|
std::string newWarningString;
|
||||||
|
|
||||||
|
for (auto e : newWarningSet) {
|
||||||
|
newWarningString += toString(e) + " ";
|
||||||
|
}
|
||||||
|
ALOGI("Usb data compliance warning changed to: %s", newWarningString.c_str());
|
||||||
|
|
||||||
mWarningSet = newWarningSet;
|
mWarningSet = newWarningSet;
|
||||||
notifyComplianceWarning();
|
notifyComplianceWarning();
|
||||||
}
|
}
|
||||||
|
@ -259,6 +318,26 @@ void UsbDataSessionMonitor::handleDeviceStateEvent(struct usbDeviceState *device
|
||||||
evaluateComplianceWarning();
|
evaluateComplianceWarning();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UsbDataSessionMonitor::setupNewSession() {
|
||||||
|
mWarningSet.clear();
|
||||||
|
mDataSessionStart = boot_clock::now();
|
||||||
|
|
||||||
|
if (mDataRole == PortDataRole::DEVICE) {
|
||||||
|
clearDeviceStateEvents(&mDeviceState);
|
||||||
|
} else if (mDataRole == PortDataRole::HOST) {
|
||||||
|
clearDeviceStateEvents(&mHost1State);
|
||||||
|
clearDeviceStateEvents(&mHost2State);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mDataRole != PortDataRole::NONE) {
|
||||||
|
struct itimerspec delay = itimerspec();
|
||||||
|
delay.it_value.tv_sec = WARNING_SURFACE_DELAY_SEC;
|
||||||
|
int ret = timerfd_settime(mTimerFd.get(), 0, &delay, NULL);
|
||||||
|
if (ret < 0)
|
||||||
|
ALOGE("timerfd_settime failed err:%d", errno);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void UsbDataSessionMonitor::handleDataRoleEvent() {
|
void UsbDataSessionMonitor::handleDataRoleEvent() {
|
||||||
int n;
|
int n;
|
||||||
PortDataRole newDataRole;
|
PortDataRole newDataRole;
|
||||||
|
@ -283,17 +362,8 @@ void UsbDataSessionMonitor::handleDataRoleEvent() {
|
||||||
reportUsbDataSessionMetrics();
|
reportUsbDataSessionMetrics();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up for the new data session
|
|
||||||
mWarningSet.clear();
|
|
||||||
mDataRole = newDataRole;
|
mDataRole = newDataRole;
|
||||||
mDataSessionStart = boot_clock::now();
|
setupNewSession();
|
||||||
|
|
||||||
if (newDataRole == PortDataRole::DEVICE) {
|
|
||||||
clearDeviceStateEvents(&mDeviceState);
|
|
||||||
} else if (newDataRole == PortDataRole::HOST) {
|
|
||||||
clearDeviceStateEvents(&mHost1State);
|
|
||||||
clearDeviceStateEvents(&mHost2State);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,8 +398,7 @@ void UsbDataSessionMonitor::updateUdcBindStatus(const std::string &devname) {
|
||||||
|
|
||||||
} else if (!mUdcBind && newUdcBind) {
|
} else if (!mUdcBind && newUdcBind) {
|
||||||
// Gadget soft pullup: reset and start accounting for a new data session.
|
// Gadget soft pullup: reset and start accounting for a new data session.
|
||||||
clearDeviceStateEvents(&mDeviceState);
|
setupNewSession();
|
||||||
mDataSessionStart = boot_clock::now();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -383,6 +452,23 @@ void UsbDataSessionMonitor::handleUevent() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UsbDataSessionMonitor::handleTimerEvent() {
|
||||||
|
int byteRead;
|
||||||
|
uint64_t numExpiration;
|
||||||
|
|
||||||
|
byteRead = read(mTimerFd.get(), &numExpiration, sizeof(numExpiration));
|
||||||
|
|
||||||
|
if (byteRead != sizeof(numExpiration)) {
|
||||||
|
ALOGE("incorrect read size");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (numExpiration != 1) {
|
||||||
|
ALOGE("incorrect expiration count");
|
||||||
|
}
|
||||||
|
|
||||||
|
evaluateComplianceWarning();
|
||||||
|
}
|
||||||
|
|
||||||
void *UsbDataSessionMonitor::monitorThread(void *param) {
|
void *UsbDataSessionMonitor::monitorThread(void *param) {
|
||||||
UsbDataSessionMonitor *monitor = (UsbDataSessionMonitor *)param;
|
UsbDataSessionMonitor *monitor = (UsbDataSessionMonitor *)param;
|
||||||
struct epoll_event events[64];
|
struct epoll_event events[64];
|
||||||
|
@ -400,6 +486,8 @@ void *UsbDataSessionMonitor::monitorThread(void *param) {
|
||||||
for (int n = 0; n < nevents; ++n) {
|
for (int n = 0; n < nevents; ++n) {
|
||||||
if (events[n].data.fd == monitor->mUeventFd.get()) {
|
if (events[n].data.fd == monitor->mUeventFd.get()) {
|
||||||
monitor->handleUevent();
|
monitor->handleUevent();
|
||||||
|
} else if (events[n].data.fd == monitor->mTimerFd.get()) {
|
||||||
|
monitor->handleTimerEvent();
|
||||||
} else if (events[n].data.fd == monitor->mDataRoleFd.get()) {
|
} else if (events[n].data.fd == monitor->mDataRoleFd.get()) {
|
||||||
monitor->handleDataRoleEvent();
|
monitor->handleDataRoleEvent();
|
||||||
} else if (events[n].data.fd == monitor->mDeviceState.fd.get()) {
|
} else if (events[n].data.fd == monitor->mDeviceState.fd.get()) {
|
||||||
|
|
|
@ -75,9 +75,11 @@ class UsbDataSessionMonitor {
|
||||||
|
|
||||||
static void *monitorThread(void *param);
|
static void *monitorThread(void *param);
|
||||||
void handleUevent();
|
void handleUevent();
|
||||||
|
void handleTimerEvent();
|
||||||
void handleDataRoleEvent();
|
void handleDataRoleEvent();
|
||||||
void handleDeviceStateEvent(struct usbDeviceState *deviceState);
|
void handleDeviceStateEvent(struct usbDeviceState *deviceState);
|
||||||
void clearDeviceStateEvents(struct usbDeviceState *deviceState);
|
void clearDeviceStateEvents(struct usbDeviceState *deviceState);
|
||||||
|
void setupNewSession();
|
||||||
void reportUsbDataSessionMetrics();
|
void reportUsbDataSessionMetrics();
|
||||||
void evaluateComplianceWarning();
|
void evaluateComplianceWarning();
|
||||||
void notifyComplianceWarning();
|
void notifyComplianceWarning();
|
||||||
|
@ -86,6 +88,7 @@ class UsbDataSessionMonitor {
|
||||||
pthread_t mMonitor;
|
pthread_t mMonitor;
|
||||||
unique_fd mEpollFd;
|
unique_fd mEpollFd;
|
||||||
unique_fd mUeventFd;
|
unique_fd mUeventFd;
|
||||||
|
unique_fd mTimerFd;
|
||||||
unique_fd mDataRoleFd;
|
unique_fd mDataRoleFd;
|
||||||
struct usbDeviceState mDeviceState;
|
struct usbDeviceState mDeviceState;
|
||||||
struct usbDeviceState mHost1State;
|
struct usbDeviceState mHost1State;
|
||||||
|
|
|
@ -8,146 +8,20 @@ on post-fs
|
||||||
chown root system /sys/class/typec/port0/power_role
|
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/data_role
|
||||||
chown root system /sys/class/typec/port0/port_type
|
chown root system /sys/class/typec/port0/port_type
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/contaminant_detection
|
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/contaminant_detection
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/contaminant_detection
|
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/usb_limit_accessory_current
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/contaminant_detection
|
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/usb_limit_accessory_enable
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/contaminant_detection
|
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/usb_limit_sink_current
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/contaminant_detection
|
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/usb_limit_sink_enable
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/contaminant_detection
|
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/usb_limit_source_enable
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/contaminant_detection
|
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/update_sdp_enum_timeout
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-7/i2c-max77759tcpc/contaminant_detection
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/contaminant_detection
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/contaminant_detection
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
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-7/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
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-7/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
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-7/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
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-7/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/usb_limit_source_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
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-7/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-7/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chown root system /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chmod 664 /sys/class/typec/port0/power_role
|
chmod 664 /sys/class/typec/port0/power_role
|
||||||
chmod 664 /sys/class/typec/port0/data_role
|
chmod 664 /sys/class/typec/port0/data_role
|
||||||
chmod 664 /sys/class/typec/port0/port_type
|
chmod 664 /sys/class/typec/port0/port_type
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/contaminant_detection
|
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/contaminant_detection
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/contaminant_detection
|
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/usb_limit_accessory_current
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/contaminant_detection
|
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/usb_limit_accessory_enable
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/contaminant_detection
|
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/usb_limit_sink_current
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/contaminant_detection
|
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/usb_limit_sink_enable
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/contaminant_detection
|
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/usb_limit_source_enable
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/contaminant_detection
|
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025/update_sdp_enum_timeout
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-7/i2c-max77759tcpc/contaminant_detection
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/contaminant_detection
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/contaminant_detection
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
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-7/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/usb_limit_accessory_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
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-7/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/usb_limit_accessory_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
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-7/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/usb_limit_sink_current
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
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-7/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/usb_limit_sink_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/usb_limit_source_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
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-7/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/usb_limit_source_enable
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-0/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-1/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-2/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-3/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-4/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-5/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-6/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-7/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-8/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
chmod 664 /sys/devices/platform/10d60000.hsi2c/i2c-9/i2c-max77759tcpc/update_sdp_enum_timeout
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue