Merge 24Q3 to aosp-main-future
Bug: 357762254 Merged-In: I2cdbd8126e5684891b6424d262aa505d2aa641b7 Change-Id: I8c43a5249c27aa2bba31aa6714d386f275e7d127
This commit is contained in:
commit
6bbbcd5877
49 changed files with 917 additions and 213 deletions
|
@ -37,7 +37,7 @@ BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10870000 console=ttySAC0,115200 an
|
||||||
BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y
|
BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y
|
||||||
BOARD_KERNEL_CMDLINE += cgroup_disable=memory
|
BOARD_KERNEL_CMDLINE += cgroup_disable=memory
|
||||||
BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem
|
BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem
|
||||||
BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all
|
BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all rcutree.enable_rcu_lazy
|
||||||
BOARD_KERNEL_CMDLINE += swiotlb=noforce
|
BOARD_KERNEL_CMDLINE += swiotlb=noforce
|
||||||
BOARD_KERNEL_CMDLINE += disable_dma32=on
|
BOARD_KERNEL_CMDLINE += disable_dma32=on
|
||||||
BOARD_KERNEL_CMDLINE += sysctl.kernel.sched_pelt_multiplier=4
|
BOARD_KERNEL_CMDLINE += sysctl.kernel.sched_pelt_multiplier=4
|
||||||
|
@ -150,8 +150,6 @@ endif
|
||||||
|
|
||||||
#display_unit_test
|
#display_unit_test
|
||||||
ifeq ($(USES_DEVICE_GOOGLE_ZUMAPRO),true)
|
ifeq ($(USES_DEVICE_GOOGLE_ZUMAPRO),true)
|
||||||
# TODO(b/272725898): Needs to check with owner later
|
|
||||||
$(warning display_unit_test set to zuma on zumapro target)
|
|
||||||
$(call soong_config_set,display_unit_test,soc,zuma)
|
$(call soong_config_set,display_unit_test,soc,zuma)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -245,6 +243,7 @@ ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
|
||||||
$(call soong_config_set,aoc_audio_func,dump_usecase_data,true)
|
$(call soong_config_set,aoc_audio_func,dump_usecase_data,true)
|
||||||
$(call soong_config_set,aoc_audio_func,hal_socket_control,true)
|
$(call soong_config_set,aoc_audio_func,hal_socket_control,true)
|
||||||
$(call soong_config_set,aoc_audio_func,record_tuning_keys,true)
|
$(call soong_config_set,aoc_audio_func,record_tuning_keys,true)
|
||||||
|
$(call soong_config_set,aoc_audio_func,aidl_command_interface,true)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
|
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
|
||||||
|
@ -279,8 +278,6 @@ HWC_SUPPORT_COLOR_TRANSFORM := true
|
||||||
BOARD_USES_EXYNOS_AFBC_FEATURE := true
|
BOARD_USES_EXYNOS_AFBC_FEATURE := true
|
||||||
#BOARD_USES_HDRUI_GLES_CONVERSION := true
|
#BOARD_USES_HDRUI_GLES_CONVERSION := true
|
||||||
|
|
||||||
# TODO(b/272725898): Needs to check with owner later
|
|
||||||
$(warning BOARD_LIBACRYL_DEFAULT_COMPOSITOR set to zuma on zumapro target)
|
|
||||||
BOARD_LIBACRYL_DEFAULT_COMPOSITOR := fimg2d_zuma
|
BOARD_LIBACRYL_DEFAULT_COMPOSITOR := fimg2d_zuma
|
||||||
BOARD_LIBACRYL_G2D_HDR_PLUGIN := libacryl_hdr_plugin
|
BOARD_LIBACRYL_G2D_HDR_PLUGIN := libacryl_hdr_plugin
|
||||||
|
|
||||||
|
@ -396,11 +393,19 @@ KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko)
|
||||||
BOARD_SYSTEM_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/system_dlkm.modules.blocklist
|
BOARD_SYSTEM_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/system_dlkm.modules.blocklist
|
||||||
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
|
||||||
|
|
||||||
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load))
|
# Prebuilt kernel modules that are *not* listed in vendor_kernel_boot.modules.load
|
||||||
ifndef BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD
|
BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES = fips140.ko
|
||||||
|
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA = $(foreach k,$(BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES),$(if $(wildcard $(KERNEL_MODULE_DIR)/$(k)), $(k)))
|
||||||
|
|
||||||
|
# Kernel modules that are listed in vendor_kernel_boot.modules.load
|
||||||
|
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load))
|
||||||
|
ifndef BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE
|
||||||
$(error vendor_kernel_boot.modules.load not found or empty)
|
$(error vendor_kernel_boot.modules.load not found or empty)
|
||||||
endif
|
endif
|
||||||
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD)))
|
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD := $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA)
|
||||||
|
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD += $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE)
|
||||||
|
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA))
|
||||||
|
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES += $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE)))
|
||||||
|
|
||||||
BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.load))
|
BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.load))
|
||||||
ifndef BOARD_VENDOR_KERNEL_MODULES_LOAD
|
ifndef BOARD_VENDOR_KERNEL_MODULES_LOAD
|
||||||
|
|
2
OWNERS
2
OWNERS
|
@ -1,2 +1,2 @@
|
||||||
# per-file for Pixel device makefiles, see go/pixel-device-mk-owner-checklist for details.
|
# per-file for Pixel device makefiles, see go/pixel-device-mk-owner-checklist for details.
|
||||||
per-file *.mk=file:device/google/gs-common:main:/OWNERS
|
per-file *.mk=file:device/google/gs-common:main:/MK_OWNERS
|
||||||
|
|
|
@ -20,6 +20,6 @@ vendor_dlkm /vendor_dlkm
|
||||||
/dev/block/platform/13200000.ufs/by-name/misc /misc emmc defaults wait
|
/dev/block/platform/13200000.ufs/by-name/misc /misc emmc defaults wait
|
||||||
/dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount
|
/dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount
|
||||||
#/dev/block/platform/13200000.ufs/by-name/pvmfw /pvmfw emmc defaults wait,slotselect,avb=pvmfw,first_stage_mount
|
#/dev/block/platform/13200000.ufs/by-name/pvmfw /pvmfw emmc defaults wait,slotselect,avb=pvmfw,first_stage_mount
|
||||||
/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=apex,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,zoned_device
|
/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,device=zoned:/dev/block/by-name/zoned_device
|
||||||
/dev/block/platform/13200000.ufs/by-name/vbmeta /vbmeta emmc defaults slotselect,first_stage_mount
|
/dev/block/platform/13200000.ufs/by-name/vbmeta /vbmeta emmc defaults slotselect,first_stage_mount
|
||||||
/devices/platform/11210000.usb* auto vfat defaults voldmanaged=usb:auto
|
/devices/platform/11210000.usb* auto vfat defaults voldmanaged=usb:auto
|
||||||
|
|
|
@ -15,5 +15,5 @@ on boot
|
||||||
|
|
||||||
on property:sys.boot_completed=1
|
on property:sys.boot_completed=1
|
||||||
# Bump nnapi min clamp & add adbd to it for factory (b/222226268)
|
# Bump nnapi min clamp & add adbd to it for factory (b/222226268)
|
||||||
write /proc/vendor_sched/nnapi_uclamp_min 512
|
write /proc/vendor_sched/groups/nnapi/uclamp_min 512
|
||||||
exec - root root -- /vendor/bin/factory/factory_post_boot
|
exec - root root -- /vendor/bin/factory/factory_post_boot
|
||||||
|
|
|
@ -294,26 +294,6 @@ on post-fs-data
|
||||||
# Video data
|
# Video data
|
||||||
mkdir /data/vendor/media 0700 mediacodec mediacodec
|
mkdir /data/vendor/media 0700 mediacodec mediacodec
|
||||||
|
|
||||||
on post-fs-data
|
|
||||||
# GPS
|
|
||||||
mkdir /data/vendor/gps 0771 system system
|
|
||||||
chown system system /data/vendor/gps
|
|
||||||
rm /data/vendor/gps/gps_started
|
|
||||||
rm /data/vendor/gps/glonass_started
|
|
||||||
rm /data/vendor/gps/beidou_started
|
|
||||||
rm /data/vendor/gps/smd_started
|
|
||||||
rm /data/vendor/gps/sv_cno.info
|
|
||||||
|
|
||||||
chown gps system /sys/devices/platform/111e0000.spi/spi_master/spi21/spi21.0/nstandby
|
|
||||||
chmod 0664 /dev/ttyBCM
|
|
||||||
chown gps system /dev/ttyBCM
|
|
||||||
chmod 0664 /dev/bbd_control
|
|
||||||
chown gps system /dev/bbd_control
|
|
||||||
chmod 0664 /dev/bbd_patch
|
|
||||||
chown gps system /dev/bbd_patch
|
|
||||||
chmod 0664 /dev/bbd_sensor
|
|
||||||
chown gps system /dev/bbd_sensor
|
|
||||||
|
|
||||||
on early-boot
|
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
|
||||||
|
@ -425,6 +405,10 @@ on fs
|
||||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/panel_need_handle_idle_exit
|
chown system system /sys/devices/platform/exynos-drm/primary-panel/panel_need_handle_idle_exit
|
||||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/op_hz
|
chown system system /sys/devices/platform/exynos-drm/primary-panel/op_hz
|
||||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/refresh_ctrl
|
chown system system /sys/devices/platform/exynos-drm/primary-panel/refresh_ctrl
|
||||||
|
chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_rate_hz
|
||||||
|
chown system system /sys/devices/platform/exynos-drm/primary-panel/te2_option
|
||||||
|
chown system system /sys/devices/platform/exynos-drm/primary-panel/power_state
|
||||||
|
chown system system /sys/devices/platform/exynos-drm/primary-panel/frame_rate
|
||||||
chown system system /sys/module/drm/parameters/vblankoffdelay
|
chown system system /sys/module/drm/parameters/vblankoffdelay
|
||||||
chown system system /sys/module/drm/parameters/debug
|
chown system system /sys/module/drm/parameters/debug
|
||||||
chown system system /sys/class/dqe0/atc/ambient_light
|
chown system system /sys/class/dqe0/atc/ambient_light
|
||||||
|
@ -520,6 +504,12 @@ on property:sys.boot_completed=1
|
||||||
# Cancel boot devfreq
|
# Cancel boot devfreq
|
||||||
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
|
||||||
|
|
||||||
|
# Setup scheduler parameters
|
||||||
|
write /proc/vendor_sched/min_granularity_ns 1000000
|
||||||
|
write /proc/vendor_sched/latency_ns 8000000
|
||||||
|
write /proc/vendor_sched/max_load_balance_interval 4
|
||||||
|
write /proc/vendor_sched/enable_hrtick 1
|
||||||
|
|
||||||
# Setup final cpu.uclamp
|
# Setup final cpu.uclamp
|
||||||
write /proc/vendor_sched/groups/ta/uclamp_min 1
|
write /proc/vendor_sched/groups/ta/uclamp_min 1
|
||||||
write /proc/vendor_sched/groups/fg/uclamp_min 0
|
write /proc/vendor_sched/groups/fg/uclamp_min 0
|
||||||
|
@ -649,16 +639,20 @@ on post-fs-data
|
||||||
symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
|
symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
|
||||||
chown root system /data/vendor/ss/persist
|
chown root system /data/vendor/ss/persist
|
||||||
chmod 0770 /data/vendor/ss/persist
|
chmod 0770 /data/vendor/ss/persist
|
||||||
symlink /dev/block/platform/13200000\.ufs/by-name/trusty_persist /data/vendor/ss/persist/0
|
|
||||||
symlink /dev/block/platform/13200000\.ufs/by-name/trusty_userdata /data/vendor/ss/0
|
|
||||||
chown system system /data/vendor/ss/0
|
chown system system /data/vendor/ss/0
|
||||||
chown system system /data/vendor/ss/persist/0
|
chown system system /data/vendor/ss/persist/0
|
||||||
chown system system /data/vendor/ss/persist/nsp
|
chown system system /data/vendor/ss/persist/nsp
|
||||||
|
|
||||||
restart storageproxyd
|
restart storageproxyd
|
||||||
|
|
||||||
service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \
|
service storageproxyd /vendor/bin/storageproxyd \
|
||||||
-r /dev/sg1 -p /data/vendor/ss -t ufs
|
-d /dev/trusty-ipc-dev0 \
|
||||||
|
-r /dev/sg1 \
|
||||||
|
-p /data/vendor/ss \
|
||||||
|
-t ufs \
|
||||||
|
-f 0:/dev/block/platform/13200000\.ufs/by-name/trusty_userdata \
|
||||||
|
-f persist/0:/dev/block/platform/13200000\.ufs/by-name/trusty_persist \
|
||||||
|
-m /dev/block/platform/13200000\.ufs/by-name/trusty_userdata
|
||||||
class early_hal
|
class early_hal
|
||||||
user system
|
user system
|
||||||
group system
|
group system
|
||||||
|
@ -692,29 +686,6 @@ on post-fs-data
|
||||||
chown system system /sys/kernel/metrics/thermal/tr_by_group/tmu/stats_reset
|
chown system system /sys/kernel/metrics/thermal/tr_by_group/tmu/stats_reset
|
||||||
chown system system /sys/kernel/metrics/thermal/tr_by_group/spmic/stats_reset
|
chown system system /sys/kernel/metrics/thermal/tr_by_group/spmic/stats_reset
|
||||||
|
|
||||||
on property:vendor.all.modules.ready=1
|
|
||||||
# BCL
|
|
||||||
write /sys/devices/platform/cpupm/cpupm/cpd_cl1 0 #Disable power down
|
|
||||||
write /sys/devices/platform/cpupm/cpupm/cpd_cl2 0 #Disable power down
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0xfff041c1 #OCP
|
|
||||||
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/gpu_light_clk_ratio 0xfff041c1 #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 #DFS
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c1 #DFS
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/smpl_lvl 3000
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_cpu2_lvl 12000
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_gpu_lvl 9000
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_tpu_lvl 8500
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/ocp_tpu_lvl 13500
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/triggered_lvl/ocp_gpu_lvl 9000
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x1
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x1
|
|
||||||
write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x1
|
|
||||||
write /sys/devices/platform/cpupm/cpupm/cpd_cl1 1 #Enable power down
|
|
||||||
write /sys/devices/platform/cpupm/cpupm/cpd_cl2 1 #Enable power down
|
|
||||||
|
|
||||||
on property:vendor.thermal.link_ready=1
|
on property:vendor.thermal.link_ready=1
|
||||||
chown system system /dev/thermal/tz-by-name/soc/mode
|
chown system system /dev/thermal/tz-by-name/soc/mode
|
||||||
chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_temp
|
chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_temp
|
||||||
|
@ -779,6 +750,9 @@ on property:vendor.thermal.link_ready=1
|
||||||
chown system system /dev/thermal/cdev-by-name/wlc_fcc/cur_state
|
chown system system /dev/thermal/cdev-by-name/wlc_fcc/cur_state
|
||||||
chown system system /dev/thermal/cdev-by-name/chg_mdis/cur_state
|
chown system system /dev/thermal/cdev-by-name/chg_mdis/cur_state
|
||||||
chown system system /dev/thermal/cdev-by-name/usbc-port/cur_state
|
chown system system /dev/thermal/cdev-by-name/usbc-port/cur_state
|
||||||
|
chown system system /dev/thermal/cdev-by-name/thermal-uclamp-0/cur_state
|
||||||
|
chown system system /dev/thermal/cdev-by-name/thermal-uclamp-4/cur_state
|
||||||
|
chown system system /dev/thermal/cdev-by-name/thermal-uclamp-7/cur_state
|
||||||
|
|
||||||
on charger
|
on charger
|
||||||
# Use charger thermal config
|
# Use charger thermal config
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
on init
|
on init
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold
|
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold
|
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency
|
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable
|
chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold
|
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold
|
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency
|
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable
|
chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/lcpi_threshold
|
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/spc_threshold
|
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/spc_threshold
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency
|
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency
|
||||||
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/pmu_limit_enable
|
chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/pmu_limit_enable
|
||||||
|
@ -31,17 +28,30 @@ on init
|
||||||
write /proc/vendor_sched/groups/sys/uclamp_min 190
|
write /proc/vendor_sched/groups/sys/uclamp_min 190
|
||||||
write /proc/vendor_sched/groups/sys/prefer_idle 1
|
write /proc/vendor_sched/groups/sys/prefer_idle 1
|
||||||
|
|
||||||
|
write /proc/vendor_sched/groups/bg/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/cam/rampup_multiplier 1
|
||||||
|
write /proc/vendor_sched/groups/cam_power/rampup_multiplier 1
|
||||||
|
write /proc/vendor_sched/groups/dex2oat/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/fg/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/nnapi/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/ota/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/rt/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/sf/rampup_multiplier 1
|
||||||
|
write /proc/vendor_sched/groups/sys/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/sys_bg/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/ta/rampup_multiplier 1
|
||||||
|
write /proc/vendor_sched/adpf_rampup_multiplier 2
|
||||||
|
|
||||||
# governor setting
|
# governor setting
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
|
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000
|
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 500
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_scale_pow 2
|
|
||||||
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel
|
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel
|
||||||
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500
|
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500
|
||||||
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000
|
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 500
|
||||||
write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor sched_pixel
|
write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor sched_pixel
|
||||||
write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/up_rate_limit_us 500
|
write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/up_rate_limit_us 500
|
||||||
write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/down_rate_limit_us 20000
|
write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/down_rate_limit_us 500
|
||||||
|
|
||||||
# memlat cpuidle awareness setting
|
# memlat cpuidle awareness setting
|
||||||
# FIXME(b/301212469) these nodes missing on zuma pro
|
# FIXME(b/301212469) these nodes missing on zuma pro
|
||||||
|
@ -152,6 +162,7 @@ on property:init.svc.vendor.charger=running
|
||||||
on property:sys.boot_completed=1
|
on property:sys.boot_completed=1
|
||||||
# Set kswapd affinity
|
# Set kswapd affinity
|
||||||
write /sys/kernel/vendor_mm/kswapd_cpu_affinity 7f
|
write /sys/kernel/vendor_mm/kswapd_cpu_affinity 7f
|
||||||
|
write /sys/kernel/vendor_mm/pa_kill/cpu_affinity 7f
|
||||||
|
|
||||||
# Restore prefer idle
|
# Restore prefer idle
|
||||||
write /proc/vendor_sched/groups/ta/preferred_idle_mask_low 0xff
|
write /proc/vendor_sched/groups/ta/preferred_idle_mask_low 0xff
|
||||||
|
@ -174,14 +185,11 @@ on property:sys.boot_completed=1
|
||||||
setprop vendor.powerhal.init 1
|
setprop vendor.powerhal.init 1
|
||||||
|
|
||||||
# Set PMU freq limit parameters
|
# Set PMU freq limit parameters
|
||||||
write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold 0
|
|
||||||
write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold 76
|
write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold 76
|
||||||
write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency 1328000
|
write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency 1328000
|
||||||
write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold 0
|
write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold 59
|
||||||
write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold 73
|
write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency 1795000
|
||||||
write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency 1836000
|
write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/spc_threshold 62
|
||||||
write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/lcpi_threshold 0
|
|
||||||
write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/spc_threshold 68
|
|
||||||
write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency 2363000
|
write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency 2363000
|
||||||
write /proc/vendor_sched/pmu_poll_time 10
|
write /proc/vendor_sched/pmu_poll_time 10
|
||||||
|
|
||||||
|
|
|
@ -306,3 +306,12 @@ on property:persist.vendor.usb.displayport.enabled=1
|
||||||
on property:persist.vendor.usb.displayport.enabled=0
|
on property:persist.vendor.usb.displayport.enabled=0
|
||||||
write /sys/module/exynos_drm/parameters/dp_enabled 0
|
write /sys/module/exynos_drm/parameters/dp_enabled 0
|
||||||
write /sys/class/typec/port0/port0.0/mode1/active "no"
|
write /sys/class/typec/port0/port0.0/mode1/active "no"
|
||||||
|
|
||||||
|
on property:persist.sys.hdcp_checking=always
|
||||||
|
write /sys/module/exynos_hdcp2/parameters/max_ver 2
|
||||||
|
|
||||||
|
on property:persist.sys.hdcp_checking="drm-only"
|
||||||
|
write /sys/module/exynos_hdcp2/parameters/max_ver 2
|
||||||
|
|
||||||
|
on property:persist.sys.hdcp_checking=never
|
||||||
|
write /sys/module/exynos_hdcp2/parameters/max_ver 0
|
||||||
|
|
|
@ -157,6 +157,11 @@
|
||||||
/dev/acd-com.google.bt 0660 system system
|
/dev/acd-com.google.bt 0660 system system
|
||||||
/dev/acd-com.google.bt.non_wake_up 0660 system system
|
/dev/acd-com.google.bt.non_wake_up 0660 system system
|
||||||
|
|
||||||
|
# AoC Bluetooth Offload
|
||||||
|
/dev/acd-chre_bt_offload_ctl 0660 bluetooth bluetooth
|
||||||
|
/dev/acd-chre_bt_offload_data_tx 0220 bluetooth bluetooth
|
||||||
|
/dev/acd-chre_bt_offload_data_rx 0440 bluetooth bluetooth
|
||||||
|
|
||||||
# LWIS
|
# LWIS
|
||||||
/dev/lwis* 0660 system system
|
/dev/lwis* 0660 system system
|
||||||
|
|
||||||
|
|
|
@ -51,16 +51,23 @@
|
||||||
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
|
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
|
||||||
</exception>
|
</exception>
|
||||||
|
|
||||||
|
<exception package="com.google.android.GoogleCamera">
|
||||||
|
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||||
|
</exception>
|
||||||
|
|
||||||
<exception package="com.google.android.apps.camera.services">
|
<exception 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 -->
|
<!-- 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"/>
|
||||||
</exception>
|
</exception>
|
||||||
|
|
||||||
|
<exception package="com.google.android.apps.pixel.creativeassistant">
|
||||||
|
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||||
|
</exception>
|
||||||
|
|
||||||
<exception package="com.google.android.apps.cbrsnetworkmonitor">
|
<exception package="com.google.android.apps.cbrsnetworkmonitor">
|
||||||
<!-- Location access to create CBRS geofences-->
|
<!-- Location access to create CBRS geofences-->
|
||||||
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="true"/>
|
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="true"/>
|
||||||
|
@ -73,6 +80,10 @@
|
||||||
<permission name="android.permission.ACCESS_BACKGROUND_LOCATION" fixed="false"/>
|
<permission name="android.permission.ACCESS_BACKGROUND_LOCATION" fixed="false"/>
|
||||||
<!-- Used to call ActivityTransition API for Smart PNO -->
|
<!-- Used to call ActivityTransition API for Smart PNO -->
|
||||||
<permission name="android.permission.ACTIVITY_RECOGNITION" fixed="false"/>
|
<permission name="android.permission.ACTIVITY_RECOGNITION" fixed="false"/>
|
||||||
|
<!-- Used to display notifications for Spectrum Speedboost and Satellite eSOS -->
|
||||||
|
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||||
|
<!-- Used by Bluetooth Module to collect bluetooth info -->
|
||||||
|
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
|
||||||
</exception>
|
</exception>
|
||||||
|
|
||||||
<exception
|
<exception
|
||||||
|
@ -116,6 +127,8 @@
|
||||||
<exception package="com.google.android.wfcactivation">
|
<exception package="com.google.android.wfcactivation">
|
||||||
<!-- SMS -->
|
<!-- SMS -->
|
||||||
<permission name="android.permission.RECEIVE_WAP_PUSH" fixed="false"/>
|
<permission name="android.permission.RECEIVE_WAP_PUSH" fixed="false"/>
|
||||||
|
<!-- Notifications -->
|
||||||
|
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||||
</exception>
|
</exception>
|
||||||
|
|
||||||
<exception package="com.google.android.apps.accessibility.voiceaccess">
|
<exception package="com.google.android.apps.accessibility.voiceaccess">
|
||||||
|
@ -143,6 +156,11 @@
|
||||||
<!-- Notifications -->
|
<!-- Notifications -->
|
||||||
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||||
</exception>
|
</exception>
|
||||||
|
<exception
|
||||||
|
package="com.google.android.apps.work.oobconfig">
|
||||||
|
<!-- Notifications -->
|
||||||
|
<permission name="android.permission.POST_NOTIFICATIONS" fixed="true"/>
|
||||||
|
</exception>
|
||||||
<exception
|
<exception
|
||||||
package="com.google.android.euicc">
|
package="com.google.android.euicc">
|
||||||
<!-- Notifications -->
|
<!-- Notifications -->
|
||||||
|
|
|
@ -53,4 +53,8 @@ PRODUCT_VENDOR_PROPERTIES += \
|
||||||
# force enable MTE.
|
# force enable MTE.
|
||||||
ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT)))
|
ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT)))
|
||||||
PRODUCT_PRODUCT_PROPERTIES += ro.arm64.memtag.bootctl_supported=1
|
PRODUCT_PRODUCT_PROPERTIES += ro.arm64.memtag.bootctl_supported=1
|
||||||
|
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.se=off
|
||||||
|
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.google.android.bluetooth=off
|
||||||
|
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.app.com.android.nfc=off
|
||||||
|
PRODUCT_PRODUCT_PROPERTIES += persist.arm64.memtag.system_server=off
|
||||||
endif
|
endif
|
||||||
|
|
176
device.mk
176
device.mk
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
include device/google/gs-common/device.mk
|
include device/google/gs-common/device.mk
|
||||||
include device/google/gs-common/gs_watchdogd/watchdog.mk
|
include device/google/gs-common/gs_watchdogd/watchdog.mk
|
||||||
include device/google/gs-common/ramdump/ramdump.mk
|
include device/google/gs-common/ramdump_and_coredump/ramdump_and_coredump.mk
|
||||||
include device/google/gs-common/soc/soc.mk
|
include device/google/gs-common/soc/soc.mk
|
||||||
include device/google/gs-common/modem/modem.mk
|
include device/google/gs-common/modem/modem.mk
|
||||||
include device/google/gs-common/aoc/aoc.mk
|
include device/google/gs-common/aoc/aoc.mk
|
||||||
|
@ -26,6 +26,7 @@ include device/google/gs-common/storage/storage.mk
|
||||||
include device/google/gs-common/thermal/dump/thermal.mk
|
include device/google/gs-common/thermal/dump/thermal.mk
|
||||||
include device/google/gs-common/thermal/thermal_hal/device.mk
|
include device/google/gs-common/thermal/thermal_hal/device.mk
|
||||||
include device/google/gs-common/performance/perf.mk
|
include device/google/gs-common/performance/perf.mk
|
||||||
|
include device/google/gs-common/power/power.mk
|
||||||
include device/google/gs-common/pixel_metrics/pixel_metrics.mk
|
include device/google/gs-common/pixel_metrics/pixel_metrics.mk
|
||||||
include device/google/gs-common/soc/freq.mk
|
include device/google/gs-common/soc/freq.mk
|
||||||
include device/google/gs-common/gps/dump/log.mk
|
include device/google/gs-common/gps/dump/log.mk
|
||||||
|
@ -41,6 +42,9 @@ 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
|
||||||
|
include device/google/gs-common/recorder/recorder.mk
|
||||||
|
include device/google/gs-common/fingerprint/fingerprint.mk
|
||||||
|
|
||||||
include device/google/zumapro/dumpstate/item.mk
|
include device/google/zumapro/dumpstate/item.mk
|
||||||
|
|
||||||
|
@ -65,8 +69,6 @@ ifeq ($(USE_PIXEL_GRALLOC),true)
|
||||||
PRODUCT_SOONG_NAMESPACES += hardware/google/gchips/GrallocHAL
|
PRODUCT_SOONG_NAMESPACES += hardware/google/gchips/GrallocHAL
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# TODO(b/272725898): Needs to check with owner later
|
|
||||||
$(warning hardware/google/graphics/zuma set to zuma on zumapro target)
|
|
||||||
PRODUCT_SOONG_NAMESPACES += \
|
PRODUCT_SOONG_NAMESPACES += \
|
||||||
hardware/google/av \
|
hardware/google/av \
|
||||||
hardware/google/gchips \
|
hardware/google/gchips \
|
||||||
|
@ -179,7 +181,6 @@ PRODUCT_PRODUCT_PROPERTIES += \
|
||||||
bluetooth.profile.asha.central.enabled=true \
|
bluetooth.profile.asha.central.enabled=true \
|
||||||
bluetooth.profile.a2dp.source.enabled=true \
|
bluetooth.profile.a2dp.source.enabled=true \
|
||||||
bluetooth.profile.avrcp.target.enabled=true \
|
bluetooth.profile.avrcp.target.enabled=true \
|
||||||
bluetooth.profile.bap.broadcast.assist.enabled=true \
|
|
||||||
bluetooth.profile.bap.unicast.server.enabled=true \
|
bluetooth.profile.bap.unicast.server.enabled=true \
|
||||||
bluetooth.profile.bas.client.enabled=true \
|
bluetooth.profile.bas.client.enabled=true \
|
||||||
bluetooth.profile.csip.set_coordinator.enabled=true \
|
bluetooth.profile.csip.set_coordinator.enabled=true \
|
||||||
|
@ -213,7 +214,79 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
persist.vendor.usb.displayport.enabled=1
|
persist.vendor.usb.displayport.enabled=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
|
persist.sys.hdcp_checking=always
|
||||||
|
|
||||||
USE_LASSEN_OEMHOOK := true
|
USE_LASSEN_OEMHOOK := true
|
||||||
|
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||||
|
# The "power-anomaly-sitril" is added into PRODUCT_SOONG_NAMESPACES when
|
||||||
|
# $(USE_LASSEN_OEMHOOK) is true and $(BOARD_WITHOUT_RADIO) is not true.
|
||||||
|
PRODUCT_SOONG_NAMESPACES += vendor/google/tools/power-anomaly-sitril
|
||||||
|
|
||||||
|
$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/common/device-vendor.mk)
|
||||||
|
|
||||||
|
# modem_ml_svc_sit daemon
|
||||||
|
PRODUCT_PACKAGES += modem_ml_svc_sit
|
||||||
|
|
||||||
|
# TODO: b/350624523 - Add back modem ML TFLite service after it is ready.
|
||||||
|
# ifeq (,$(filter aosp_%,$(TARGET_PRODUCT)))
|
||||||
|
# # Modem ML TFLite service.
|
||||||
|
# PRODUCT_PACKAGES += modemml-tflite-service \
|
||||||
|
# libtensorflowlite_jni
|
||||||
|
|
||||||
|
# # Allow TFLite service modules to be installed to the system partition
|
||||||
|
# PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \
|
||||||
|
# system/lib64/libtensorflowlite_jni.so
|
||||||
|
|
||||||
|
# PRODUCT_SYSTEM_SERVER_JARS += system_ext:modemml-tflite-service
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# modem ML models configs
|
||||||
|
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
device/google/zumapro/modem_ml/modem_ml_nnapi_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf \
|
||||||
|
device/google/zumapro/modem_ml/modem_ml_tflite_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_tflite_models.conf
|
||||||
|
else
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
device/google/zumapro/modem_ml/modem_ml_nnapi_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf \
|
||||||
|
device/google/zumapro/modem_ml/modem_ml_tflite_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_tflite_models.conf
|
||||||
|
endif
|
||||||
|
|
||||||
|
# modem logging binary/configs
|
||||||
|
PRODUCT_PACKAGES += modem_logging_control
|
||||||
|
|
||||||
|
# libeomservice_proxy binary/configs
|
||||||
|
PRODUCT_PACKAGES += liboemservice_proxy_default
|
||||||
|
|
||||||
|
# modem logging configs
|
||||||
|
PRODUCT_PACKAGES += \
|
||||||
|
logging.conf \
|
||||||
|
default.cfg \
|
||||||
|
default.nprf \
|
||||||
|
default_metrics.xml \
|
||||||
|
Pixel_stability.cfg \
|
||||||
|
Pixel_stability.nprf \
|
||||||
|
extensive_logging.conf
|
||||||
|
|
||||||
|
# Vendor modem extensive logging default property
|
||||||
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
|
persist.vendor.modem.extensive_logging_enabled=false
|
||||||
|
|
||||||
|
# Pixel Logger
|
||||||
|
include hardware/google/pixel/PixelLogger/PixelLogger.mk
|
||||||
|
|
||||||
|
# Use Lassen specifc Shared Modem Platform
|
||||||
|
SHARED_MODEM_PLATFORM_VENDOR := lassen
|
||||||
|
|
||||||
|
else # ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||||
|
|
||||||
|
# Pixel Logger
|
||||||
|
BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/logger_app
|
||||||
|
|
||||||
|
endif # ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||||
|
|
||||||
|
# Shared Modem Platform
|
||||||
|
include device/google/gs-common/modem/shared_modem_platform/shared_modem_platform.mk
|
||||||
|
|
||||||
# Use for GRIL
|
# Use for GRIL
|
||||||
USES_LASSEN_MODEM := true
|
USES_LASSEN_MODEM := true
|
||||||
|
@ -222,6 +295,12 @@ USE_WHI_GRIL_RECOVERY := true
|
||||||
ifeq ($(USES_GOOGLE_DIALER_CARRIER_SETTINGS),true)
|
ifeq ($(USES_GOOGLE_DIALER_CARRIER_SETTINGS),true)
|
||||||
USE_GOOGLE_DIALER := true
|
USE_GOOGLE_DIALER := true
|
||||||
USE_GOOGLE_CARRIER_SETTINGS := true
|
USE_GOOGLE_CARRIER_SETTINGS := true
|
||||||
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
|
ro.vendor.uses_google_dialer_carrier_settings=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USES_GOOGLE_PREBUILT_MODEM_SVC),true)
|
||||||
|
USE_GOOGLE_PREBUILT_MODEM_SVC := true
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Audio client implementation for RIL
|
# Audio client implementation for RIL
|
||||||
|
@ -292,9 +371,8 @@ PRODUCT_COPY_FILES += \
|
||||||
frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
|
frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
|
||||||
frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
|
frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
|
||||||
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
|
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
|
||||||
frameworks/native/data/etc/android.software.contextualsearch.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.contextualsearch.xml \
|
frameworks/native/data/etc/android.software.vulkan.deqp.level-2024-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
|
||||||
frameworks/native/data/etc/android.software.vulkan.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
|
frameworks/native/data/etc/android.software.opengles.deqp.level-2024-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml
|
||||||
frameworks/native/data/etc/android.software.opengles.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -448,7 +526,7 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
persist.vendor.sys.silentlog.tcp = "On" \
|
persist.vendor.sys.silentlog.tcp = "On" \
|
||||||
ro.vendor.cbd.modem_removable = "1" \
|
ro.vendor.cbd.modem_removable = "1" \
|
||||||
ro.vendor.cbd.modem_type = "s5100sit" \
|
ro.vendor.cbd.modem_type = "s5100sit" \
|
||||||
persist.vendor.sys.modem.logging.br_num=5 \
|
persist.vendor.sys.modem.logging.br_num=10 \
|
||||||
persist.vendor.sys.modem.logging.enable=true
|
persist.vendor.sys.modem.logging.enable=true
|
||||||
|
|
||||||
# Enable silent CP crash handling
|
# Enable silent CP crash handling
|
||||||
|
@ -568,10 +646,6 @@ PRODUCT_PROPERTY_OVERRIDES += aaudio.hw_burst_min_usec=2000
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
com.android.future.usb.accessory
|
com.android.future.usb.accessory
|
||||||
|
|
||||||
PRODUCT_PACKAGES += \
|
|
||||||
android.hardware.graphics.mapper@4.0-impl \
|
|
||||||
android.hardware.graphics.allocator-V1-service
|
|
||||||
|
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
android.hardware.memtrack-service.pixel \
|
android.hardware.memtrack-service.pixel \
|
||||||
libion_exynos \
|
libion_exynos \
|
||||||
|
@ -803,6 +877,8 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
PRODUCT_PROPERTY_OVERRIDES += \
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
debug.stagefright.c2inputsurface=-1 \
|
debug.stagefright.c2inputsurface=-1 \
|
||||||
|
|
||||||
|
PRODUCT_PROPERTY_OVERRIDES += media.c2.hal.selection=aidl
|
||||||
|
|
||||||
# 2. OpenMAX IL
|
# 2. OpenMAX IL
|
||||||
PRODUCT_COPY_FILES += \
|
PRODUCT_COPY_FILES += \
|
||||||
device/google/zumapro/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
|
device/google/zumapro/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
|
||||||
|
@ -851,8 +927,6 @@ PRODUCT_SOONG_NAMESPACES += \
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
trusty_metricsd
|
trusty_metricsd
|
||||||
|
|
||||||
# TODO(b/272725898): Needs to check with owner later
|
|
||||||
$(warning displaycolor_platform set to zuma on zumapro target)
|
|
||||||
$(call soong_config_set,google_displaycolor,displaycolor_platform,zuma)
|
$(call soong_config_set,google_displaycolor,displaycolor_platform,zuma)
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
android.hardware.composer.hwc3-service.pixel \
|
android.hardware.composer.hwc3-service.pixel \
|
||||||
|
@ -945,10 +1019,6 @@ USE_EARLY_SEND_DEVICE_INFO := true
|
||||||
#$(call inherit-product, vendor/google_devices/telephony/common/device-vendor.mk)
|
#$(call inherit-product, vendor/google_devices/telephony/common/device-vendor.mk)
|
||||||
#$(call inherit-product, vendor/google_devices/zumapro/proprietary/device-vendor.mk)
|
#$(call inherit-product, vendor/google_devices/zumapro/proprietary/device-vendor.mk)
|
||||||
|
|
||||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
|
||||||
$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/common/device-vendor.mk)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk)
|
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk)
|
||||||
#$(call inherit-product, hardware/google_devices/exynos5/exynos5.mk)
|
#$(call inherit-product, hardware/google_devices/exynos5/exynos5.mk)
|
||||||
#$(call inherit-product-if-exists, hardware/google_devices/zumapro/zumapro.mk)
|
#$(call inherit-product-if-exists, hardware/google_devices/zumapro/zumapro.mk)
|
||||||
|
@ -963,42 +1033,6 @@ PRODUCT_COPY_FILES += \
|
||||||
device/google/zumapro/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml \
|
device/google/zumapro/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml \
|
||||||
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
|
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
|
||||||
|
|
||||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
|
||||||
# modem_svc_sit daemon
|
|
||||||
PRODUCT_PACKAGES += modem_svc_sit
|
|
||||||
|
|
||||||
# modem_ml_svc_sit daemon
|
|
||||||
PRODUCT_PACKAGES += modem_ml_svc_sit
|
|
||||||
|
|
||||||
# modem ML models configs
|
|
||||||
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
|
|
||||||
PRODUCT_COPY_FILES += \
|
|
||||||
device/google/zumapro/modem_ml/modem_ml_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf
|
|
||||||
else
|
|
||||||
PRODUCT_COPY_FILES += \
|
|
||||||
device/google/zumapro/modem_ml/modem_ml_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf
|
|
||||||
endif
|
|
||||||
|
|
||||||
# modem logging binary/configs
|
|
||||||
PRODUCT_PACKAGES += modem_logging_control
|
|
||||||
|
|
||||||
# libeomservice_proxy binary/configs
|
|
||||||
PRODUCT_PACKAGES += liboemservice_proxy_default
|
|
||||||
|
|
||||||
# modem logging configs
|
|
||||||
PRODUCT_COPY_FILES += \
|
|
||||||
device/google/zumapro/radio/config/logging.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/logging.conf \
|
|
||||||
device/google/zumapro/radio/config/default.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.cfg \
|
|
||||||
device/google/zumapro/radio/config/default.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.nprf \
|
|
||||||
device/google/zumapro/radio/config/default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default_metrics.xml
|
|
||||||
# modem extensive logging config
|
|
||||||
PRODUCT_PACKAGES += \
|
|
||||||
extensive_logging.conf
|
|
||||||
# Vendor modem extensive logging default property
|
|
||||||
PRODUCT_PROPERTY_OVERRIDES += \
|
|
||||||
persist.vendor.modem.extensive_logging_enabled=false
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Vibrator Diag
|
# Vibrator Diag
|
||||||
PRODUCT_PACKAGES_DEBUG += \
|
PRODUCT_PACKAGES_DEBUG += \
|
||||||
diag-vibrator \
|
diag-vibrator \
|
||||||
|
@ -1027,12 +1061,22 @@ $(call soong_config_set,aoc,target_product,$(TARGET_PRODUCT))
|
||||||
|
|
||||||
#
|
#
|
||||||
## Audio properties
|
## Audio properties
|
||||||
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
|
persist.vendor.audio.cca.unsupported=false
|
||||||
|
|
||||||
PRODUCT_PROPERTY_OVERRIDES += \
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
ro.config.vc_call_vol_steps=7 \
|
ro.config.vc_call_vol_steps=7 \
|
||||||
ro.config.media_vol_steps=25 \
|
|
||||||
ro.audio.monitorRotation = true \
|
ro.audio.monitorRotation = true \
|
||||||
ro.audio.offload_wakelock=false
|
ro.audio.offload_wakelock=false
|
||||||
|
|
||||||
|
ifneq (,$(OVERRIDE_MEDIA_VOLUME_STEPS))
|
||||||
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
|
ro.config.media_vol_steps=$(OVERRIDE_MEDIA_VOLUME_STEPS)
|
||||||
|
else
|
||||||
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
|
ro.config.media_vol_steps=25
|
||||||
|
endif
|
||||||
|
|
||||||
# vndservicemanager and vndservice no longer included in API 30+, however needed by vendor code.
|
# vndservicemanager and vndservice no longer included in API 30+, however needed by vendor code.
|
||||||
# See b/148807371 for reference
|
# See b/148807371 for reference
|
||||||
PRODUCT_PACKAGES += vndservicemanager
|
PRODUCT_PACKAGES += vndservicemanager
|
||||||
|
@ -1081,7 +1125,9 @@ PRODUCT_SOONG_NAMESPACES += \
|
||||||
vendor/google_devices/zumapro/proprietary/gchips/tpu/darwinn_logging_service \
|
vendor/google_devices/zumapro/proprietary/gchips/tpu/darwinn_logging_service \
|
||||||
vendor/google_devices/zumapro/proprietary/gchips/tpu/nnapi_stable_aidl \
|
vendor/google_devices/zumapro/proprietary/gchips/tpu/nnapi_stable_aidl \
|
||||||
vendor/google_devices/zumapro/proprietary/gchips/tpu/aidl \
|
vendor/google_devices/zumapro/proprietary/gchips/tpu/aidl \
|
||||||
vendor/google_devices/zumapro/proprietary/gchips/tpu/hal
|
vendor/google_devices/zumapro/proprietary/gchips/tpu/hal \
|
||||||
|
vendor/google_devices/zumapro/proprietary/gchips/tpu/tachyon/api \
|
||||||
|
vendor/google_devices/zumapro/proprietary/gchips/tpu/tachyon/service
|
||||||
# TPU firmware
|
# TPU firmware
|
||||||
PRODUCT_PACKAGES += edgetpu-rio.fw
|
PRODUCT_PACKAGES += edgetpu-rio.fw
|
||||||
|
|
||||||
|
@ -1124,16 +1170,6 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
# Project
|
# Project
|
||||||
include hardware/google/pixel/common/pixel-common-device.mk
|
include hardware/google/pixel/common/pixel-common-device.mk
|
||||||
|
|
||||||
# Pixel Logger
|
|
||||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
|
||||||
include hardware/google/pixel/PixelLogger/PixelLogger.mk
|
|
||||||
else
|
|
||||||
BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/logger_app
|
|
||||||
endif
|
|
||||||
|
|
||||||
# sscoredump
|
|
||||||
include hardware/google/pixel/sscoredump/device.mk
|
|
||||||
|
|
||||||
# RadioExt Version
|
# RadioExt Version
|
||||||
USES_RADIOEXT_V1_7 = true
|
USES_RADIOEXT_V1_7 = true
|
||||||
|
|
||||||
|
@ -1180,8 +1216,8 @@ PRODUCT_COPY_FILES += \
|
||||||
device/google/zumapro/telephony/sats2.dat:$(TARGET_COPY_OUT_VENDOR)/etc/telephony/sats2.dat
|
device/google/zumapro/telephony/sats2.dat:$(TARGET_COPY_OUT_VENDOR)/etc/telephony/sats2.dat
|
||||||
|
|
||||||
# Touch service
|
# Touch service
|
||||||
include hardware/google/pixel/input/twoshay.mk
|
|
||||||
include device/google/gs-common/touch/twoshay/aidl_zuma.mk
|
include device/google/gs-common/touch/twoshay/aidl_zuma.mk
|
||||||
|
include device/google/gs-common/touch/twoshay/twoshay.mk
|
||||||
|
|
||||||
PRODUCT_CHECK_VENDOR_SEAPP_VIOLATIONS := true
|
PRODUCT_CHECK_VENDOR_SEAPP_VIOLATIONS := true
|
||||||
|
|
||||||
|
@ -1191,3 +1227,9 @@ PRODUCT_CHECK_DEV_TYPE_VIOLATIONS := true
|
||||||
# TODO(b/322518837): Remove the property override once the flag is launched.
|
# TODO(b/322518837): Remove the property override once the flag is launched.
|
||||||
PRODUCT_PROPERTY_OVERRIDES += \
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
debug.bugle.enable_emergency_satellite_messaging=true
|
debug.bugle.enable_emergency_satellite_messaging=true
|
||||||
|
|
||||||
|
# Allow longer timeout for incident report generation in bugreport
|
||||||
|
# Overriding in /product partition instead of /vendor intentionally,
|
||||||
|
# since it can't be overridden from /vendor.
|
||||||
|
PRODUCT_PRODUCT_PROPERTIES += \
|
||||||
|
dumpstate.strict_run=false
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
</hal>
|
</hal>
|
||||||
<hal format="aidl" optional="true">
|
<hal format="aidl" optional="true">
|
||||||
<name>com.google.hardware.pixel.display</name>
|
<name>com.google.hardware.pixel.display</name>
|
||||||
<version>10</version>
|
<version>12</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>IDisplay</name>
|
<name>IDisplay</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
|
|
|
@ -299,7 +299,8 @@ void dumpTcpc() {
|
||||||
|
|
||||||
void dumpPdEngine() {
|
void dumpPdEngine() {
|
||||||
const char* pdEngine [][2] {
|
const char* pdEngine [][2] {
|
||||||
{"PD Engine logbuffer", "/dev/logbuffer_usbpd"},
|
{"TCPC logbuffer", "/dev/logbuffer_usbpd"},
|
||||||
|
{"pogo_transport logbuffer", "/dev/logbuffer_pogo_transport"},
|
||||||
{"PPS-google_cpm logbuffer", "/dev/logbuffer_cpm"},
|
{"PPS-google_cpm logbuffer", "/dev/logbuffer_cpm"},
|
||||||
};
|
};
|
||||||
const char* ppsDcMsg = "PPS-dc logbuffer";
|
const char* ppsDcMsg = "PPS-dc logbuffer";
|
||||||
|
@ -326,6 +327,7 @@ void dumpBatteryHealth() {
|
||||||
{"TTF stats", "/sys/class/power_supply/battery/ttf_stats"},
|
{"TTF stats", "/sys/class/power_supply/battery/ttf_stats"},
|
||||||
{"aacr_state", "/sys/class/power_supply/battery/aacr_state"},
|
{"aacr_state", "/sys/class/power_supply/battery/aacr_state"},
|
||||||
{"pairing_state", "/sys/class/power_supply/battery/pairing_state"},
|
{"pairing_state", "/sys/class/power_supply/battery/pairing_state"},
|
||||||
|
{"fwupdate", "/dev/logbuffer_max77779_fwupdate"}
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* maxqName = "maxq logbuffer";
|
const char* maxqName = "maxq logbuffer";
|
||||||
|
@ -475,6 +477,11 @@ void dumpChgUserDebug() {
|
||||||
const std::string debugfs = "/d/";
|
const std::string debugfs = "/d/";
|
||||||
const char *maxFgDir = "/d/maxfg";
|
const char *maxFgDir = "/d/maxfg";
|
||||||
const char *maxFgStrMatch = "maxfg";
|
const char *maxFgStrMatch = "maxfg";
|
||||||
|
const char *maxBaseFgDir = "/d/maxfg_base";
|
||||||
|
const char *maxBaseFgStrMatch = "maxfg_base";
|
||||||
|
const char *maxSecFgDir = "/d/maxfg_secondary";
|
||||||
|
const char *maxSecFgStrMatch = "maxfg_secondary";
|
||||||
|
const char *max77779FgDir = "/d/max77779fg";
|
||||||
const char *maxFg77779StrMatch = "max77779fg";
|
const char *maxFg77779StrMatch = "max77779fg";
|
||||||
const char *chgTblName = "Charging table dump";
|
const char *chgTblName = "Charging table dump";
|
||||||
const char *chgTblDir = "/d/google_battery/chg_raw_profile";
|
const char *chgTblDir = "/d/google_battery/chg_raw_profile";
|
||||||
|
@ -495,6 +502,11 @@ void dumpChgUserDebug() {
|
||||||
"debug_registers",
|
"debug_registers",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char *max1720xFgInfo [] {
|
||||||
|
"registers",
|
||||||
|
"nv_registers",
|
||||||
|
};
|
||||||
|
|
||||||
if (isUserBuild())
|
if (isUserBuild())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -504,10 +516,19 @@ void dumpChgUserDebug() {
|
||||||
for (auto & directory : maxFgInfo) {
|
for (auto & directory : maxFgInfo) {
|
||||||
printValuesOfDirectory(directory, debugfs, maxFgStrMatch);
|
printValuesOfDirectory(directory, debugfs, maxFgStrMatch);
|
||||||
}
|
}
|
||||||
} else {
|
} else if (isValidDir(max77779FgDir)) {
|
||||||
for (auto & directory : max77779FgInfo) {
|
for (auto & directory : max77779FgInfo) {
|
||||||
printValuesOfDirectory(directory, debugfs, maxFg77779StrMatch);
|
printValuesOfDirectory(directory, debugfs, maxFg77779StrMatch);
|
||||||
}
|
}
|
||||||
|
} else if (isValidDir(maxBaseFgDir)) {
|
||||||
|
for (auto & directory : max77779FgInfo) {
|
||||||
|
printValuesOfDirectory(directory, debugfs, maxBaseFgStrMatch);
|
||||||
|
}
|
||||||
|
if (isValidDir(maxSecFgDir)) {
|
||||||
|
for (auto & directory : max1720xFgInfo) {
|
||||||
|
printValuesOfDirectory(directory, debugfs, maxSecFgStrMatch);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -755,6 +776,11 @@ void dumpMitigationDirs() {
|
||||||
};
|
};
|
||||||
const int eraseCnt[] = {6, 6, 4, 0};
|
const int eraseCnt[] = {6, 6, 4, 0};
|
||||||
const bool useTitleRow[] = {true, true, true, false};
|
const bool useTitleRow[] = {true, true, true, false};
|
||||||
|
const char *vimon_name = "vimon_buff";
|
||||||
|
const char delimiter = '\n';
|
||||||
|
const int vimon_len = strlen(vimon_name);
|
||||||
|
const double VIMON_VMULT = 7.8122e-5;
|
||||||
|
const double VIMON_IMULT = 7.8125e-4;
|
||||||
|
|
||||||
std::vector<std::string> files;
|
std::vector<std::string> files;
|
||||||
std::string content;
|
std::string content;
|
||||||
|
@ -762,6 +788,9 @@ void dumpMitigationDirs() {
|
||||||
std::string source;
|
std::string source;
|
||||||
std::string subModuleName;
|
std::string subModuleName;
|
||||||
std::string readout;
|
std::string readout;
|
||||||
|
char *endptr;
|
||||||
|
|
||||||
|
bool vimon_found = false;
|
||||||
|
|
||||||
for (int i = 0; i < paramCount; i++) {
|
for (int i = 0; i < paramCount; i++) {
|
||||||
printTitle(titles[i]);
|
printTitle(titles[i]);
|
||||||
|
@ -779,11 +808,40 @@ void dumpMitigationDirs() {
|
||||||
|
|
||||||
readout = android::base::Trim(content);
|
readout = android::base::Trim(content);
|
||||||
|
|
||||||
|
if (strncmp(file.c_str(), vimon_name, vimon_len) == 0)
|
||||||
|
vimon_found = true;
|
||||||
|
|
||||||
subModuleName = std::string(file);
|
subModuleName = std::string(file);
|
||||||
subModuleName.erase(subModuleName.find(paramSuffix[i]), eraseCnt[i]);
|
subModuleName.erase(subModuleName.find(paramSuffix[i]), eraseCnt[i]);
|
||||||
|
|
||||||
if (useTitleRow[i]) {
|
if (useTitleRow[i]) {
|
||||||
printf("%s \t%s\n", subModuleName.c_str(), readout.c_str());
|
printf("%s \t%s\n", subModuleName.c_str(), readout.c_str());
|
||||||
|
} else if (vimon_found) {
|
||||||
|
|
||||||
|
std::vector<std::string> tokens;
|
||||||
|
std::istringstream tokenStream(readout);
|
||||||
|
std::string token;
|
||||||
|
|
||||||
|
while (std::getline(tokenStream, token, delimiter)) {
|
||||||
|
tokens.push_back(token);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool oddEntry = true;
|
||||||
|
for (auto &hexval : tokens) {
|
||||||
|
int val = strtol(hexval.c_str(), &endptr, 16);
|
||||||
|
if (*endptr != '\0') {
|
||||||
|
printf("invalid vimon readout\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (oddEntry) {
|
||||||
|
int vbatt = int(1000 * (val * VIMON_VMULT));
|
||||||
|
printf("vimon vbatt: %d ", vbatt);
|
||||||
|
} else {
|
||||||
|
int ibatt = int(1000 * (val * VIMON_IMULT));
|
||||||
|
printf("ibatt: %d\n", ibatt);
|
||||||
|
}
|
||||||
|
oddEntry = !oddEntry;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
printf("%s=%s\n", subModuleName.c_str(), readout.c_str());
|
printf("%s=%s\n", subModuleName.c_str(), readout.c_str());
|
||||||
}
|
}
|
||||||
|
@ -827,6 +885,13 @@ void dumpIrqDurationCounts() {
|
||||||
"s2mpg15-odpm/iio:device0/lpf_current",
|
"s2mpg15-odpm/iio:device0/lpf_current",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char *lpfCurrentDirsAlt[] = {
|
||||||
|
"/sys/devices/platform/acpm_mfd_bus@15500000/i2c-7/7-001f/s2mpg14-meter/"
|
||||||
|
"s2mpg14-odpm/iio:device0/lpf_current",
|
||||||
|
"/sys/devices/platform/acpm_mfd_bus@15510000/i2c-8/8-002f/s2mpg15-meter/"
|
||||||
|
"s2mpg15-odpm/iio:device1/lpf_current",
|
||||||
|
};
|
||||||
|
|
||||||
bool titlesInitialized = false;
|
bool titlesInitialized = false;
|
||||||
|
|
||||||
std::vector<std::string> channelNames;
|
std::vector<std::string> channelNames;
|
||||||
|
@ -889,7 +954,9 @@ void dumpIrqDurationCounts() {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < PWRWARN_MAX; i++) {
|
for (int i = 0; i < PWRWARN_MAX; i++) {
|
||||||
if (!android::base::ReadFileToString(lpfCurrentDirs[i], &content)) {
|
if (!android::base::ReadFileToString(lpfCurrentDirs[i], &content) &&
|
||||||
|
!android::base::ReadFileToString(lpfCurrentDirsAlt[i], &content)) {
|
||||||
|
printf("Cannot find %s\n", lpfCurrentDirs[i]);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -927,8 +994,27 @@ void dumpIrqDurationCounts() {
|
||||||
}
|
}
|
||||||
channelNameSuffix = "";
|
channelNameSuffix = "";
|
||||||
|
|
||||||
|
if (pmicSel >= PWRWARN_MAX) {
|
||||||
|
printf("invalid index: pmicSel >= pwrwarnCode size\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i - offset >= pwrwarnCode[pmicSel].size()) {
|
||||||
|
printf("invalid index: i - offset >= pwrwarnCode size\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
code = pwrwarnCode[pmicSel][i - offset];
|
code = pwrwarnCode[pmicSel][i - offset];
|
||||||
|
|
||||||
|
if (i - offset >= pwrwarnThreshold[pmicSel].size()) {
|
||||||
|
printf("invalid index: i - offset >= pwrwarnThreshold size\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
threshold = pwrwarnThreshold[pmicSel][i - offset];
|
threshold = pwrwarnThreshold[pmicSel][i - offset];
|
||||||
|
|
||||||
|
if (i - offset >= lpfCurrentVals[pmicSel].size()) {
|
||||||
|
printf("invalid index: i - offset >= lpfCurrentVals size\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
current = lpfCurrentVals[pmicSel][i - offset];
|
current = lpfCurrentVals[pmicSel][i - offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,9 @@ on init
|
||||||
chown system system /dev/battery_history
|
chown system system /dev/battery_history
|
||||||
chmod 0644 /dev/battery_history
|
chmod 0644 /dev/battery_history
|
||||||
|
|
||||||
|
chown system system /dev/maxfg_history
|
||||||
|
chmod 0644 /dev/maxfg_history
|
||||||
|
|
||||||
# Charge stats (write 0)
|
# Charge stats (write 0)
|
||||||
chown system system /sys/class/power_supply/battery/charge_stats
|
chown system system /sys/class/power_supply/battery/charge_stats
|
||||||
|
|
||||||
|
@ -100,11 +103,13 @@ on early-boot
|
||||||
chown system system /dev/logbuffer_ttf
|
chown system system /dev/logbuffer_ttf
|
||||||
chown system system /dev/logbuffer_tcpm
|
chown system system /dev/logbuffer_tcpm
|
||||||
chown system system /dev/logbuffer_usbpd
|
chown system system /dev/logbuffer_usbpd
|
||||||
|
chown system system /dev/logbuffer_pogo_transport
|
||||||
chown system system /dev/logbuffer_wireless
|
chown system system /dev/logbuffer_wireless
|
||||||
chown system system /dev/logbuffer_pca9468
|
chown system system /dev/logbuffer_pca9468
|
||||||
chown system system /dev/logbuffer_ln8411
|
chown system system /dev/logbuffer_ln8411
|
||||||
chown system system /dev/logbuffer_cpm
|
chown system system /dev/logbuffer_cpm
|
||||||
chown system system /dev/logbuffer_wc68
|
chown system system /dev/logbuffer_wc68
|
||||||
|
chown system system /dev/logbuffer_max77779_fwupdate
|
||||||
|
|
||||||
on property:sys.boot_completed=1
|
on property:sys.boot_completed=1
|
||||||
# gvotables for dumpstate
|
# gvotables for dumpstate
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/vendor/bin/sh
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
# Add adbd to nnapi vendor cgroup. (b/222226268)
|
# Add adbd to nnapi vendor cgroup. (b/222226268)
|
||||||
echo `pidof adbd` > /proc/vendor_sched/set_task_group_nnapi
|
echo `pidof adbd` > /proc/vendor_sched/groups/nnapi/set_task_group
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<manifest version="1.0" type="device">
|
<manifest version="1.0" type="device">
|
||||||
<hal format="aidl">
|
<hal format="aidl">
|
||||||
<name>android.hardware.health</name>
|
<name>android.hardware.health</name>
|
||||||
<version>2</version>
|
<version>3</version>
|
||||||
<fqname>IHealth/default</fqname>
|
<fqname>IHealth/default</fqname>
|
||||||
</hal>
|
</hal>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
<manifest version="1.0" type="device">
|
<manifest version="1.0" type="device">
|
||||||
<hal format="hidl">
|
<!-- AIDL fragment -->
|
||||||
<name>android.hardware.media.c2</name>
|
<hal format="aidl">
|
||||||
<transport>hwbinder</transport>
|
<name>android.hardware.media.c2</name>
|
||||||
<version>1.2</version>
|
<version>1</version>
|
||||||
<interface>
|
<fqname>IComponentStore/default1</fqname>
|
||||||
<name>IComponentStore</name>
|
</hal>
|
||||||
<instance>default</instance>
|
<hal format="aidl">
|
||||||
<instance>default1</instance>
|
<name>android.hardware.media.c2</name>
|
||||||
</interface>
|
<version>1</version>
|
||||||
|
<fqname>IComponentStore/default</fqname>
|
||||||
</hal>
|
</hal>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<manifest version="1.0" type="device">
|
<manifest version="1.0" type="device">
|
||||||
|
<!-- HIDL fragment -->
|
||||||
<hal format="hidl">
|
<hal format="hidl">
|
||||||
<name>android.hardware.media.c2</name>
|
<name>android.hardware.media.c2</name>
|
||||||
<transport>hwbinder</transport>
|
<transport>hwbinder</transport>
|
||||||
|
@ -8,4 +9,10 @@
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
</interface>
|
</interface>
|
||||||
</hal>
|
</hal>
|
||||||
|
<!-- AIDL fragment -->
|
||||||
|
<hal format="aidl">
|
||||||
|
<name>android.hardware.media.c2</name>
|
||||||
|
<version>1</version>
|
||||||
|
<fqname>IComponentStore/default</fqname>
|
||||||
|
</hal>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.exynos.vp8.decoder" type="video/x-vnd.on2.vp8" >
|
<MediaCodec name="c2.exynos.vp8.decoder" type="video/x-vnd.on2.vp8" >
|
||||||
<Limit name="size" min="32x32" max="3840x2160" />
|
<Limit name="size" min="32x32" max="3840x2160" />
|
||||||
<Limit name="alignment" value="2x2" />
|
<Limit name="alignment" value="1x1" />
|
||||||
<Limit name="block-size" value="16x16" />
|
<Limit name="block-size" value="16x16" />
|
||||||
<Limit name="block-count" range="1-32400" />
|
<Limit name="block-count" range="1-32400" />
|
||||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||||
|
@ -122,7 +122,7 @@
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.exynos.vp9.decoder" type="video/x-vnd.on2.vp9" >
|
<MediaCodec name="c2.exynos.vp9.decoder" type="video/x-vnd.on2.vp9" >
|
||||||
<Limit name="size" min="64x64" max="7680x4352" />
|
<Limit name="size" min="64x64" max="7680x4352" />
|
||||||
<Limit name="alignment" value="2x2" />
|
<Limit name="alignment" value="1x1" />
|
||||||
<Limit name="block-size" value="64x64" />
|
<Limit name="block-size" value="64x64" />
|
||||||
<Limit name="block-count" range="1-8160" />
|
<Limit name="block-count" range="1-8160" />
|
||||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||||
|
@ -137,7 +137,7 @@
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.exynos.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
|
<MediaCodec name="c2.exynos.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
|
||||||
<Limit name="size" min="64x64" max="3840x2176" />
|
<Limit name="size" min="64x64" max="3840x2176" />
|
||||||
<Limit name="alignment" value="2x2" />
|
<Limit name="alignment" value="1x1" />
|
||||||
<Limit name="block-size" value="64x64" />
|
<Limit name="block-size" value="64x64" />
|
||||||
<Limit name="block-count" range="1-2040" />
|
<Limit name="block-count" range="1-2040" />
|
||||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||||
|
@ -222,7 +222,7 @@
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" >
|
<MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" >
|
||||||
<Limit name="size" min="32x32" max="3840x2160" />
|
<Limit name="size" min="32x32" max="3840x2160" />
|
||||||
<Limit name="alignment" value="2x2" />
|
<Limit name="alignment" value="1x1" />
|
||||||
<Limit name="block-size" value="16x16" />
|
<Limit name="block-size" value="16x16" />
|
||||||
<Limit name="block-count" range="1-32400" />
|
<Limit name="block-count" range="1-32400" />
|
||||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||||
|
@ -238,7 +238,7 @@
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" >
|
<MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" >
|
||||||
<Limit name="size" min="64x64" max="3840x2176" />
|
<Limit name="size" min="64x64" max="3840x2176" />
|
||||||
<Limit name="alignment" value="2x2" />
|
<Limit name="alignment" value="1x1" />
|
||||||
<Limit name="block-size" value="64x64" />
|
<Limit name="block-size" value="64x64" />
|
||||||
<Limit name="block-count" range="1-2040" />
|
<Limit name="block-count" range="1-2040" />
|
||||||
<Limit name="blocks-per-second" min="1" max="243000" />
|
<Limit name="blocks-per-second" min="1" max="243000" />
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<Decoders>
|
<Decoders>
|
||||||
<MediaCodec name="c2.google.av1.decoder" type="video/av01">
|
<MediaCodec name="c2.google.av1.decoder" type="video/av01">
|
||||||
<Limit name="size" min="96x96" max="3840x2160" />
|
<Limit name="size" min="96x96" max="3840x2160" />
|
||||||
<Limit name="alignment" value="2x2" />
|
<Limit name="alignment" value="1x1" />
|
||||||
<Limit name="block-size" value="16x16" />
|
<Limit name="block-size" value="16x16" />
|
||||||
<Limit name="block-count" range="36-32400" />
|
<Limit name="block-count" range="36-32400" />
|
||||||
<Limit name="blocks-per-second" min="24" max="1944000" />
|
<Limit name="blocks-per-second" min="24" max="1944000" />
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.google.av1.decoder.secure" type="video/av01">
|
<MediaCodec name="c2.google.av1.decoder.secure" type="video/av01">
|
||||||
<Limit name="size" min="96x96" max="3840x2160" />
|
<Limit name="size" min="96x96" max="3840x2160" />
|
||||||
<Limit name="alignment" value="2x2" />
|
<Limit name="alignment" value="1x1" />
|
||||||
<Limit name="block-size" value="16x16" />
|
<Limit name="block-size" value="16x16" />
|
||||||
<Limit name="block-count" range="36-32400" />
|
<Limit name="block-count" range="36-32400" />
|
||||||
<Limit name="blocks-per-second" min="24" max="1944000" />
|
<Limit name="blocks-per-second" min="24" max="1944000" />
|
||||||
|
@ -52,15 +52,15 @@
|
||||||
<Encoders>
|
<Encoders>
|
||||||
<MediaCodec name="c2.google.av1.encoder" type="video/av01">
|
<MediaCodec name="c2.google.av1.encoder" type="video/av01">
|
||||||
<Limit name="size" min="64x64" max="3840x2176" />
|
<Limit name="size" min="64x64" max="3840x2176" />
|
||||||
<Limit name="alignment" value="2x2" />
|
<Limit name="alignment" value="1x1" />
|
||||||
<Limit name="block-size" value="64x64" />
|
<Limit name="block-size" value="64x64" />
|
||||||
<Limit name="block-count" range="1-2040" />
|
<Limit name="block-count" range="1-2040" />
|
||||||
<Limit name="blocks-per-second" min="1" max="61200" />
|
<Limit name="blocks-per-second" min="1" max="61200" />
|
||||||
<Limit name="bitrate" range="1-120000000" />
|
<Limit name="bitrate" range="1-120000000" />
|
||||||
<Limit name="performance-point-1280x720" range="240" />
|
<Limit name="performance-point-1280x720" range="200" />
|
||||||
<Limit name="performance-point-1920x1080" value="180" />
|
<Limit name="performance-point-1920x1080" value="180" />
|
||||||
<Limit name="performance-point-1920x1079" value="120" />
|
<Limit name="performance-point-1920x1079" value="120" />
|
||||||
<Limit name="performance-point-3840x2160" range="60" />
|
<Limit name="performance-point-3840x2160" value="60" />
|
||||||
<Limit name="concurrent-instances" max="16" />
|
<Limit name="concurrent-instances" max="16" />
|
||||||
<Feature name="can-swap-width-height" value="1" />
|
<Feature name="can-swap-width-height" value="1" />
|
||||||
<Feature name="vq-minimum-quality"/>
|
<Feature name="vq-minimum-quality"/>
|
||||||
|
|
|
@ -115,29 +115,29 @@
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||||
<!-- measured 90%:342-360 med:343 N=2 -->
|
<!-- measured 90%:342-360 med:343 N=2 -->
|
||||||
<Limit name="measured-frame-rate-320x240" range="342-351" /> <!-- v90%=1.0 -->
|
<Limit name="measured-frame-rate-320x240" range="291-512" /> <!-- v90%=1.0 -->
|
||||||
<!-- measured 90%:142-147 med:143 N=2 -->
|
<!-- measured 90%:142-147 med:143 N=2 -->
|
||||||
<Limit name="measured-frame-rate-720x480" range="142-145" /> <!-- v90%=1.0 -->
|
<Limit name="measured-frame-rate-720x480" range="244-474" /> <!-- v90%=1.0 -->
|
||||||
<!-- measured 90%:54-56 med:55 N=2 -->
|
<!-- measured 90%:54-56 med:55 N=2 -->
|
||||||
<Limit name="measured-frame-rate-1280x720" range="54-55" /> <!-- v90%=1.0 -->
|
<Limit name="measured-frame-rate-1280x720" range="110-209" /> <!-- v90%=1.0 -->
|
||||||
<!-- measured 90%:25-26 med:26 N=2 -->
|
<!-- measured 90%:25-26 med:26 N=2 -->
|
||||||
<Limit name="measured-frame-rate-1920x1080" range="25-26" /> <!-- v90%=1.0 -->
|
<Limit name="measured-frame-rate-1920x1080" range="45-87" /> <!-- v90%=1.0 -->
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||||
<Limit name="measured-frame-rate-352x288" range="583-674" />
|
<Limit name="measured-frame-rate-352x288" range="549-674" />
|
||||||
<!-- measured 90%:196-207 med:196 N=2 -->
|
<!-- measured 90%:196-207 med:196 N=2 -->
|
||||||
<Limit name="measured-frame-rate-640x360" range="196-201" /> <!-- v90%=1.0 -->
|
<Limit name="measured-frame-rate-640x360" range="221-433" /> <!-- v90%=1.0 -->
|
||||||
<!-- measured 90%:177-180 med:178 N=2 -->
|
<!-- measured 90%:177-180 med:178 N=2 -->
|
||||||
<Limit name="measured-frame-rate-720x480" range="177-178" /> <!-- v90%=1.0 -->
|
<Limit name="measured-frame-rate-720x480" range="217-404" /> <!-- v90%=1.0 -->
|
||||||
<!-- measured 90%:81-82 med:82 N=2 -->
|
<!-- measured 90%:81-82 med:82 N=2 -->
|
||||||
<Limit name="measured-frame-rate-1280x720" range="81-82" /> <!-- v90%=1.0 -->
|
<Limit name="measured-frame-rate-1280x720" range="81-132" /> <!-- v90%=1.0 -->
|
||||||
<!-- measured 90%:45-47 med:46 N=2 -->
|
<!-- measured 90%:45-47 med:46 N=2 -->
|
||||||
<Limit name="measured-frame-rate-1920x1080" range="45-46" /> <!-- v90%=1.0 -->
|
<Limit name="measured-frame-rate-1920x1080" range="45-70" /> <!-- v90%=1.0 -->
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
|
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||||
<Limit name="measured-frame-rate-176x144" range="1111-1176" />
|
<Limit name="measured-frame-rate-176x144" range="1111-1591" />
|
||||||
<Limit name="measured-frame-rate-480x360" range="964-1042" />
|
<Limit name="measured-frame-rate-480x360" range="964-1411" />
|
||||||
<Limit name="measured-frame-rate-1280x720" range="294-300" />
|
<Limit name="measured-frame-rate-1280x720" range="390-740" />
|
||||||
</MediaCodec>
|
</MediaCodec>
|
||||||
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||||
<Limit name="measured-frame-rate-320x180" range="445-630" />
|
<Limit name="measured-frame-rate-320x180" range="445-630" />
|
||||||
|
@ -169,7 +169,7 @@
|
||||||
<Limit name="measured-frame-rate-352x288" range="233-315" />
|
<Limit name="measured-frame-rate-352x288" range="233-315" />
|
||||||
<Limit name="measured-frame-rate-640x360" range="114-247" />
|
<Limit name="measured-frame-rate-640x360" range="114-247" />
|
||||||
<Limit name="measured-frame-rate-720x480" range="47-189" />
|
<Limit name="measured-frame-rate-720x480" range="47-189" />
|
||||||
<Limit name="measured-frame-rate-1280x720" range="44-54" />
|
<Limit name="measured-frame-rate-1280x720" range="86-185" />
|
||||||
</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="689-881" />
|
<Limit name="measured-frame-rate-352x288" range="689-881" />
|
||||||
|
|
1
modem_ml/modem_ml_tflite_models_user.conf
Normal file
1
modem_ml/modem_ml_tflite_models_user.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,use_nnapi,execution_preference,accelerator_name,allow_fp16_precision
|
1
modem_ml/modem_ml_tflite_models_userdebug.conf
Normal file
1
modem_ml/modem_ml_tflite_models_userdebug.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,use_nnapi,execution_preference,accelerator_name,allow_fp16_precision
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
** Copyright 2024, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||||
|
|
||||||
|
<!-- Whether safe headphone volume is enabled or not (country specific). -->
|
||||||
|
<bool name="config_safe_media_volume_enabled">true</bool>
|
||||||
|
|
||||||
|
</resources>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
** Copyright 2024, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||||
|
|
||||||
|
<!-- Whether safe headphone volume is enabled or not (country specific). -->
|
||||||
|
<bool name="config_safe_media_volume_enabled">true</bool>
|
||||||
|
|
||||||
|
</resources>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
** Copyright 2024, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||||
|
|
||||||
|
<!-- Whether safe headphone volume is enabled or not (country specific). -->
|
||||||
|
<bool name="config_safe_media_volume_enabled">true</bool>
|
||||||
|
|
||||||
|
</resources>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
** Copyright 2024, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||||
|
|
||||||
|
<!-- Whether safe headphone volume is enabled or not (country specific). -->
|
||||||
|
<bool name="config_safe_media_volume_enabled">true</bool>
|
||||||
|
|
||||||
|
</resources>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
** Copyright 2024, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||||
|
|
||||||
|
<!-- Whether safe headphone volume is enabled or not (country specific). -->
|
||||||
|
<bool name="config_safe_media_volume_enabled">true</bool>
|
||||||
|
|
||||||
|
</resources>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
** Copyright 2024, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||||
|
|
||||||
|
<!-- Whether safe headphone volume is enabled or not (country specific). -->
|
||||||
|
<bool name="config_safe_media_volume_enabled">true</bool>
|
||||||
|
|
||||||
|
</resources>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
** Copyright 2024, The Android Open Source Project
|
||||||
|
**
|
||||||
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
** you may not use this file except in compliance with the License.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||||
|
|
||||||
|
<!-- Whether safe headphone volume is enabled or not (country specific). -->
|
||||||
|
<bool name="config_safe_media_volume_enabled">true</bool>
|
||||||
|
|
||||||
|
</resources>
|
|
@ -227,12 +227,12 @@
|
||||||
<!-- An array of device capabilities defined by GSMA SGP.22 v2.2.2, and their corresponding major
|
<!-- An array of device capabilities defined by GSMA SGP.22 v2.2.2, and their corresponding major
|
||||||
version. -->
|
version. -->
|
||||||
<string-array translatable="false" name="config_telephonyEuiccDeviceCapabilities">
|
<string-array translatable="false" name="config_telephonyEuiccDeviceCapabilities">
|
||||||
<item>"gsm,8"</item>
|
<item>"gsm,9"</item>
|
||||||
<item>"utran,9"</item>
|
<item>"utran,9"</item>
|
||||||
<item>"eutran,15"</item>
|
<item>"eutran,16"</item>
|
||||||
<item>"nrepc,15"</item>
|
<item>"nrepc,16"</item>
|
||||||
<item>"nr5gc,15"</item>
|
<item>"nr5gc,16"</item>
|
||||||
<item>"eutran5gc,15"</item>
|
<item>"eutran5gc,16"</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<!-- Auto-brightness sensor type string -->
|
<!-- Auto-brightness sensor type string -->
|
||||||
|
@ -251,8 +251,8 @@
|
||||||
<!-- Should the pinner service pin the Camera application? -->
|
<!-- Should the pinner service pin the Camera application? -->
|
||||||
<bool name="config_pinnerCameraApp">true</bool>
|
<bool name="config_pinnerCameraApp">true</bool>
|
||||||
|
|
||||||
<!-- Should the pinner service pin the Home application? -->
|
<!-- Bytes that the PinnerService will pin for Home app -->
|
||||||
<bool name="config_pinnerHomeApp">true</bool>
|
<integer name="config_pinnerHomePinBytes">6291456</integer>
|
||||||
|
|
||||||
<!-- The default intensity level for alarm vibrations. See
|
<!-- The default intensity level for alarm vibrations. See
|
||||||
Settings.System.ALARM_VIBRATION_INTENSITY more details on the constant values and
|
Settings.System.ALARM_VIBRATION_INTENSITY more details on the constant values and
|
||||||
|
@ -300,7 +300,14 @@
|
||||||
<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>
|
<item>com.google.android.youtube:0.07</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<!-- Class names of device-specific services inheriting com.android.server.SystemService. The
|
||||||
|
classes are instantiated in the order of the array. -->
|
||||||
|
<!-- TODO: b/350624523 - Add back modem ML TFLite service after it is ready. -->
|
||||||
|
<!-- <string-array translatable="false" name="config_deviceSpecificSystemServices">
|
||||||
|
<item>com.android.server.modemml.TFLiteService</item>
|
||||||
|
</string-array> -->
|
||||||
|
|
||||||
<!-- Pre-scale volume at volume step 1 for Absolute Volume -->
|
<!-- Pre-scale volume at volume step 1 for Absolute Volume -->
|
||||||
<fraction name="config_prescaleAbsoluteVolume_index1">100%</fraction>
|
<fraction name="config_prescaleAbsoluteVolume_index1">100%</fraction>
|
||||||
|
@ -416,6 +423,55 @@
|
||||||
<item>2050</item> <!-- 100000+ -->
|
<item>2050</item> <!-- 100000+ -->
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
|
<!-- Array of screen brightness threshold values. This is used for determining hysteresis
|
||||||
|
constraint values by calculating the index to use for lookup and then setting the
|
||||||
|
constraint value to the corresponding value of the array. The new brightening hysteresis
|
||||||
|
constraint value is the n-th element of config_screenBrighteningThresholds, and the new
|
||||||
|
darkening hysteresis constraint value is the n-th element of
|
||||||
|
config_screenDarkeningThresholds.
|
||||||
|
|
||||||
|
Historically, it has been assumed that this will be an integer array with values in the
|
||||||
|
range of [0, 255]. However, it is now assumed to be a float array with values in the
|
||||||
|
range of [0, 1]. To accommodate both the possibilities, we internally check the scale on
|
||||||
|
which the thresholds are defined, and calibrate it accordingly.
|
||||||
|
|
||||||
|
The (zero-based) index is calculated as follows: (MAX is the largest index of the array)
|
||||||
|
condition calculated index
|
||||||
|
value < level[0] 0
|
||||||
|
level[n] <= value < level[n+1] n+1
|
||||||
|
level[MAX] <= value MAX+1 -->
|
||||||
|
<array name="config_screenThresholdLevels">
|
||||||
|
<item>0.5</item>
|
||||||
|
<item>0.6</item>
|
||||||
|
<item>0.9</item>
|
||||||
|
</array>
|
||||||
|
|
||||||
|
<!-- Array of hysteresis constraint values for brightening, represented as tenths of a
|
||||||
|
percent. The length of this array is assumed to be one greater than
|
||||||
|
config_screenThresholdLevels. The brightening threshold is calculated as
|
||||||
|
screenBrightness * (1.0f + CONSTRAINT_VALUE). When the new screen brightness is higher
|
||||||
|
than this threshold, it is applied. See the config_screenThresholdLevels description for
|
||||||
|
how the constraint value is chosen. -->
|
||||||
|
<integer-array name="config_screenBrighteningThresholds">
|
||||||
|
<item>100</item>
|
||||||
|
<item>100</item>
|
||||||
|
<item>40</item>
|
||||||
|
<item>10</item>
|
||||||
|
</integer-array>
|
||||||
|
|
||||||
|
<!-- Array of hysteresis constraint values for darkening, represented as tenths of a
|
||||||
|
percent. The length of this array is assumed to be one greater than
|
||||||
|
config_screenThresholdLevels. The darkening threshold is calculated as
|
||||||
|
screenBrightness * (1.0f - CONSTRAINT_VALUE). When the new screen brightness is lower than
|
||||||
|
this threshold, it is applied. See the config_screenThresholdLevels description for how
|
||||||
|
the constraint value is chosen. -->
|
||||||
|
<integer-array name="config_screenDarkeningThresholds">
|
||||||
|
<item>200</item>
|
||||||
|
<item>200</item>
|
||||||
|
<item>200</item>
|
||||||
|
<item>200</item>
|
||||||
|
</integer-array>
|
||||||
|
|
||||||
<!-- The identifier of the satellite's SIM profile. The identifier is composed of MCC and MNC
|
<!-- The identifier of the satellite's SIM profile. The identifier is composed of MCC and MNC
|
||||||
of the satellite PLMN with the format "mccmnc". -->
|
of the satellite PLMN with the format "mccmnc". -->
|
||||||
<string name="config_satellite_sim_plmn_identifier">90198</string>
|
<string name="config_satellite_sim_plmn_identifier">90198</string>
|
||||||
|
@ -441,7 +497,13 @@
|
||||||
will move to IDLE state. This timeout duration is used for satellite with NB IOT radio
|
will move to IDLE state. This timeout duration is used for satellite with NB IOT radio
|
||||||
technologies.
|
technologies.
|
||||||
-->
|
-->
|
||||||
<integer name="config_satellite_nb_iot_inactivity_timeout_millis">900000</integer>
|
<integer name="config_satellite_nb_iot_inactivity_timeout_millis">2147483647</integer>
|
||||||
|
|
||||||
|
<!-- The time duration in millis after which cellular scanning will be enabled and satellite
|
||||||
|
will move to IDLE state. This timeout duration is used for satellite with NB IOT radio
|
||||||
|
technologies in demo mode.
|
||||||
|
-->
|
||||||
|
<integer name="config_satellite_demo_mode_nb_iot_inactivity_timeout_millis">2147483647</integer>
|
||||||
|
|
||||||
<!-- The time duration in millis after which Telephony will abort the datagram sending requests.
|
<!-- The time duration in millis after which Telephony will abort the datagram sending requests.
|
||||||
Telephony starts a timer when receiving a datagram sending request in either OFF, IDLE, or
|
Telephony starts a timer when receiving a datagram sending request in either OFF, IDLE, or
|
||||||
|
@ -449,5 +511,11 @@
|
||||||
In OFF or IDLE state, the duration of the timer is the sum of this config and the
|
In OFF or IDLE state, the duration of the timer is the sum of this config and the
|
||||||
config_satellite_modem_image_switching_duration_millis.
|
config_satellite_modem_image_switching_duration_millis.
|
||||||
-->
|
-->
|
||||||
<integer name="config_datagram_wait_for_connected_state_timeout_millis">900000</integer>
|
<integer name="config_datagram_wait_for_connected_state_timeout_millis">180000</integer>
|
||||||
|
|
||||||
|
<!-- The package name of the app to handle oem-enabled satellite SOS messaging. -->
|
||||||
|
<string name="config_oem_enabled_satellite_sos_handover_app">com.google.android.apps.stargate;com.google.android.apps.stargate.questionnaire.QuestionnaireHomeActivity</string>
|
||||||
|
|
||||||
|
<!-- The intent action to handle oem-enabled satellite SOS messaging. -->
|
||||||
|
<string name="config_satellite_emergency_handover_intent_action">com.google.android.apps.stargate.ACTION_ESOS_QUESTIONNAIRE</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
22
overlay/packages/apps/Settings/res/values/arrays.xml
Normal file
22
overlay/packages/apps/Settings/res/values/arrays.xml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright 2024 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<resources>
|
||||||
|
<!-- Packages that will not show Display over other apps permission -->
|
||||||
|
<string-array name="display_over_apps_permission_change_exempt">
|
||||||
|
<item>com.google.android.apps.scone</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
|
@ -1,7 +1,8 @@
|
||||||
on property:sys.boot_completed=1
|
on property:sys.boot_completed=1
|
||||||
chown system system /sys/class/power_supply/max77779fg/fg_learning_events
|
chown system system /sys/class/power_supply/max77779fg/fg_learning_events
|
||||||
|
chown system system /sys/class/power_supply/max77779fg/fg_abnormal_events
|
||||||
chown system system /sys/class/power_supply/maxfg_base/fg_learning_events
|
chown system system /sys/class/power_supply/maxfg_base/fg_learning_events
|
||||||
chown system system /sys/devices/platform/maxim,max77779fwu/update_stats
|
chown system system /sys/devices/platform/maxim,max77779fwu/update_stats
|
||||||
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
|
||||||
|
|
|
@ -64,6 +64,14 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = {
|
||||||
.LongIRQMetricsPath = "/sys/kernel/metrics/irq/long_irq_metrics",
|
.LongIRQMetricsPath = "/sys/kernel/metrics/irq/long_irq_metrics",
|
||||||
.StormIRQMetricsPath = "/sys/kernel/metrics/irq/storm_irq_metrics",
|
.StormIRQMetricsPath = "/sys/kernel/metrics/irq/storm_irq_metrics",
|
||||||
.IRQStatsResetPath = "/sys/kernel/metrics/irq/stats_reset",
|
.IRQStatsResetPath = "/sys/kernel/metrics/irq/stats_reset",
|
||||||
|
.ThermalStatsPaths = {
|
||||||
|
"/sys/devices/platform/100a0000.BIG/trip_counter",
|
||||||
|
"/sys/devices/platform/100a0000.MID/trip_counter",
|
||||||
|
"/sys/devices/platform/100a0000.LITTLE/trip_counter",
|
||||||
|
"/sys/devices/platform/100b0000.G3D/trip_counter",
|
||||||
|
"/sys/devices/platform/100b0000.TPU/trip_counter",
|
||||||
|
"/sys/devices/platform/100b0000.AUR/trip_counter",
|
||||||
|
},
|
||||||
.TempResidencyAndResetPaths = {
|
.TempResidencyAndResetPaths = {
|
||||||
{
|
{
|
||||||
"/sys/kernel/metrics/thermal/tr_by_group/tmu/stats",
|
"/sys/kernel/metrics/thermal/tr_by_group/tmu/stats",
|
||||||
|
@ -80,6 +88,16 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = {
|
||||||
"/sys/class/power_supply/max77779fg/gmsr",
|
"/sys/class/power_supply/max77779fg/gmsr",
|
||||||
"/sys/class/power_supply/maxfg_base/gmsr",
|
"/sys/class/power_supply/maxfg_base/gmsr",
|
||||||
},
|
},
|
||||||
|
.FGModelLoadingPath = {
|
||||||
|
"/sys/class/power_supply/max77779fg/model_state",
|
||||||
|
"/sys/class/power_supply/maxfg_base/model_state"
|
||||||
|
},
|
||||||
|
.FGLogBufferPath = {
|
||||||
|
"/dev/logbuffer_maxfg_monitor",
|
||||||
|
"/dev/logbuffer_max77779fg_monitor",
|
||||||
|
"/dev/logbuffer_maxfg_base_monitor",
|
||||||
|
"/dev/logbuffer_maxfg_secondary_monitor"
|
||||||
|
},
|
||||||
.PDMStatePath = "/sys/devices/platform/audiometrics/pdm_state",
|
.PDMStatePath = "/sys/devices/platform/audiometrics/pdm_state",
|
||||||
.WavesPath = "/sys/devices/platform/audiometrics/waves",
|
.WavesPath = "/sys/devices/platform/audiometrics/waves",
|
||||||
.AdaptedInfoCountPath = "/sys/devices/platform/audiometrics/adapted_info_active_count",
|
.AdaptedInfoCountPath = "/sys/devices/platform/audiometrics/adapted_info_active_count",
|
||||||
|
@ -90,20 +108,39 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = {
|
||||||
.TotalCallCountPath = "/sys/devices/platform/audiometrics/call_count",
|
.TotalCallCountPath = "/sys/devices/platform/audiometrics/call_count",
|
||||||
.OffloadEffectsIdPath = "/sys/devices/platform/audiometrics/offload_effects_id",
|
.OffloadEffectsIdPath = "/sys/devices/platform/audiometrics/offload_effects_id",
|
||||||
.OffloadEffectsDurationPath = "/sys/devices/platform/audiometrics/offload_effects_duration",
|
.OffloadEffectsDurationPath = "/sys/devices/platform/audiometrics/offload_effects_duration",
|
||||||
.BluetoothAudioUsagePath = "/sys/devices/platform/audiometrics/bt_usage"
|
.BluetoothAudioUsagePath = "/sys/devices/platform/audiometrics/bt_usage",
|
||||||
|
.DisplayPortStatsPaths = {
|
||||||
|
"/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/link_negotiation_failures",
|
||||||
|
"/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/edid_read_failures",
|
||||||
|
"/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/dpcd_read_failures",
|
||||||
|
"/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/edid_invalid_failures",
|
||||||
|
"/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/sink_count_invalid_failures",
|
||||||
|
"/sys/devices/platform/exynos-drm/displayport/drm-displayport-stats/link_unstable_failures",
|
||||||
|
},
|
||||||
|
.HDCPStatsPaths = {
|
||||||
|
"/sys/devices/platform/hdcp/hdcp2_success_count",
|
||||||
|
"/sys/devices/platform/hdcp/hdcp2_fallback_count",
|
||||||
|
"/sys/devices/platform/hdcp/hdcp2_fail_count",
|
||||||
|
"/sys/devices/platform/hdcp/hdcp1_success_count",
|
||||||
|
"/sys/devices/platform/hdcp/hdcp1_fail_count",
|
||||||
|
"/sys/devices/platform/hdcp/hdcp0_count",
|
||||||
|
},
|
||||||
|
.DisplayStatsPaths = {
|
||||||
|
"/sys/devices/platform/exynos-drm/primary-panel/error_count_te",
|
||||||
|
"/sys/devices/platform/exynos-drm/primary-panel/error_count_unknown",
|
||||||
|
"/sys/devices/platform/exynos-drm/secondary-panel/error_count_te",
|
||||||
|
"/sys/devices/platform/exynos-drm/secondary-panel/error_count_unknown",
|
||||||
|
},
|
||||||
|
.SpeakerVersionPath = "/sys/devices/platform/audiometrics/speaker_version"
|
||||||
};
|
};
|
||||||
|
|
||||||
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/max77779fg/fg_learning_events",
|
|
||||||
"/sys/class/power_supply/maxfg_base/fg_learning_events"
|
|
||||||
},
|
|
||||||
.FwUpdatePath = "/sys/devices/platform/maxim,max77779fwu/update_stats",
|
.FwUpdatePath = "/sys/devices/platform/maxim,max77779fwu/update_stats",
|
||||||
.FGModelLoadingPath = {
|
.FGAbnlPath = {
|
||||||
"/sys/class/power_supply/max77779fg/model_state",
|
"/dev/logbuffer_max77779fg_monitor",
|
||||||
"/sys/class/power_supply/maxfg_base/model_state"
|
"/dev/logbuffer_maxfg_base_monitor",
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -365,7 +365,7 @@ void addGPU(std::shared_ptr<PowerStats> p) {
|
||||||
{"890000", 4333}};
|
{"890000", 4333}};
|
||||||
|
|
||||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p,
|
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p,
|
||||||
EnergyConsumerType::OTHER, "GPU", {"S2S_VDD_G3D", "S8S_VDD_G3D_L2"},
|
EnergyConsumerType::OTHER, "GPU", {"S2S_VDD_G3D"},
|
||||||
{{UID_TIME_IN_STATE, path + "/uid_time_in_state"}},
|
{{UID_TIME_IN_STATE, path + "/uid_time_in_state"}},
|
||||||
stateCoeffs));
|
stateCoeffs));
|
||||||
|
|
||||||
|
@ -475,6 +475,24 @@ void addPCIe(std::shared_ptr<PowerStats> p) {
|
||||||
|
|
||||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||||
"/sys/devices/platform/13120000.pcie/power_stats", pcieWifiCfgs));
|
"/sys/devices/platform/13120000.pcie/power_stats", pcieWifiCfgs));
|
||||||
|
|
||||||
|
// Add PCIe Modem GEN
|
||||||
|
const GenericStateResidencyDataProvider::StateResidencyConfig modemGenStateConfig = {
|
||||||
|
.entryCountSupported = true,
|
||||||
|
.entryCountPrefix = "count:",
|
||||||
|
.totalTimeSupported = true,
|
||||||
|
.totalTimePrefix = "duration msec:",
|
||||||
|
};
|
||||||
|
const std::vector<std::pair<std::string, std::string>> modemGenStateHeaders = {
|
||||||
|
std::make_pair("GEN1", "Gen1:"),
|
||||||
|
std::make_pair("GEN3", "Gen3:"),
|
||||||
|
};
|
||||||
|
const std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> modemGenCfgs = {
|
||||||
|
{generateGenericStateResidencyConfigs(modemGenStateConfig, modemGenStateHeaders),
|
||||||
|
"PCIe-Modem-GEN", "link_speed:"}
|
||||||
|
};
|
||||||
|
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||||
|
"/sys/devices/platform/12100000.pcie/link_duration", modemGenCfgs));
|
||||||
}
|
}
|
||||||
|
|
||||||
void addWifi(std::shared_ptr<PowerStats> p) {
|
void addWifi(std::shared_ptr<PowerStats> p) {
|
||||||
|
@ -620,12 +638,15 @@ void addTPU(std::shared_ptr<PowerStats> p) {
|
||||||
stateCoeffs = {
|
stateCoeffs = {
|
||||||
// TODO (b/197721618): Measuring the TPU power numbers
|
// TODO (b/197721618): Measuring the TPU power numbers
|
||||||
{"226000", 10},
|
{"226000", 10},
|
||||||
{"627000", 20},
|
{"455000", 20},
|
||||||
{"845000", 30},
|
{"627000", 30},
|
||||||
{"1066000", 40}};
|
{"712000", 40},
|
||||||
|
{"845000", 50},
|
||||||
|
{"967000", 60}, // Do not change to 1066000
|
||||||
|
{"1119000", 70}};
|
||||||
|
|
||||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p,
|
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p,
|
||||||
EnergyConsumerType::OTHER, "TPU", {"S10M_VDD_TPU"},
|
EnergyConsumerType::OTHER, "TPU", {"S7M_VDD_TPU"},
|
||||||
{{UID_TIME_IN_STATE, "/sys/class/edgetpu/edgetpu-soc/device/tpu_usage"}},
|
{{UID_TIME_IN_STATE, "/sys/class/edgetpu/edgetpu-soc/device/tpu_usage"}},
|
||||||
stateCoeffs));
|
stateCoeffs));
|
||||||
}
|
}
|
||||||
|
@ -636,12 +657,19 @@ void addTPU(std::shared_ptr<PowerStats> p) {
|
||||||
* that live in user space. Entities are defined here and user space clients of this provider's
|
* that live in user space. Entities are defined here and user space clients of this provider's
|
||||||
* vendor service register callbacks to provide state residency data for their given pwoer entity.
|
* vendor service register callbacks to provide state residency data for their given pwoer entity.
|
||||||
*/
|
*/
|
||||||
void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p) {
|
void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p, std::string displayName) {
|
||||||
|
|
||||||
auto pixelSdp = std::make_unique<PixelStateResidencyDataProvider>();
|
auto pixelSdp = std::make_unique<PixelStateResidencyDataProvider>();
|
||||||
|
|
||||||
|
// Bluetooth power stats are provided by BT HAL callback
|
||||||
pixelSdp->addEntity("Bluetooth", {{0, "Idle"}, {1, "Active"}, {2, "Tx"}, {3, "Rx"}});
|
pixelSdp->addEntity("Bluetooth", {{0, "Idle"}, {1, "Active"}, {2, "Tx"}, {3, "Rx"}});
|
||||||
|
|
||||||
|
// Display VRR power stats are provided by HWC callback. If display entity
|
||||||
|
// name is empty, the device doesn't support VRR power stats.
|
||||||
|
if (!displayName.empty()) {
|
||||||
|
pixelSdp->addEntity(displayName, {});
|
||||||
|
}
|
||||||
|
|
||||||
pixelSdp->start();
|
pixelSdp->start();
|
||||||
|
|
||||||
p->addStateResidencyDataProvider(std::move(pixelSdp));
|
p->addStateResidencyDataProvider(std::move(pixelSdp));
|
||||||
|
@ -660,7 +688,6 @@ void addZumaProCommonDataProviders(std::shared_ptr<PowerStats> p) {
|
||||||
setEnergyMeter(p);
|
setEnergyMeter(p);
|
||||||
|
|
||||||
addAoC(p);
|
addAoC(p);
|
||||||
addPixelStateResidencyDataProvider(p);
|
|
||||||
addCPUclusters(p);
|
addCPUclusters(p);
|
||||||
addSoC(p);
|
addSoC(p);
|
||||||
addGNSS(p);
|
addGNSS(p);
|
||||||
|
|
|
@ -31,7 +31,7 @@ void addGPU(std::shared_ptr<PowerStats> p);
|
||||||
void addMobileRadio(std::shared_ptr<PowerStats> p);
|
void addMobileRadio(std::shared_ptr<PowerStats> p);
|
||||||
void addNFC(std::shared_ptr<PowerStats> p);
|
void addNFC(std::shared_ptr<PowerStats> p);
|
||||||
void addPCIe(std::shared_ptr<PowerStats> p);
|
void addPCIe(std::shared_ptr<PowerStats> p);
|
||||||
void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p);
|
void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p, std::string displayName);
|
||||||
void addPowerDomains(std::shared_ptr<PowerStats> p);
|
void addPowerDomains(std::shared_ptr<PowerStats> p);
|
||||||
void addSoC(std::shared_ptr<PowerStats> p);
|
void addSoC(std::shared_ptr<PowerStats> p);
|
||||||
void addTPU(std::shared_ptr<PowerStats> p);
|
void addTPU(std::shared_ptr<PowerStats> p);
|
||||||
|
|
72
radio/Android.bp
Normal file
72
radio/Android.bp
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
//
|
||||||
|
// Copyright (C) 2023 The Android Open Source Project
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package {
|
||||||
|
// See: http://go/android-license-faq
|
||||||
|
// A large-scale-change added 'default_applicable_licenses' to import
|
||||||
|
// all of the 'license_kinds' from "//device/google/zuma:device_google_zuma_license"
|
||||||
|
// to get the below license kinds:
|
||||||
|
// SPDX-license-identifier-Apache-2.0
|
||||||
|
default_applicable_licenses: [
|
||||||
|
"//device/google/zumapro:device_google_zumapro_license",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
prebuilt_etc {
|
||||||
|
name: "logging.conf",
|
||||||
|
vendor: true,
|
||||||
|
proprietary: true,
|
||||||
|
src: "config/logging.conf",
|
||||||
|
relative_install_path: "modem"
|
||||||
|
}
|
||||||
|
|
||||||
|
prebuilt_etc {
|
||||||
|
name: "default.cfg",
|
||||||
|
vendor: true,
|
||||||
|
proprietary: true,
|
||||||
|
src: "config/default.cfg",
|
||||||
|
relative_install_path: "modem"
|
||||||
|
}
|
||||||
|
|
||||||
|
prebuilt_etc {
|
||||||
|
name: "default.nprf",
|
||||||
|
vendor: true,
|
||||||
|
proprietary: true,
|
||||||
|
src: "config/default.nprf",
|
||||||
|
relative_install_path: "modem"
|
||||||
|
}
|
||||||
|
|
||||||
|
prebuilt_etc {
|
||||||
|
name: "default_metrics.xml",
|
||||||
|
vendor: true,
|
||||||
|
proprietary: true,
|
||||||
|
src: "config/default_metrics.xml",
|
||||||
|
relative_install_path: "modem"
|
||||||
|
}
|
||||||
|
|
||||||
|
prebuilt_etc {
|
||||||
|
name: "Pixel_stability.cfg",
|
||||||
|
vendor: true,
|
||||||
|
proprietary: true,
|
||||||
|
src: "config/Pixel_stability.cfg",
|
||||||
|
relative_install_path: "modem"
|
||||||
|
}
|
||||||
|
|
||||||
|
prebuilt_etc {
|
||||||
|
name: "Pixel_stability.nprf",
|
||||||
|
vendor: true,
|
||||||
|
proprietary: true,
|
||||||
|
src: "config/Pixel_stability.nprf",
|
||||||
|
relative_install_path: "modem"
|
||||||
|
}
|
1
radio/config/Pixel_stability.cfg
Normal file
1
radio/config/Pixel_stability.cfg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Pixel_stability.nprf,default_metrics.xml
|
BIN
radio/config/Pixel_stability.nprf
Normal file
BIN
radio/config/Pixel_stability.nprf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -80,7 +80,7 @@ static MonitorFfs monitorFfs(kGadgetName);
|
||||||
|
|
||||||
#define SPEED_PATH UDC_PATH "current_speed"
|
#define SPEED_PATH UDC_PATH "current_speed"
|
||||||
|
|
||||||
#define BIG_CORE "8"
|
#define BIG_CORE "7"
|
||||||
#define MEDIUM_CORE "4"
|
#define MEDIUM_CORE "4"
|
||||||
|
|
||||||
#define POWER_SUPPLY_PATH "/sys/class/power_supply/usb/"
|
#define POWER_SUPPLY_PATH "/sys/class/power_supply/usb/"
|
||||||
|
|
|
@ -40,6 +40,7 @@ cc_binary {
|
||||||
"libbinder",
|
"libbinder",
|
||||||
"libhidlbase",
|
"libhidlbase",
|
||||||
"liblog",
|
"liblog",
|
||||||
|
"libusbhost",
|
||||||
"libutils",
|
"libutils",
|
||||||
"libhardware",
|
"libhardware",
|
||||||
"android.hardware.thermal@1.0",
|
"android.hardware.thermal@1.0",
|
||||||
|
@ -54,6 +55,7 @@ cc_binary {
|
||||||
"libbinder_ndk",
|
"libbinder_ndk",
|
||||||
"libprotobuf-cpp-lite",
|
"libprotobuf-cpp-lite",
|
||||||
"server_configurable_flags",
|
"server_configurable_flags",
|
||||||
|
"libaconfig_storage_read_api_cc",
|
||||||
],
|
],
|
||||||
static_libs: [
|
static_libs: [
|
||||||
"libpixelusb-aidl",
|
"libpixelusb-aidl",
|
||||||
|
|
132
usb/usb/Usb.cpp
132
usb/usb/Usb.cpp
|
@ -23,10 +23,12 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
|
#include <private/android_filesystem_config.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <usbhost/usbhost.h>
|
||||||
#include <regex>
|
#include <regex>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
@ -37,6 +39,7 @@
|
||||||
#include <sys/timerfd.h>
|
#include <sys/timerfd.h>
|
||||||
#include <utils/Errors.h>
|
#include <utils/Errors.h>
|
||||||
#include <utils/StrongPointer.h>
|
#include <utils/StrongPointer.h>
|
||||||
|
#include <utils/Vector.h>
|
||||||
|
|
||||||
#include "Usb.h"
|
#include "Usb.h"
|
||||||
|
|
||||||
|
@ -58,6 +61,8 @@ 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::hardware::google::pixel::usb::getI2cClientPath;
|
||||||
|
using android::String8;
|
||||||
|
using android::Vector;
|
||||||
|
|
||||||
namespace aidl {
|
namespace aidl {
|
||||||
namespace android {
|
namespace android {
|
||||||
|
@ -116,6 +121,15 @@ void queryVersionHelper(android::hardware::usb::Usb *usb,
|
||||||
AltModeData::DisplayPortAltModeData constructAltModeData(string hpd, string pin_assignment,
|
AltModeData::DisplayPortAltModeData constructAltModeData(string hpd, string pin_assignment,
|
||||||
string link_status, string vdo);
|
string link_status, string vdo);
|
||||||
|
|
||||||
|
#define CTRL_TRANSFER_TIMEOUT_MSEC 1000
|
||||||
|
#define GL852G_VENDOR_ID 0x05e3
|
||||||
|
#define GL852G_PRODUCT_ID1 0x0608
|
||||||
|
#define GL852G_PRODUCT_ID2 0x0610
|
||||||
|
#define GL852G_VENDOR_CMD_REQ 0xe3
|
||||||
|
// GL852G port 1 and port 2 JK level default settings
|
||||||
|
#define GL852G_VENDOR_CMD_VALUE_DEFAULT 0x0008
|
||||||
|
#define GL852G_VENDOR_CMD_INDEX_DEFAULT 0x0407
|
||||||
|
|
||||||
ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable,
|
ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable,
|
||||||
int64_t in_transactionId) {
|
int64_t in_transactionId) {
|
||||||
bool result = true;
|
bool result = true;
|
||||||
|
@ -510,6 +524,61 @@ void updatePortStatus(android::hardware::usb::Usb *usb) {
|
||||||
queryVersionHelper(usb, ¤tPortStatus);
|
queryVersionHelper(usb, ¤tPortStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int usbDeviceRemoved(const char *devname, void* client_data) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int usbDeviceAdded(const char *devname, void* client_data) {
|
||||||
|
uint16_t vendorId, productId;
|
||||||
|
struct usb_device *device;
|
||||||
|
::aidl::android::hardware::usb::Usb *usb;
|
||||||
|
int value, index;
|
||||||
|
|
||||||
|
device = usb_device_open(devname);
|
||||||
|
if (!device) {
|
||||||
|
ALOGE("usb_device_open failed\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
usb = (::aidl::android::hardware::usb::Usb *)client_data;
|
||||||
|
value = usb->mUsbHubVendorCmdValue;
|
||||||
|
index = usb->mUsbHubVendorCmdIndex;
|
||||||
|
|
||||||
|
// The vendor cmd only applies to USB Hubs of Genesys Logic, Inc.
|
||||||
|
// The request field of vendor cmd is fixed to 0xe3.
|
||||||
|
vendorId = usb_device_get_vendor_id(device);
|
||||||
|
productId = usb_device_get_product_id(device);
|
||||||
|
if (vendorId == GL852G_VENDOR_ID &&
|
||||||
|
(productId == GL852G_PRODUCT_ID1 || productId == GL852G_PRODUCT_ID2)) {
|
||||||
|
int ret = usb_device_control_transfer(device,
|
||||||
|
USB_DIR_OUT | USB_TYPE_VENDOR, GL852G_VENDOR_CMD_REQ, value, index,
|
||||||
|
NULL, 0, CTRL_TRANSFER_TIMEOUT_MSEC);
|
||||||
|
ALOGI("USB hub vendor cmd %s (wValue 0x%x, wIndex 0x%x, return %d)\n",
|
||||||
|
ret? "failed" : "succeeded", value, index, ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
usb_device_close(device);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *usbHostWork(void *param) {
|
||||||
|
struct usb_host_context *ctx;
|
||||||
|
|
||||||
|
ALOGI("creating USB host thread\n");
|
||||||
|
|
||||||
|
ctx = usb_host_init();
|
||||||
|
if (!ctx) {
|
||||||
|
ALOGE("usb_host_init failed\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This will never return, it will keep monitoring USB sysfs inotify events
|
||||||
|
usb_host_run(ctx, usbDeviceAdded, usbDeviceRemoved, NULL, param);
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
Usb::Usb()
|
Usb::Usb()
|
||||||
: mLock(PTHREAD_MUTEX_INITIALIZER),
|
: mLock(PTHREAD_MUTEX_INITIALIZER),
|
||||||
mRoleSwitchLock(PTHREAD_MUTEX_INITIALIZER),
|
mRoleSwitchLock(PTHREAD_MUTEX_INITIALIZER),
|
||||||
|
@ -531,7 +600,9 @@ Usb::Usb()
|
||||||
mDisplayPortPollRunning(false),
|
mDisplayPortPollRunning(false),
|
||||||
mDisplayPortPollStarting(false),
|
mDisplayPortPollStarting(false),
|
||||||
mDisplayPortCVLock(PTHREAD_MUTEX_INITIALIZER),
|
mDisplayPortCVLock(PTHREAD_MUTEX_INITIALIZER),
|
||||||
mDisplayPortLock(PTHREAD_MUTEX_INITIALIZER) {
|
mDisplayPortLock(PTHREAD_MUTEX_INITIALIZER),
|
||||||
|
mUsbHubVendorCmdValue(GL852G_VENDOR_CMD_VALUE_DEFAULT),
|
||||||
|
mUsbHubVendorCmdIndex(GL852G_VENDOR_CMD_INDEX_DEFAULT) {
|
||||||
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));
|
||||||
|
@ -568,6 +639,10 @@ Usb::Usb()
|
||||||
ALOGE("mDisplayPortActivateTimer timerfd failed: %s", strerror(errno));
|
ALOGE("mDisplayPortActivateTimer timerfd failed: %s", strerror(errno));
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
if (pthread_create(&mUsbHost, NULL, usbHostWork, this)) {
|
||||||
|
ALOGE("pthread creation failed %d\n", errno);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
ALOGI("feature flag enable_usb_data_compliance_warning: %d",
|
ALOGI("feature flag enable_usb_data_compliance_warning: %d",
|
||||||
usb_flags::enable_usb_data_compliance_warning());
|
usb_flags::enable_usb_data_compliance_warning());
|
||||||
|
@ -597,6 +672,11 @@ ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role
|
||||||
fp = fopen(filename.c_str(), "w");
|
fp = fopen(filename.c_str(), "w");
|
||||||
if (fp != NULL) {
|
if (fp != NULL) {
|
||||||
int ret = fputs(convertRoletoString(in_role).c_str(), fp);
|
int ret = fputs(convertRoletoString(in_role).c_str(), fp);
|
||||||
|
if (ret == EAGAIN) {
|
||||||
|
ALOGI("role switch busy, retry in %d ms", ROLE_SWAP_RETRY_MS);
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(ROLE_SWAP_RETRY_MS));
|
||||||
|
ret = fputs(convertRoletoString(in_role).c_str(), fp);
|
||||||
|
}
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
if ((ret != EOF) && ReadFileToString(filename, &written)) {
|
if ((ret != EOF) && ReadFileToString(filename, &written)) {
|
||||||
written = Trim(written);
|
written = Trim(written);
|
||||||
|
@ -853,7 +933,7 @@ Status getPortStatusHelper(android::hardware::usb::Usb *usb,
|
||||||
|
|
||||||
PortRole currentRole;
|
PortRole currentRole;
|
||||||
currentRole.set<PortRole::powerRole>(PortPowerRole::NONE);
|
currentRole.set<PortRole::powerRole>(PortPowerRole::NONE);
|
||||||
if (getCurrentRoleHelper(port.first, port.second, ¤tRole) == Status::SUCCESS){
|
if (getCurrentRoleHelper(port.first, port.second, ¤tRole) == Status::SUCCESS) {
|
||||||
(*currentPortStatus)[i].currentPowerRole = currentRole.get<PortRole::powerRole>();
|
(*currentPortStatus)[i].currentPowerRole = currentRole.get<PortRole::powerRole>();
|
||||||
} else {
|
} else {
|
||||||
ALOGE("Error while retrieving portNames");
|
ALOGE("Error while retrieving portNames");
|
||||||
|
@ -1749,8 +1829,10 @@ void *displayPortPollWork(void *param) {
|
||||||
std::vector<PortStatus> currentPortStatus;
|
std::vector<PortStatus> currentPortStatus;
|
||||||
ret = read(usb->mDisplayPortDebounceTimer, &res, sizeof(res));
|
ret = read(usb->mDisplayPortDebounceTimer, &res, sizeof(res));
|
||||||
ALOGI("usbdp: dp debounce triggered, val:%lu ret:%d", res, ret);
|
ALOGI("usbdp: dp debounce triggered, val:%lu ret:%d", res, ret);
|
||||||
if (ret < 0)
|
if (ret < 0) {
|
||||||
ALOGE("usbdp: debounce read errno:%d", errno);
|
ALOGW("usbdp: debounce read error:%d", errno);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
queryVersionHelper(usb, ¤tPortStatus);
|
queryVersionHelper(usb, ¤tPortStatus);
|
||||||
} else if (events[n].data.fd == usb->mDisplayPortActivateTimer) {
|
} else if (events[n].data.fd == usb->mDisplayPortActivateTimer) {
|
||||||
string activePartner, activePort;
|
string activePartner, activePort;
|
||||||
|
@ -1801,6 +1883,7 @@ void *displayPortPollWork(void *param) {
|
||||||
|
|
||||||
error:
|
error:
|
||||||
/* Need to disarm so new threads don't get old event */
|
/* Need to disarm so new threads don't get old event */
|
||||||
|
armTimerFdHelper(usb->mDisplayPortDebounceTimer, 0);
|
||||||
armTimerFdHelper(usb->mDisplayPortActivateTimer, 0);
|
armTimerFdHelper(usb->mDisplayPortActivateTimer, 0);
|
||||||
close(link_training_status_fd);
|
close(link_training_status_fd);
|
||||||
link_training_status_fd_error:
|
link_training_status_fd_error:
|
||||||
|
@ -1936,6 +2019,47 @@ void Usb::shutdownDisplayPortPoll(bool force) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
status_t Usb::handleShellCommand(int in, int out, int err, const char** argv,
|
||||||
|
uint32_t argc) {
|
||||||
|
uid_t uid = AIBinder_getCallingUid();
|
||||||
|
if (uid != AID_ROOT && uid != AID_SHELL) {
|
||||||
|
return ::android::PERMISSION_DENIED;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector<String8> utf8Args;
|
||||||
|
utf8Args.setCapacity(argc);
|
||||||
|
for (uint32_t i = 0; i < argc; i++) {
|
||||||
|
utf8Args.push(String8(argv[i]));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (argc >= 1) {
|
||||||
|
if (!utf8Args[0].compare(String8("hub-vendor-cmd"))) {
|
||||||
|
if (utf8Args.size() < 3) {
|
||||||
|
dprintf(out, "Incorrect number of argument supplied\n");
|
||||||
|
return ::android::UNKNOWN_ERROR;
|
||||||
|
}
|
||||||
|
int value, index;
|
||||||
|
if (!::android::base::ParseInt(utf8Args[1].c_str(), &value) ||
|
||||||
|
!::android::base::ParseInt(utf8Args[2].c_str(), &index)) {
|
||||||
|
dprintf(out, "Fail to parse arguments\n");
|
||||||
|
return ::android::UNKNOWN_ERROR;
|
||||||
|
}
|
||||||
|
mUsbHubVendorCmdValue = value;
|
||||||
|
mUsbHubVendorCmdIndex = index;
|
||||||
|
ALOGI("USB hub vendor cmd update (wValue 0x%x, wIndex 0x%x)\n",
|
||||||
|
mUsbHubVendorCmdValue, mUsbHubVendorCmdIndex);
|
||||||
|
return ::android::NO_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dprintf(out, "usage: adb shell cmd hub-vendor-cmd VALUE INDEX\n"
|
||||||
|
" VALUE wValue field in hex format, e.g. 0xf321\n"
|
||||||
|
" INDEX wIndex field in hex format, e.g. 0xf321\n"
|
||||||
|
" The settings take effect next time the hub is enabled\n");
|
||||||
|
|
||||||
|
return ::android::NO_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace usb
|
} // namespace usb
|
||||||
} // namespace hardware
|
} // namespace hardware
|
||||||
} // namespace android
|
} // namespace android
|
||||||
|
|
|
@ -55,6 +55,7 @@ using ::android::hardware::google::pixel::usb::ZoneInfo;
|
||||||
using ::android::hardware::thermal::V2_0::TemperatureType;
|
using ::android::hardware::thermal::V2_0::TemperatureType;
|
||||||
using ::android::hardware::thermal::V2_0::ThrottlingSeverity;
|
using ::android::hardware::thermal::V2_0::ThrottlingSeverity;
|
||||||
using ::android::sp;
|
using ::android::sp;
|
||||||
|
using ::android::status_t;
|
||||||
using ::ndk::ScopedAStatus;
|
using ::ndk::ScopedAStatus;
|
||||||
using ::std::shared_ptr;
|
using ::std::shared_ptr;
|
||||||
using ::std::string;
|
using ::std::string;
|
||||||
|
@ -79,6 +80,7 @@ constexpr char kGadgetName[] = "11210000.dwc3";
|
||||||
#define DISPLAYPORT_IRQ_HPD_COUNT_CHECK 3
|
#define DISPLAYPORT_IRQ_HPD_COUNT_CHECK 3
|
||||||
|
|
||||||
#define DISPLAYPORT_POLL_WAIT_MS 100
|
#define DISPLAYPORT_POLL_WAIT_MS 100
|
||||||
|
#define ROLE_SWAP_RETRY_MS 700
|
||||||
|
|
||||||
#define SVID_DISPLAYPORT "ff01"
|
#define SVID_DISPLAYPORT "ff01"
|
||||||
#define SVID_THUNDERBOLT "8087"
|
#define SVID_THUNDERBOLT "8087"
|
||||||
|
@ -97,7 +99,7 @@ struct Usb : public BnUsb {
|
||||||
ScopedAStatus enableUsbDataWhileDocked(const string& in_portName,
|
ScopedAStatus enableUsbDataWhileDocked(const string& in_portName,
|
||||||
int64_t in_transactionId) override;
|
int64_t in_transactionId) override;
|
||||||
ScopedAStatus limitPowerTransfer(const string& in_portName, bool in_limit,
|
ScopedAStatus limitPowerTransfer(const string& in_portName, bool in_limit,
|
||||||
int64_t in_transactionId) override;
|
int64_t in_transactionId) override;
|
||||||
ScopedAStatus resetUsbPort(const string& in_portName, int64_t in_transactionId) override;
|
ScopedAStatus resetUsbPort(const string& in_portName, int64_t in_transactionId) override;
|
||||||
|
|
||||||
Status getDisplayPortUsbPathHelper(string *path);
|
Status getDisplayPortUsbPathHelper(string *path);
|
||||||
|
@ -108,6 +110,8 @@ struct Usb : public BnUsb {
|
||||||
void setupDisplayPortPoll();
|
void setupDisplayPortPoll();
|
||||||
void shutdownDisplayPortPollHelper();
|
void shutdownDisplayPortPollHelper();
|
||||||
void shutdownDisplayPortPoll(bool force);
|
void shutdownDisplayPortPoll(bool force);
|
||||||
|
status_t handleShellCommand(int in, int out, int err, const char** argv,
|
||||||
|
uint32_t argc) override;
|
||||||
|
|
||||||
std::shared_ptr<::aidl::android::hardware::usb::IUsbCallback> mCallback;
|
std::shared_ptr<::aidl::android::hardware::usb::IUsbCallback> mCallback;
|
||||||
// Protects mCallback variable
|
// Protects mCallback variable
|
||||||
|
@ -164,10 +168,15 @@ struct Usb : public BnUsb {
|
||||||
*/
|
*/
|
||||||
bool mPartnerSupportsDisplayPort;
|
bool mPartnerSupportsDisplayPort;
|
||||||
|
|
||||||
|
// Usb hub vendor command settings for JK level tuning
|
||||||
|
int mUsbHubVendorCmdValue;
|
||||||
|
int mUsbHubVendorCmdIndex;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
pthread_t mPoll;
|
pthread_t mPoll;
|
||||||
pthread_t mDisplayPortPoll;
|
pthread_t mDisplayPortPoll;
|
||||||
pthread_t mDisplayPortShutdownHelper;
|
pthread_t mDisplayPortShutdownHelper;
|
||||||
|
pthread_t mUsbHost;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace usb
|
} // namespace usb
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
service vendor.usb /vendor/bin/hw/android.hardware.usb-service
|
service vendor.usb /vendor/bin/hw/android.hardware.usb-service
|
||||||
class hal
|
class hal
|
||||||
user system
|
user system
|
||||||
group system shell wakelock
|
group system shell wakelock usb
|
||||||
capabilities WAKE_ALARM BLOCK_SUSPEND
|
capabilities WAKE_ALARM BLOCK_SUSPEND
|
||||||
|
|
||||||
on post-fs
|
on post-fs
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
service vendor.usb /vendor/bin/hw/android.hardware.usb-service
|
service vendor.usb /vendor/bin/hw/android.hardware.usb-service
|
||||||
class hal
|
class hal
|
||||||
user system
|
user system
|
||||||
group system shell wakelock
|
group system shell wakelock usb
|
||||||
capabilities WAKE_ALARM BLOCK_SUSPEND
|
capabilities WAKE_ALARM BLOCK_SUSPEND
|
||||||
|
|
||||||
on post-fs
|
on post-fs
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue