Merge Android 24Q2 Release (ab/11526283) to aosp-main-future
Bug: 337098550 Merged-In: I4ef71192ad2b2717c515164bd65463759320b32a Change-Id: I92c47a5388ba62c9f9395553dbb65acb07ad525b
This commit is contained in:
commit
df949b6d9a
22 changed files with 246 additions and 187 deletions
|
@ -163,6 +163,7 @@ TARGET_COPY_OUT_SYSTEM_EXT := system_ext
|
|||
# Video Codec
|
||||
########################
|
||||
# 1. Exynos C2
|
||||
BOARD_USE_CODEC2_HIDL_1_2 := true
|
||||
BOARD_USE_CSC_FILTER := false
|
||||
BOARD_USE_DEC_SW_CSC := true
|
||||
BOARD_USE_ENC_SW_CSC := true
|
||||
|
@ -347,6 +348,14 @@ KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko)
|
|||
|
||||
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist
|
||||
|
||||
# Since Pixel 6/6pro doesn't have a system_dlkm partition, the GKI modules are
|
||||
# on the vendor_dlkm partition. In order to allow them to load properly, we
|
||||
# need to retain the module signature which would normally get stripped during
|
||||
# packaging. Disable stripping the vendor_dlkm modules to retain the GKI
|
||||
# modules' signature. Note, the pixel kernel builds always strip the modules in
|
||||
# favor of saving space via the kleaf property: strip_modules = True.
|
||||
BOARD_DO_NOT_STRIP_VENDOR_MODULES := true
|
||||
|
||||
# Prebuilt kernel modules that are *not* listed in vendor_boot.modules.load
|
||||
BOARD_PREBUILT_VENDOR_RAMDISK_KERNEL_MODULES = fips140/fips140.ko
|
||||
BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD_EXTRA = $(foreach k,$(BOARD_PREBUILT_VENDOR_RAMDISK_KERNEL_MODULES),$(if $(wildcard $(KERNEL_MODULE_DIR)/$(k)), $(k)))
|
||||
|
|
|
@ -16,12 +16,8 @@ on init
|
|||
write /proc/vendor_sched/teo_util_threshold "1024 1024 1024"
|
||||
|
||||
# Boot time fs tuning
|
||||
write /sys/block/sda/queue/iostats 0
|
||||
write /sys/block/sda/queue/scheduler bfq
|
||||
write /sys/block/sda/queue/iosched/slice_idle 0
|
||||
write /sys/block/sda/queue/nr_requests 256
|
||||
write /dev/sys/fs/by-name/userdata/data_io_flag 56
|
||||
write /dev/sys/fs/by-name/userdata/node_io_flag 56
|
||||
|
||||
chown system system /proc/vendor_sched/groups/bg/set_task_group
|
||||
chown system system /proc/vendor_sched/groups/cam/set_task_group
|
||||
|
@ -101,15 +97,6 @@ on init
|
|||
chmod 0220 /proc/vendor_sched/pmu_poll_enable
|
||||
chmod 0220 /proc/vendor_sched/pmu_poll_time
|
||||
|
||||
wait /dev/block/platform/${ro.boot.boot_devices}
|
||||
symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice
|
||||
|
||||
# to access UFS/eMMC sysfs directly
|
||||
symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice
|
||||
|
||||
# Disable UFS powersaving
|
||||
write /dev/sys/block/bootdevice/clkgate_enable 0
|
||||
|
||||
start vendor.keymaster-3-0
|
||||
|
||||
# ZRAM setup
|
||||
|
@ -161,11 +148,11 @@ on init
|
|||
mkdir /dev/socket/pdx/system/vr/sensors 0775 system system
|
||||
|
||||
# Boot time 183626384
|
||||
write /proc/vendor_sched/groups/ta/uclamp_min 161
|
||||
write /proc/vendor_sched/groups/ta/uclamp_min 201
|
||||
write /proc/vendor_sched/groups/ta/prefer_idle 1
|
||||
write /proc/vendor_sched/groups/fg/uclamp_min 161
|
||||
write /proc/vendor_sched/groups/fg/uclamp_min 201
|
||||
write /proc/vendor_sched/groups/fg/prefer_idle 1
|
||||
write /proc/vendor_sched/groups/sys/uclamp_min 161
|
||||
write /proc/vendor_sched/groups/sys/uclamp_min 201
|
||||
write /proc/vendor_sched/groups/sys/prefer_idle 1
|
||||
|
||||
# governor setting
|
||||
|
@ -247,6 +234,7 @@ on init
|
|||
chown system system /dev/logbuffer_pca9468
|
||||
chown system system /dev/logbuffer_cpm
|
||||
chown system system /dev/logbuffer_bd
|
||||
chown system system /dev/logbuffer_cpif
|
||||
|
||||
# Dump maxfg
|
||||
chown system system /sys/class/power_supply/maxfg/m5_model_state
|
||||
|
@ -298,6 +286,7 @@ on init
|
|||
|
||||
# BatteryHealthData
|
||||
chown system system /sys/class/power_supply/battery/first_usage_date
|
||||
chown system system /sys/class/power_supply/battery/swelling_data
|
||||
|
||||
# Battery Defender
|
||||
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt
|
||||
|
@ -323,6 +312,7 @@ on init
|
|||
chown system system /sys/devices/platform/google,charger/bd_trigger_time
|
||||
chown system system /sys/devices/platform/google,charger/bd_trigger_voltage
|
||||
chown system system /sys/devices/platform/google,charger/bd_clear
|
||||
chown system system /sys/devices/platform/google,charger/bd_state
|
||||
chown system system /sys/devices/platform/google,charger/charge_start_level
|
||||
chown system system /sys/devices/platform/google,charger/charge_stop_level
|
||||
chown system system /sys/devices/platform/google,cpm/dc_ctl
|
||||
|
@ -500,15 +490,6 @@ on early-boot
|
|||
# Wait for insmod_sh to finish all common modules
|
||||
wait_for_prop vendor.common.modules.ready 1
|
||||
|
||||
# Permission for Health Storage HAL
|
||||
chown system system /dev/sys/block/bootdevice/manual_gc
|
||||
|
||||
# Permission for Pixelstats
|
||||
chown system system /dev/sys/block/bootdevice/slowio_read_cnt
|
||||
chown system system /dev/sys/block/bootdevice/slowio_write_cnt
|
||||
chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt
|
||||
chown system system /dev/sys/block/bootdevice/slowio_sync_cnt
|
||||
|
||||
on boot
|
||||
|
||||
# Allow to access debugfs for system:system
|
||||
|
@ -601,6 +582,7 @@ on fs
|
|||
chown system system /sys/class/backlight/panel0-backlight/dimming_on
|
||||
chown system system /sys/class/backlight/panel0-backlight/hbm_mode
|
||||
chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode
|
||||
chown system system /sys/class/backlight/panel0-backlight/allow_wakeup_by_state_change
|
||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma
|
||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh
|
||||
chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms
|
||||
|
@ -696,20 +678,6 @@ on property:init.svc.vendor.charger=running
|
|||
write /sys/devices/system/cpu/cpu7/online 0
|
||||
|
||||
on property:sys.boot_completed=1
|
||||
|
||||
# Runtime fs tuning
|
||||
write /sys/block/sda/queue/nr_requests 64
|
||||
write /sys/block/sda/queue/iostats 1
|
||||
write /dev/sys/fs/by-name/userdata/data_io_flag 8
|
||||
write /dev/sys/fs/by-name/userdata/node_io_flag 8
|
||||
|
||||
# Permission for Pixelstats
|
||||
chown system system /dev/sys/fs/by-name/userdata/compr_written_block
|
||||
chown system system /dev/sys/fs/by-name/userdata/compr_saved_block
|
||||
chown system system /dev/sys/fs/by-name/userdata/compr_new_inode
|
||||
chown system system /dev/sys/fs/by-name/userdata/gc_segment_mode
|
||||
chown system system /dev/sys/fs/by-name/userdata/gc_reclaimed_segments
|
||||
|
||||
# Enable ZRAM on boot_complete
|
||||
swapon_all /vendor/etc/fstab.${ro.board.platform}
|
||||
write /proc/sys/vm/swappiness 60
|
||||
|
@ -721,9 +689,6 @@ on property:sys.boot_completed=1
|
|||
write /proc/sys/vm/dirty_expire_centisecs 3000
|
||||
write /proc/sys/vm/dirty_background_ratio 10
|
||||
|
||||
# Enable UFS powersaving
|
||||
write /dev/sys/block/bootdevice/clkgate_enable 1
|
||||
|
||||
# Reset DDR frequency
|
||||
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
|
||||
write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
|
||||
|
@ -884,7 +849,7 @@ on property:vendor.thermal.link_ready=1
|
|||
# BCL
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0x80041c3
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_light_clk_ratio 0xfff041c3
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04381
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04385
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c1
|
||||
write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_heavy_clk_ratio 0xfff041c0
|
||||
write /dev/thermal/tz-by-name/smpl_gm/policy user_space
|
||||
|
@ -974,16 +939,6 @@ on charger
|
|||
mkdir /dev/thermal/cdev-by-name 0750 system system
|
||||
start vendor.thermal.symlinks
|
||||
|
||||
# Runtime fs tuning
|
||||
write /sys/block/sda/queue/nr_requests 64
|
||||
write /sys/block/sda/queue/iostats 1
|
||||
write /sys/block/sda/queue/iosched/slice_idle 0
|
||||
write /dev/sys/fs/by-name/userdata/data_io_flag 8
|
||||
write /dev/sys/fs/by-name/userdata/node_io_flag 8
|
||||
|
||||
# Enable UFS powersaving
|
||||
write /dev/sys/block/bootdevice/clkgate_enable 1
|
||||
|
||||
# Cancel boot devfreq and uclamp
|
||||
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
|
||||
write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
|
||||
|
@ -1003,10 +958,7 @@ on property:vendor.disable.bcl.control=1
|
|||
on property:vendor.disable.bcl.control=0
|
||||
write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 1
|
||||
|
||||
# UFS
|
||||
on property:ro.boot.mode=charger && property:init.svc.vendor.charger=running
|
||||
# Enable UFS powersaving in Off Mode Charger
|
||||
write /dev/sys/block/bootdevice/clkgate_enable 1
|
||||
# Disable dock-defend in Off Mode Charger
|
||||
write /sys/devices/platform/google,charger/dd_state -1
|
||||
|
||||
|
|
|
@ -55,7 +55,6 @@
|
|||
/dev/video55 0666 system graphics
|
||||
/dev/g2d 0660 system graphics
|
||||
/dev/fimg2d 0666 system graphics
|
||||
/dev/i2c-2 0660 system system
|
||||
/dev/HPD 0660 system system
|
||||
|
||||
# wfd
|
||||
|
@ -221,7 +220,7 @@
|
|||
/sys/devices/platform/11110000.usb/11110000.dwc3/xhci-hcd-exynos.4.auto/usb2/2-1/*/*/leds/* multi_intensity 0664 system system
|
||||
|
||||
# Dump Battery EEPROM history for pixelstats
|
||||
/sys/devices/platform/10970000.hsi2c/i2c-7/7-0050 eeprom 0644 system system
|
||||
/sys/devices/platform/10970000.hsi2c/i2c-8/8-0050 eeprom 0644 system system
|
||||
/dev/battery_history 0644 system system
|
||||
|
||||
# ODPM
|
||||
|
@ -231,20 +230,13 @@
|
|||
/sys/class/typec/port0 power_role 664 root system
|
||||
/sys/class/typec/port0 data_role 664 root system
|
||||
/sys/class/typec/port0 port_type 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc contaminant_detection 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_accessory_current 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_accessory_enable 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_sink_current 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_sink_enable 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc usb_limit_source_enable 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc update_sdp_enum_timeout 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 contaminant_detection 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_accessory_current 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_accessory_enable 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_sink_current 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_sink_enable 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 usb_limit_source_enable 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025 update_sdp_enum_timeout 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 contaminant_detection 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_accessory_current 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_accessory_enable 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_sink_current 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_sink_enable 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 usb_limit_source_enable 664 root system
|
||||
/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025 update_sdp_enum_timeout 664 root system
|
||||
/sys/devices/platform/11110000.usb dwc3_exynos_otg_b_sess 664 root system
|
||||
/sys/devices/platform/11110000.usb dwc3_exynos_otg_id 664 root system
|
||||
/sys/devices/platform/11110000.usb usb_data_enabled 664 root system
|
||||
|
|
|
@ -54,6 +54,8 @@
|
|||
<exception package="com.google.android.apps.camera.services">
|
||||
<!-- Camera -->
|
||||
<permission name="android.permission.CAMERA" fixed="false"/>
|
||||
<!-- Camera Connectivity -->
|
||||
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
|
||||
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
|
||||
<permission name="android.permission.BLUETOOTH_SCAN" fixed="false"/>
|
||||
|
|
66
device.mk
66
device.mk
|
@ -36,6 +36,10 @@ include device/google/gs-common/sota_app/factoryota.mk
|
|||
include device/google/gs-common/misc_writer/misc_writer.mk
|
||||
include device/google/gs-common/gyotaku_app/gyotaku.mk
|
||||
include device/google/gs-common/bootctrl/bootctrl_aidl.mk
|
||||
include device/google/gs-common/betterbug/betterbug.mk
|
||||
ifneq ($(filter oriole raven bluejay, $(TARGET_PRODUCT)),)
|
||||
include device/google/gs-common/bcmbt/dump/dumplog.mk
|
||||
endif
|
||||
|
||||
TARGET_BOARD_PLATFORM := gs101
|
||||
DEVICE_IS_64BIT_ONLY ?= $(if $(filter %_64,$(TARGET_PRODUCT)),true,false)
|
||||
|
@ -66,7 +70,7 @@ PRODUCT_SOONG_NAMESPACES += \
|
|||
hardware/google/pixel \
|
||||
device/google/gs101 \
|
||||
device/google/gs101/powerstats \
|
||||
system/chre/host/hal_generic \
|
||||
vendor/google_devices/common/chre/host/hal \
|
||||
vendor/google/whitechapel/tools \
|
||||
vendor/google/camera \
|
||||
vendor/google/interfaces \
|
||||
|
@ -254,8 +258,7 @@ PRODUCT_VENDOR_PROPERTIES += \
|
|||
|
||||
PRODUCT_VENDOR_PROPERTIES += \
|
||||
ro.opengles.version=196610 \
|
||||
graphics.gpu.profiler.support=true \
|
||||
debug.renderengine.backend=skiaglthreaded
|
||||
graphics.gpu.profiler.support=true
|
||||
|
||||
# b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache
|
||||
PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1
|
||||
|
@ -338,24 +341,20 @@ PRODUCT_HOST_PACKAGES += \
|
|||
PRODUCT_PACKAGES += \
|
||||
messaging
|
||||
|
||||
# Contexthub HAL
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.contexthub-service.generic
|
||||
|
||||
# CHRE tools
|
||||
# CHRE
|
||||
## tools
|
||||
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
|
||||
PRODUCT_PACKAGES += \
|
||||
chre_power_test_client \
|
||||
chre_test_client
|
||||
chre_test_client \
|
||||
chre_aidl_hal_client
|
||||
endif
|
||||
|
||||
## HAL
|
||||
include device/google/gs-common/chre/hal.mk
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml
|
||||
|
||||
# Enable the CHRE Daemon
|
||||
CHRE_USF_DAEMON_ENABLED := true
|
||||
PRODUCT_PACKAGES += \
|
||||
chre \
|
||||
preloaded_nanoapps.json
|
||||
|
||||
# Filesystem management tools
|
||||
|
@ -512,7 +511,7 @@ PRODUCT_PACKAGES += \
|
|||
# for now include gralloc here. should come from hardware/google_devices/exynos5
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.graphics.mapper@4.0-impl \
|
||||
android.hardware.graphics.allocator-V2-service
|
||||
android.hardware.graphics.allocator-V1-service
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.memtrack-service.pixel \
|
||||
|
@ -677,10 +676,8 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_color_management=tr
|
|||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50
|
||||
|
||||
# force to blend in P3 mode
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
persist.sys.sf.native_mode=2 \
|
||||
persist.sys.sf.color_mode=9
|
||||
persist.sys.sf.native_mode=2
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs101/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb
|
||||
|
||||
|
@ -728,30 +725,14 @@ endif
|
|||
$(call soong_config_set,bigo,soc,gs101)
|
||||
|
||||
# 1. Codec 2.0
|
||||
# exynos service
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/samsung_slsi/codec2
|
||||
# for settings used by different C2 hal
|
||||
include device/google/gs-common/mediacodec/common/mediacodec_common.mk
|
||||
# for Exynos C2 Hal
|
||||
include device/google/gs-common/mediacodec/samsung/mediacodec_samsung.mk
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs101/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
samsung.hardware.media.c2@1.0-service \
|
||||
codec2.vendor.base.policy \
|
||||
codec2.vendor.ext.policy \
|
||||
libExynosC2ComponentStore \
|
||||
libExynosC2H264Dec \
|
||||
libExynosC2H264Enc \
|
||||
libExynosC2HevcDec \
|
||||
libExynosC2HevcEnc \
|
||||
libExynosC2Mpeg4Dec \
|
||||
libExynosC2Mpeg4Enc \
|
||||
libExynosC2H263Dec \
|
||||
libExynosC2H263Enc \
|
||||
libExynosC2Vp8Dec \
|
||||
libExynosC2Vp8Enc \
|
||||
libExynosC2Vp9Dec \
|
||||
libExynosC2Vp9Enc
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
debug.stagefright.c2-poolmask=458752 \
|
||||
debug.c2.use_dmabufheaps=1 \
|
||||
|
@ -1037,6 +1018,14 @@ PRODUCT_PROPERTY_OVERRIDES += persist.vendor.enable.thermal.genl=true
|
|||
include device/google/gs-common/edgetpu/edgetpu.mk
|
||||
# Config variables for TPU chip on device.
|
||||
$(call soong_config_set,edgetpu_config,chip,abrolhos)
|
||||
# Include the edgetpu targets defined the namespaces below into the final image.
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
vendor/google_devices/gs101/proprietary/gchips/tpu/metrics \
|
||||
vendor/google_devices/gs101/proprietary/gchips/tpu/tflite_delegate \
|
||||
vendor/google_devices/gs101/proprietary/gchips/tpu/darwinn_logging_service \
|
||||
vendor/google_devices/gs101/proprietary/gchips/tpu/nnapi_stable_aidl \
|
||||
vendor/google_devices/gs101/proprietary/gchips/tpu/aidl \
|
||||
vendor/google_devices/gs101/proprietary/gchips/tpu/hal
|
||||
# TPU firmware
|
||||
PRODUCT_PACKAGES += edgetpu-abrolhos.fw
|
||||
|
||||
|
@ -1126,3 +1115,6 @@ PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled=tru
|
|||
|
||||
# Hardware Info Collection
|
||||
include hardware/google/pixel/HardwareInfo/HardwareInfo.mk
|
||||
|
||||
# Touch service
|
||||
include device/google/gs-common/touch/twoshay/aidl_gs101.mk
|
||||
|
|
|
@ -84,14 +84,6 @@
|
|||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>com.google.input</name>
|
||||
<version>2</version>
|
||||
<interface>
|
||||
<name>ITouchContextService</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>hardware.qorvo.uwb</name>
|
||||
<version>2</version>
|
||||
|
@ -142,13 +134,6 @@
|
|||
<instance>sced0</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>com.google.pixel.modem.logmasklibrary</name>
|
||||
<interface>
|
||||
<name>ILiboemserviceProxy</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl" optional="true">
|
||||
<name>vendor.samsung_slsi.telephony.hardware.radioExternal</name>
|
||||
<version>1.1</version>
|
||||
|
|
|
@ -35,11 +35,7 @@ cat "/sys/class/power_supply/main-charger/uevent"
|
|||
echo "\n------ Power supply property pca9486-mains ------"
|
||||
cat "/sys/class/power_supply/pca9468-mains/uevent"
|
||||
echo "\n------ Power supply property tcpm ------"
|
||||
if [ -e "/sys/class/power_supply/tcpm-source-psy-i2c-max77759tcpc/uevent" ]; then
|
||||
cat "/sys/class/power_supply/tcpm-source-psy-i2c-max77759tcpc/uevent"
|
||||
elif [ -e "/sys/class/power_supply/tcpm-source-psy-8-0025/uevent" ]; then
|
||||
cat "/sys/class/power_supply/tcpm-source-psy-8-0025/uevent"
|
||||
fi
|
||||
cat /sys/class/power_supply/tcpm-source-psy-*/uevent
|
||||
echo "\n------ Power supply property usb ------"
|
||||
cat "/sys/class/power_supply/usb/uevent"
|
||||
echo "\n------ Power supply property wireless ------"
|
||||
|
@ -93,10 +89,7 @@ then
|
|||
fi
|
||||
|
||||
echo "\n------ TCPC ------"
|
||||
max77759tcpc_path="/sys/devices/platform/10d50000.hsi2c/i2c-8/i2c-max77759tcpc"
|
||||
if [ -e "/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025" ]; then
|
||||
max77759tcpc_path="/sys/devices/platform/10d50000.hsi2c/i2c-8/8-0025"
|
||||
fi
|
||||
max77759tcpc_path="/sys/devices/platform/10d50000.hsi2c/i2c-12/12-0025"
|
||||
echo "registers:"
|
||||
cat $max77759tcpc_path/registers
|
||||
echo "frs:"
|
||||
|
@ -123,6 +116,8 @@ cat "/dev/logbuffer_pca9468"
|
|||
|
||||
echo "\n------ Battery Health ------"
|
||||
cat "/sys/class/power_supply/battery/health_index_stats"
|
||||
echo "\n------ Battery Health SoC Residency ------"
|
||||
cat "/sys/class/power_supply/battery/swelling_data"
|
||||
echo "\n------ BMS ------"
|
||||
cat "/dev/logbuffer_ssoc"
|
||||
echo "\n------ TTF ------"
|
||||
|
@ -159,14 +154,15 @@ do
|
|||
echo "$f: `cat $f`"
|
||||
done
|
||||
|
||||
if [ $build_type = "userdebug" ]
|
||||
then
|
||||
echo "\n------ DC_registers dump ------"
|
||||
cat "/sys/class/power_supply/pca9468-mains/device/registers_dump"
|
||||
echo "\n------ max77759_chg registers dump ------"
|
||||
cat "/d/max77759_chg/registers"
|
||||
cat "/sys/class/power_supply/main-charger/device/registers_dump"
|
||||
echo "\n------ max77729_pmic registers dump ------"
|
||||
cat "/d/max77729_pmic/registers"
|
||||
cat /sys/devices/platform/10d50000.hsi2c/i2c-*/*-0066/registers_dump
|
||||
|
||||
if [ $build_type = "userdebug" ]
|
||||
then
|
||||
echo "\n------ Charging table dump ------"
|
||||
cat "/d/google_battery/chg_raw_profile"
|
||||
|
||||
|
@ -204,9 +200,9 @@ then
|
|||
fi
|
||||
|
||||
echo "\n------ Battery EEPROM ------"
|
||||
if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom" ]
|
||||
if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-8/8-0050/eeprom" ]
|
||||
then
|
||||
xxd /sys/devices/platform/10970000.hsi2c/i2c-7/7-0050/eeprom
|
||||
xxd /sys/devices/platform/10970000.hsi2c/i2c-8/8-0050/eeprom
|
||||
fi
|
||||
|
||||
echo "\n------ Charger Stats ------"
|
||||
|
|
|
@ -159,3 +159,17 @@ Op9P1ZW2kjqv5D2+q/qtaePAyHn3B05UZrQYUmx7LaHNO7op6dZgCdoR0sVsR+Fc
|
|||
Zyr0AhgiuTWrjtUEOGx2qJVwAsHkpqtlN+DaGT08dT64LvIf0bfGvmtm++/WEDWJ
|
||||
HInwg85pGm+sEkYbYFRBD0woPBsL3g==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp
|
||||
Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2
|
||||
MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
|
||||
bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG
|
||||
ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS
|
||||
7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp
|
||||
0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS
|
||||
B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49
|
||||
BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ
|
||||
LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4
|
||||
DXZDjC5Ty3zfDBeWUA==
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -34,13 +34,5 @@
|
|||
<name>android.hardware.boot</name>
|
||||
<fqname>IBootControl/default</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.input</name>
|
||||
<version>2</version>
|
||||
<interface>
|
||||
<name>ITouchContextService</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<kernel target-level="6"/>
|
||||
</manifest>
|
||||
|
|
|
@ -26,13 +26,5 @@
|
|||
<transport>hwbinder</transport>
|
||||
<fqname>@1.3::IDevice/google-edgetpu</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.input</name>
|
||||
<version>2</version>
|
||||
<interface>
|
||||
<name>ITouchContextService</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<kernel target-level="6"/>
|
||||
</manifest>
|
||||
|
|
|
@ -5,8 +5,16 @@
|
|||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>IComponentStore</name>
|
||||
<instance>default</instance>
|
||||
<instance>default1</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.2</version>
|
||||
<interface>
|
||||
<name>IComponentStore</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
</manifest>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<hal format="hidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<version>1.2</version>
|
||||
<interface>
|
||||
<name>IComponentStore</name>
|
||||
<instance>default</instance>
|
||||
|
|
|
@ -175,10 +175,10 @@
|
|||
<Limit name="measured-frame-rate-1280x720" range="38-40" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.av1-dav1d.decoder" type="video/av01" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="353-362" />
|
||||
<Limit name="measured-frame-rate-640x360" range="178-210" />
|
||||
<Limit name="measured-frame-rate-720x480" range="101-129" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="38-40" />
|
||||
<Limit name="measured-frame-rate-352x288" range="735-974" />
|
||||
<Limit name="measured-frame-rate-640x360" range="426-627" />
|
||||
<Limit name="measured-frame-rate-720x480" range="406-434" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="148-159" />
|
||||
</MediaCodec>
|
||||
</Decoders>
|
||||
|
||||
|
|
|
@ -297,6 +297,7 @@
|
|||
<item>com.zhiliaoapp.musically:0.07</item>
|
||||
<item>com.bilibili.app.in:0.07</item>
|
||||
<item>com.twitter.android:0.07</item>
|
||||
<item>com.google.android.youtube:0.07</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Pre-scale volume at volume step 1 for Absolute Volume -->
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
on property:sys.boot_completed=1
|
||||
chown system system /sys/class/power_supply/maxfg/fg_learning_events
|
||||
start vendor.pixelstats_vendor
|
||||
on post-fs-data
|
||||
chown system system /sys/kernel/metrics/irq/stats_reset
|
||||
|
|
|
@ -69,12 +69,23 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = {
|
|||
"/sys/kernel/metrics/thermal/tr_by_group/spmic/stats_reset"
|
||||
}
|
||||
},
|
||||
.GMSRPath = "/sys/class/power_supply/maxfg/gmsr"
|
||||
.GMSRPath = {
|
||||
"/sys/class/power_supply/maxfg/gmsr",
|
||||
"/sys/class/power_supply/maxfg_base/gmsr",
|
||||
},
|
||||
};
|
||||
|
||||
const struct UeventListener::UeventPaths ueventPaths = {
|
||||
.AudioUevent = "/devices/virtual/amcs/amcs",
|
||||
.TypeCPartnerUevent = "PRODUCT_TYPE="};
|
||||
.TypeCPartnerUevent = "PRODUCT_TYPE=",
|
||||
.FGLearningPath = {
|
||||
"/sys/class/power_supply/maxfg/fg_learning_events"
|
||||
},
|
||||
.FwUpdatePath = "",
|
||||
.FGModelLoadingPath = {
|
||||
"/sys/class/power_supply/maxfg/m5_model_state"
|
||||
}
|
||||
};
|
||||
|
||||
int main() {
|
||||
LOG(INFO) << "starting PixelStats";
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include <Gs101CommonDataProviders.h>
|
||||
#include "AocStateResidencyDataProvider.h"
|
||||
#include "DevfreqStateResidencyDataProvider.h"
|
||||
#include <DisplayMrrStateResidencyDataProvider.h>
|
||||
#include "DvfsStateResidencyDataProvider.h"
|
||||
#include "UfsStateResidencyDataProvider.h"
|
||||
#include <dataproviders/GenericStateResidencyDataProvider.h>
|
||||
|
@ -34,6 +35,7 @@
|
|||
|
||||
using aidl::android::hardware::power::stats::AocStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::DisplayMrrStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::DvfsStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::UfsStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::EnergyConsumerType;
|
||||
|
@ -669,6 +671,11 @@ void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p) {
|
|||
p->addStateResidencyDataProvider(std::move(pixelSdp));
|
||||
}
|
||||
|
||||
void addDisplayMrr(std::shared_ptr<PowerStats> p) {
|
||||
p->addStateResidencyDataProvider(std::make_unique<DisplayMrrStateResidencyDataProvider>(
|
||||
"Display", "/sys/class/drm/card0/device/primary-panel/"));
|
||||
}
|
||||
|
||||
void addGs101CommonDataProviders(std::shared_ptr<PowerStats> p) {
|
||||
setEnergyMeter(p);
|
||||
|
||||
|
|
|
@ -22,4 +22,5 @@ using aidl::android::hardware::power::stats::PowerStats;
|
|||
|
||||
void addGs101CommonDataProviders(std::shared_ptr<PowerStats> p);
|
||||
|
||||
void addDisplayMrr(std::shared_ptr<PowerStats> p);
|
||||
void addNFC(std::shared_ptr<PowerStats> p, const std::string& path);
|
||||
|
|
|
@ -159,4 +159,12 @@
|
|||
regulatory approval (for example, FCC pre-approval is required according to "594280 D01
|
||||
Software Configuration Control v02r01").-->
|
||||
<bool translatable="false" name ="config_wifiUpdateCountryCodeFromScanResultGeneric">true</bool>
|
||||
|
||||
<!-- Boolean indicating performing a partial initial scan is enabled -->
|
||||
<bool translatable="false" name="config_wifiEnablePartialInitialScan">true</bool>
|
||||
|
||||
<!-- Configure the max number of new channels to add into the initial partial scan list per network.
|
||||
If equals to 0, it means there's no limit on the max number of channels to include per network.-->
|
||||
<integer translatable="false" name="config_wifiInitialPartialScanMaxNewChannelsPerNetwork">3</integer>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -564,6 +564,11 @@ Usb::Usb()
|
|||
ALOGE("pthread_condattr_destroy failed: %s", strerror(errno));
|
||||
abort();
|
||||
}
|
||||
|
||||
ALOGI("feature flag enable_usb_data_compliance_warning: %d",
|
||||
usb_flags::enable_usb_data_compliance_warning());
|
||||
ALOGI("feature flag enable_input_power_limited_warning: %d",
|
||||
usb_flags::enable_input_power_limited_warning());
|
||||
}
|
||||
|
||||
ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role,
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <pixelstats/StatsHelper.h>
|
||||
#include <pixelusb/CommonUtils.h>
|
||||
#include <sys/epoll.h>
|
||||
#include <sys/timerfd.h>
|
||||
#include <utils/Log.h>
|
||||
|
||||
#include <regex>
|
||||
|
@ -48,6 +49,9 @@ namespace usb {
|
|||
#define UEVENT_MSG_LEN 2048
|
||||
#define USB_STATE_MAX_LEN 20
|
||||
#define DATA_ROLE_MAX_LEN 10
|
||||
#define WARNING_SURFACE_DELAY_SEC 5
|
||||
#define ENUM_FAIL_DEFAULT_COUNT_THRESHOLD 3
|
||||
#define DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD 5
|
||||
|
||||
constexpr char kUdcConfigfsPath[] = "/config/usb_gadget/g1/UDC";
|
||||
constexpr char kNotAttachedState[] = "not attached\n";
|
||||
|
@ -115,6 +119,15 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
|
|||
if (addEpollFd(epollFd, ueventFd))
|
||||
abort();
|
||||
|
||||
unique_fd timerFd(timerfd_create(CLOCK_BOOTTIME, TFD_NONBLOCK));
|
||||
if (timerFd.get() == -1) {
|
||||
ALOGE("create timerFd failed");
|
||||
abort();
|
||||
}
|
||||
|
||||
if (addEpollFd(epollFd, timerFd))
|
||||
abort();
|
||||
|
||||
if (addEpollFile(epollFd.get(), dataRolePath, mDataRoleFd) != 0) {
|
||||
ALOGE("monitor data role failed");
|
||||
abort();
|
||||
|
@ -139,6 +152,7 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
|
|||
|
||||
mEpollFd = std::move(epollFd);
|
||||
mUeventFd = std::move(ueventFd);
|
||||
mTimerFd = std::move(timerFd);
|
||||
mUpdatePortStatusCb = updatePortStatusCb;
|
||||
|
||||
if (ReadFileToString(kUdcConfigfsPath, &udc) && !udc.empty())
|
||||
|
@ -150,6 +164,9 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
|
|||
ALOGE("pthread creation failed %d", errno);
|
||||
abort();
|
||||
}
|
||||
|
||||
ALOGI("feature flag enable_report_usb_data_compliance_warning: %d",
|
||||
usb_flags::enable_report_usb_data_compliance_warning());
|
||||
}
|
||||
|
||||
UsbDataSessionMonitor::~UsbDataSessionMonitor() {}
|
||||
|
@ -223,13 +240,55 @@ void UsbDataSessionMonitor::notifyComplianceWarning() {
|
|||
|
||||
void UsbDataSessionMonitor::evaluateComplianceWarning() {
|
||||
std::set<ComplianceWarning> newWarningSet;
|
||||
int elapsedTimeSec;
|
||||
|
||||
// TODO: add heuristics and update newWarningSet
|
||||
elapsedTimeSec =
|
||||
std::chrono::duration_cast<std::chrono::seconds>(boot_clock::now() - mDataSessionStart)
|
||||
.count();
|
||||
|
||||
if (elapsedTimeSec >= WARNING_SURFACE_DELAY_SEC) {
|
||||
if (mDataRole == PortDataRole::DEVICE && mUdcBind) {
|
||||
int configuredCount = std::count(mDeviceState.states.begin(),
|
||||
mDeviceState.states.end(), kConfiguredState);
|
||||
int defaultCount =
|
||||
std::count(mDeviceState.states.begin(), mDeviceState.states.end(), kDefaultState);
|
||||
|
||||
if (configuredCount == 0 && defaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD)
|
||||
newWarningSet.insert(ComplianceWarning::ENUMERATION_FAIL);
|
||||
|
||||
if (configuredCount > DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD)
|
||||
newWarningSet.insert(ComplianceWarning::FLAKY_CONNECTION);
|
||||
} else if (mDataRole == PortDataRole::HOST) {
|
||||
int host1StateCount = mHost1State.states.size();
|
||||
int host1ConfiguredCount =
|
||||
std::count(mHost1State.states.begin(), mHost1State.states.end(), kConfiguredState);
|
||||
int host1DefaultCount =
|
||||
std::count(mHost1State.states.begin(), mHost1State.states.end(), kDefaultState);
|
||||
int host2StateCount = mHost2State.states.size();
|
||||
int host2ConfiguredCount =
|
||||
std::count(mHost2State.states.begin(), mHost2State.states.end(), kConfiguredState);
|
||||
int host2DefaultCount =
|
||||
std::count(mHost2State.states.begin(), mHost2State.states.end(), kDefaultState);
|
||||
|
||||
if (host1ConfiguredCount == 0 && host2ConfiguredCount == 0 &&
|
||||
(host1DefaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD ||
|
||||
host2DefaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD))
|
||||
newWarningSet.insert(ComplianceWarning::ENUMERATION_FAIL);
|
||||
|
||||
if (host1StateCount == 1 && mHost1State.states.front() == kNotAttachedState &&
|
||||
host2StateCount == 1 && mHost2State.states.front() == kNotAttachedState)
|
||||
newWarningSet.insert(ComplianceWarning::MISSING_DATA_LINES);
|
||||
}
|
||||
}
|
||||
|
||||
if (newWarningSet != mWarningSet) {
|
||||
std::string newWarningString;
|
||||
|
||||
for (auto e : newWarningSet) {
|
||||
newWarningString += toString(e) + " ";
|
||||
}
|
||||
ALOGI("Usb data compliance warning changed to: %s", newWarningString.c_str());
|
||||
|
||||
mWarningSet = newWarningSet;
|
||||
notifyComplianceWarning();
|
||||
}
|
||||
|
@ -259,6 +318,26 @@ void UsbDataSessionMonitor::handleDeviceStateEvent(struct usbDeviceState *device
|
|||
evaluateComplianceWarning();
|
||||
}
|
||||
|
||||
void UsbDataSessionMonitor::setupNewSession() {
|
||||
mWarningSet.clear();
|
||||
mDataSessionStart = boot_clock::now();
|
||||
|
||||
if (mDataRole == PortDataRole::DEVICE) {
|
||||
clearDeviceStateEvents(&mDeviceState);
|
||||
} else if (mDataRole == PortDataRole::HOST) {
|
||||
clearDeviceStateEvents(&mHost1State);
|
||||
clearDeviceStateEvents(&mHost2State);
|
||||
}
|
||||
|
||||
if (mDataRole != PortDataRole::NONE) {
|
||||
struct itimerspec delay = itimerspec();
|
||||
delay.it_value.tv_sec = WARNING_SURFACE_DELAY_SEC;
|
||||
int ret = timerfd_settime(mTimerFd.get(), 0, &delay, NULL);
|
||||
if (ret < 0)
|
||||
ALOGE("timerfd_settime failed err:%d", errno);
|
||||
}
|
||||
}
|
||||
|
||||
void UsbDataSessionMonitor::handleDataRoleEvent() {
|
||||
int n;
|
||||
PortDataRole newDataRole;
|
||||
|
@ -283,17 +362,8 @@ void UsbDataSessionMonitor::handleDataRoleEvent() {
|
|||
reportUsbDataSessionMetrics();
|
||||
}
|
||||
|
||||
// Set up for the new data session
|
||||
mWarningSet.clear();
|
||||
mDataRole = newDataRole;
|
||||
mDataSessionStart = boot_clock::now();
|
||||
|
||||
if (newDataRole == PortDataRole::DEVICE) {
|
||||
clearDeviceStateEvents(&mDeviceState);
|
||||
} else if (newDataRole == PortDataRole::HOST) {
|
||||
clearDeviceStateEvents(&mHost1State);
|
||||
clearDeviceStateEvents(&mHost2State);
|
||||
}
|
||||
setupNewSession();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -328,8 +398,7 @@ void UsbDataSessionMonitor::updateUdcBindStatus(const std::string &devname) {
|
|||
|
||||
} else if (!mUdcBind && newUdcBind) {
|
||||
// Gadget soft pullup: reset and start accounting for a new data session.
|
||||
clearDeviceStateEvents(&mDeviceState);
|
||||
mDataSessionStart = boot_clock::now();
|
||||
setupNewSession();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -383,6 +452,23 @@ void UsbDataSessionMonitor::handleUevent() {
|
|||
}
|
||||
}
|
||||
|
||||
void UsbDataSessionMonitor::handleTimerEvent() {
|
||||
int byteRead;
|
||||
uint64_t numExpiration;
|
||||
|
||||
byteRead = read(mTimerFd.get(), &numExpiration, sizeof(numExpiration));
|
||||
|
||||
if (byteRead != sizeof(numExpiration)) {
|
||||
ALOGE("incorrect read size");
|
||||
}
|
||||
|
||||
if (numExpiration != 1) {
|
||||
ALOGE("incorrect expiration count");
|
||||
}
|
||||
|
||||
evaluateComplianceWarning();
|
||||
}
|
||||
|
||||
void *UsbDataSessionMonitor::monitorThread(void *param) {
|
||||
UsbDataSessionMonitor *monitor = (UsbDataSessionMonitor *)param;
|
||||
struct epoll_event events[64];
|
||||
|
@ -400,6 +486,8 @@ void *UsbDataSessionMonitor::monitorThread(void *param) {
|
|||
for (int n = 0; n < nevents; ++n) {
|
||||
if (events[n].data.fd == monitor->mUeventFd.get()) {
|
||||
monitor->handleUevent();
|
||||
} else if (events[n].data.fd == monitor->mTimerFd.get()) {
|
||||
monitor->handleTimerEvent();
|
||||
} else if (events[n].data.fd == monitor->mDataRoleFd.get()) {
|
||||
monitor->handleDataRoleEvent();
|
||||
} else if (events[n].data.fd == monitor->mDeviceState.fd.get()) {
|
||||
|
|
|
@ -75,9 +75,11 @@ class UsbDataSessionMonitor {
|
|||
|
||||
static void *monitorThread(void *param);
|
||||
void handleUevent();
|
||||
void handleTimerEvent();
|
||||
void handleDataRoleEvent();
|
||||
void handleDeviceStateEvent(struct usbDeviceState *deviceState);
|
||||
void clearDeviceStateEvents(struct usbDeviceState *deviceState);
|
||||
void setupNewSession();
|
||||
void reportUsbDataSessionMetrics();
|
||||
void evaluateComplianceWarning();
|
||||
void notifyComplianceWarning();
|
||||
|
@ -86,6 +88,7 @@ class UsbDataSessionMonitor {
|
|||
pthread_t mMonitor;
|
||||
unique_fd mEpollFd;
|
||||
unique_fd mUeventFd;
|
||||
unique_fd mTimerFd;
|
||||
unique_fd mDataRoleFd;
|
||||
struct usbDeviceState mDeviceState;
|
||||
struct usbDeviceState mHost1State;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue