Merge Android 24Q2 Release (ab/11526283) to aosp-main-future

Bug: 337098550
Merged-In: Ifd5f1b609c0bf5fa98677f9880bfa29496add95d
Change-Id: I15da0840ac7291b41519ae4ae82b09b3c6b5148f
This commit is contained in:
Xin Li 2024-05-06 12:09:17 -07:00
commit dd443fbb75
21 changed files with 352 additions and 259 deletions

View file

@ -205,7 +205,7 @@ BOARD_SUPPORT_MFC_ENC_RGB := true
BOARD_USE_BLOB_ALLOCATOR := false BOARD_USE_BLOB_ALLOCATOR := false
BOARD_SUPPORT_MFC_ENC_BT2020 := true BOARD_SUPPORT_MFC_ENC_BT2020 := true
BOARD_SUPPORT_FLEXIBLE_P010 := true BOARD_SUPPORT_FLEXIBLE_P010 := true
BOARD_SUPPORT_MFC_VERSION := 1660
######################## ########################
BOARD_SUPER_PARTITION_SIZE := 8531214336 BOARD_SUPER_PARTITION_SIZE := 8531214336

View file

@ -17,12 +17,8 @@ on init
write /proc/vendor_sched/teo_util_threshold "2 1024 1024" write /proc/vendor_sched/teo_util_threshold "2 1024 1024"
# Boot time fs tuning # Boot time fs tuning
write /sys/block/sda/queue/iostats 0
write /sys/block/sda/queue/scheduler bfq write /sys/block/sda/queue/scheduler bfq
write /sys/block/sda/queue/iosched/slice_idle 0 write /sys/block/sda/queue/iosched/slice_idle 0
write /sys/block/sda/queue/nr_requests 256
write /dev/sys/fs/by-name/userdata/data_io_flag 56
write /dev/sys/fs/by-name/userdata/node_io_flag 56
chown system system /proc/vendor_sched/groups/bg/set_task_group chown system system /proc/vendor_sched/groups/bg/set_task_group
chown system system /proc/vendor_sched/groups/cam/set_task_group chown system system /proc/vendor_sched/groups/cam/set_task_group
@ -104,15 +100,6 @@ on init
chmod 0660 /proc/vendor_sched/pmu_poll_enable chmod 0660 /proc/vendor_sched/pmu_poll_enable
chmod 0220 /proc/vendor_sched/pmu_poll_time chmod 0220 /proc/vendor_sched/pmu_poll_time
wait /dev/block/platform/${ro.boot.boot_devices}
symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice
# to access UFS/eMMC sysfs directly
symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice
# Disable UFS powersaving
write /dev/sys/block/bootdevice/clkgate_enable 0
start vendor.keymaster-4-0 start vendor.keymaster-4-0
# ZRAM setup # ZRAM setup
@ -284,6 +271,7 @@ on init
# BatteryHealthData # BatteryHealthData
chown system system /sys/class/power_supply/battery/first_usage_date chown system system /sys/class/power_supply/battery/first_usage_date
chown system system /sys/class/power_supply/battery/swelling_data
# Battery Defender # Battery Defender
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt
@ -306,6 +294,7 @@ on init
chown system system /sys/devices/platform/google,charger/bd_trigger_time chown system system /sys/devices/platform/google,charger/bd_trigger_time
chown system system /sys/devices/platform/google,charger/bd_trigger_voltage chown system system /sys/devices/platform/google,charger/bd_trigger_voltage
chown system system /sys/devices/platform/google,charger/bd_clear chown system system /sys/devices/platform/google,charger/bd_clear
chown system system /sys/devices/platform/google,charger/bd_state
chown system system /sys/devices/platform/google,charger/charge_start_level chown system system /sys/devices/platform/google,charger/charge_start_level
chown system system /sys/devices/platform/google,charger/charge_stop_level chown system system /sys/devices/platform/google,charger/charge_stop_level
chown system system /sys/devices/platform/google,cpm/dc_ctl chown system system /sys/devices/platform/google,cpm/dc_ctl
@ -543,15 +532,6 @@ on early-boot
# Wait for insmod_sh to finish all common modules # Wait for insmod_sh to finish all common modules
wait_for_prop vendor.common.modules.ready 1 wait_for_prop vendor.common.modules.ready 1
# Permission for Health Storage HAL
chown system system /dev/sys/block/bootdevice/manual_gc
# Permission for Pixelstats
chown system system /dev/sys/block/bootdevice/slowio_read_cnt
chown system system /dev/sys/block/bootdevice/slowio_write_cnt
chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt
chown system system /dev/sys/block/bootdevice/slowio_sync_cnt
# logbuffer # logbuffer
chown system system /dev/logbuffer_maxfg chown system system /dev/logbuffer_maxfg
chown system system /dev/logbuffer_maxfg_monitor chown system system /dev/logbuffer_maxfg_monitor
@ -669,6 +649,7 @@ on fs
chown system system /sys/class/backlight/panel0-backlight/dimming_on chown system system /sys/class/backlight/panel0-backlight/dimming_on
chown system system /sys/class/backlight/panel0-backlight/hbm_mode chown system system /sys/class/backlight/panel0-backlight/hbm_mode
chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode
chown system system /sys/class/backlight/panel0-backlight/allow_wakeup_by_state_change
chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma
chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh
chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms
@ -700,8 +681,6 @@ on fs
chown system system /sys/class/dqe0/atc/gain_limit chown system system /sys/class/dqe0/atc/gain_limit
chown system system /sys/class/dqe0/atc/lt_calc_ab_shift chown system system /sys/class/dqe0/atc/lt_calc_ab_shift
chown system system /sys/devices/platform/110f0000.drmdp/drm-displayport/dp_hotplug_error_code
chown system system /sys/devices/platform/19470000.drmdecon/early_wakeup chown system system /sys/devices/platform/19470000.drmdecon/early_wakeup
chmod 0660 /sys/devices/platform/19470000.drmdecon/early_wakeup chmod 0660 /sys/devices/platform/19470000.drmdecon/early_wakeup
@ -776,24 +755,6 @@ on property:init.svc.vendor.charger=running
write /sys/devices/system/cpu/cpu7/online 0 write /sys/devices/system/cpu/cpu7/online 0
on property:sys.boot_completed=1 on property:sys.boot_completed=1
# Runtime fs tuning
write /sys/block/sda/queue/nr_requests 128
write /sys/block/sda/queue/iostats 1
write /sys/block/sda/queue/iosched/slice_idle 0
write /dev/sys/fs/by-name/userdata/data_io_flag 8
write /dev/sys/fs/by-name/userdata/node_io_flag 8
# Permission for Pixelstats
chown system system /dev/sys/fs/by-name/userdata/compr_written_block
chown system system /dev/sys/fs/by-name/userdata/compr_saved_block
chown system system /dev/sys/fs/by-name/userdata/compr_new_inode
chown system system /dev/sys/fs/by-name/userdata/gc_segment_mode
chown system system /dev/sys/fs/by-name/userdata/gc_reclaimed_segments
chown system system /dev/sys/fs/by-name/userdata/peak_atomic_write
chown system system /dev/sys/fs/by-name/userdata/committed_atomic_block
chown system system /dev/sys/fs/by-name/userdata/revoked_atomic_block
# Enable ZRAM on boot_complete # Enable ZRAM on boot_complete
swapon_all /vendor/etc/fstab.${ro.board.platform} swapon_all /vendor/etc/fstab.${ro.board.platform}
write /proc/sys/vm/swappiness 60 write /proc/sys/vm/swappiness 60
@ -808,9 +769,6 @@ on property:sys.boot_completed=1
write /proc/sys/vm/dirty_expire_centisecs 3000 write /proc/sys/vm/dirty_expire_centisecs 3000
write /proc/sys/vm/dirty_background_ratio 10 write /proc/sys/vm/dirty_background_ratio 10
# Enable UFS powersaving
write /dev/sys/block/bootdevice/clkgate_enable 1
# 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
@ -1146,16 +1104,6 @@ on charger
mkdir /dev/thermal/cdev-by-name 0750 system system mkdir /dev/thermal/cdev-by-name 0750 system system
start vendor.thermal.symlinks start vendor.thermal.symlinks
# Runtime fs tuning
write /sys/block/sda/queue/nr_requests 128
write /sys/block/sda/queue/iostats 1
write /sys/block/sda/queue/iosched/slice_idle 0
write /dev/sys/fs/by-name/userdata/data_io_flag 8
write /dev/sys/fs/by-name/userdata/node_io_flag 8
# Enable UFS powersaving
write /dev/sys/block/bootdevice/clkgate_enable 1
# Cancel boot devfreq and uclamp # Cancel boot devfreq and uclamp
write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1 write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
write /proc/vendor_sched/groups/ta/uclamp_min 0 write /proc/vendor_sched/groups/ta/uclamp_min 0
@ -1182,11 +1130,6 @@ on post-fs-data && property:ro.vendor.factory=1
chmod 666 /sys/class/backlight/panel0-backlight/local_hbm_mode chmod 666 /sys/class/backlight/panel0-backlight/local_hbm_mode
chmod 666 /sys/class/backlight/panel0-backlight/hbm_mode chmod 666 /sys/class/backlight/panel0-backlight/hbm_mode
# 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
# MTE # MTE
on property:persist.device_config.runtime_native_boot.mode_override=sync on property:persist.device_config.runtime_native_boot.mode_override=sync
# Per-core mode overrides. # Per-core mode overrides.

View file

@ -54,6 +54,8 @@
<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 -->
<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"/>

107
device.mk
View file

@ -42,6 +42,7 @@ 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/zuma/dumpstate/item.mk include device/google/zuma/dumpstate/item.mk
@ -76,7 +77,7 @@ PRODUCT_SOONG_NAMESPACES += \
hardware/google/pixel \ hardware/google/pixel \
device/google/zuma \ device/google/zuma \
device/google/zuma/powerstats \ device/google/zuma/powerstats \
system/chre/host/hal_generic \ vendor/google_devices/common/chre/host/hal \
vendor/google/whitechapel/tools \ vendor/google/whitechapel/tools \
vendor/google/interfaces \ vendor/google/interfaces \
vendor/google_devices/common/proprietary/confirmatioui_hal \ vendor/google_devices/common/proprietary/confirmatioui_hal \
@ -89,6 +90,11 @@ LOCAL_KERNEL := $(TARGET_KERNEL_DIR)/Image.lz4
# Set the environment variable to switch the Keymint HAL service to Rust # Set the environment variable to switch the Keymint HAL service to Rust
TRUSTY_KEYMINT_IMPL := rust TRUSTY_KEYMINT_IMPL := rust
ifeq ($(RELEASE_AVF_ENABLE_LLPVM_CHANGES),true)
# Set the environment variable to enable the Secretkeeper HAL service.
SECRETKEEPER_ENABLED := true
endif
# OEM Unlock reporting # OEM Unlock reporting
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
ro.oem_unlock_supported=1 ro.oem_unlock_supported=1
@ -175,26 +181,26 @@ PRODUCT_PRODUCT_PROPERTIES += \
# Set supported Bluetooth profiles to enabled # Set supported Bluetooth profiles to enabled
PRODUCT_PRODUCT_PROPERTIES += \ 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.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 \
bluetooth.profile.gatt.enabled=true \ bluetooth.profile.gatt.enabled?=true \
bluetooth.profile.hap.client.enabled=true \ bluetooth.profile.hap.client.enabled?=true \
bluetooth.profile.hfp.ag.enabled=true \ bluetooth.profile.hfp.ag.enabled?=true \
bluetooth.profile.hid.device.enabled=true \ bluetooth.profile.hid.device.enabled?=true \
bluetooth.profile.hid.host.enabled=true \ bluetooth.profile.hid.host.enabled?=true \
bluetooth.profile.map.server.enabled=true \ bluetooth.profile.map.server.enabled?=true \
bluetooth.profile.mcp.server.enabled=true \ bluetooth.profile.mcp.server.enabled?=true \
bluetooth.profile.opp.enabled=true \ bluetooth.profile.opp.enabled?=true \
bluetooth.profile.pan.nap.enabled=true \ bluetooth.profile.pan.nap.enabled?=true \
bluetooth.profile.pan.panu.enabled=true \ bluetooth.profile.pan.panu.enabled?=true \
bluetooth.profile.pbap.server.enabled=true \ bluetooth.profile.pbap.server.enabled?=true \
bluetooth.profile.sap.server.enabled=true \ bluetooth.profile.sap.server.enabled?=true \
bluetooth.profile.tbs.server.enabled=true \ bluetooth.profile.tbs.server.enabled?=true \
bluetooth.profile.vc.server.enabled=true bluetooth.profile.vc.server.enabled?=true
# Carrier configuration default location # Carrier configuration default location
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
@ -208,7 +214,7 @@ PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.usb.displayport.enabled=1 persist.vendor.usb.displayport.enabled=1
else else
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.usb.displayport.enabled=0 persist.vendor.usb.displayport.enabled=1
endif endif
USE_LASSEN_OEMHOOK := true USE_LASSEN_OEMHOOK := true
@ -294,8 +300,7 @@ PRODUCT_VENDOR_PROPERTIES += \
PRODUCT_VENDOR_PROPERTIES += \ PRODUCT_VENDOR_PROPERTIES += \
ro.opengles.version=196610 \ ro.opengles.version=196610 \
graphics.gpu.profiler.support=true \ graphics.gpu.profiler.support=true
debug.renderengine.backend=skiaglthreaded \
# b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache # b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache
PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1 PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1
@ -385,25 +390,24 @@ PRODUCT_HOST_PACKAGES += \
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
messaging messaging
# Contexthub HAL # CHRE
PRODUCT_PACKAGES += \ ## Tools
android.hardware.contexthub-service.generic
# CHRE tools
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
chre_power_test_client \ chre_power_test_client \
chre_test_client chre_test_client \
chre_aidl_hal_client
endif endif
## HAL
include device/google/gs-common/chre/hal.mk
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml
## Enable the CHRE Daemon ## Enable the CHRE Daemon
CHRE_USF_DAEMON_ENABLED := true CHRE_USF_DAEMON_ENABLED := false
CHRE_DEDICATED_TRANSPORT_CHANNEL_ENABLED := true CHRE_DEDICATED_TRANSPORT_CHANNEL_ENABLED := true
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
chre \
preloaded_nanoapps.json preloaded_nanoapps.json
# Filesystem management tools # Filesystem management tools
@ -551,7 +555,7 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.graphics.mapper@4.0-impl \ android.hardware.graphics.mapper@4.0-impl \
android.hardware.graphics.allocator-V2-service android.hardware.graphics.allocator-V1-service
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.memtrack-service.pixel \ android.hardware.memtrack-service.pixel \
@ -688,6 +692,7 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.app.duration=16600000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.frame_rate_multiple_threshold=120 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.frame_rate_multiple_threshold=120
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.treat_170m_as_sRGB=1 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.treat_170m_as_sRGB=1
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.hwc_hotplug_error_via_neg_vsync=1 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.hwc_hotplug_error_via_neg_vsync=1
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.hwc_hdcp_via_neg_vsync=1
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_layer_caching=true PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_layer_caching=true
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80
@ -710,12 +715,11 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_color_management=tr
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50
# force to blend in P3 mode
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.sf.native_mode=2 \ persist.sys.sf.native_mode=2
persist.sys.sf.color_mode=9
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
device/google/zuma/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb device/google/zuma/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb \
device/google/zuma/display/display_colordata_cal2.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal2.pb
# limit DPP downscale ratio # limit DPP downscale ratio
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.hwc.dpp.downscale=4 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.hwc.dpp.downscale=4
@ -913,21 +917,6 @@ PRODUCT_PACKAGES += ShannonIms
PRODUCT_PACKAGES += ShannonRcs PRODUCT_PACKAGES += ShannonRcs
ifeq (,$(filter aosp_% factory_%,$(TARGET_PRODUCT)))
#ImsMediaAoc library
FEATURE_TYPE := oem_audio
SOONG_CONFIG_NAMESPACES += audio_lib
SOONG_CONFIG_audio_lib += \
audio_type
SOONG_CONFIG_audio_lib_audio_type := $(FEATURE_TYPE)
endif
# ImsMedia
PRODUCT_PACKAGES += \
ImsMediaService \
libimsmedia
# Exynos RIL and telephony # Exynos RIL and telephony
# Multi SIM(DSDS) # Multi SIM(DSDS)
SIM_COUNT := 2 SIM_COUNT := 2
@ -980,6 +969,9 @@ endif
# modem logging binary/configs # modem logging binary/configs
PRODUCT_PACKAGES += modem_logging_control PRODUCT_PACKAGES += modem_logging_control
# libeomservice_proxy binary/configs
PRODUCT_PACKAGES += liboemservice_proxy_default
# PILOT SCENARIOS # PILOT SCENARIOS
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
Pixel_stability.cfg \ Pixel_stability.cfg \
@ -1027,7 +1019,7 @@ PRODUCT_PACKAGES += \
# Audio # Audio
# Audio HAL Server & Default Implementations # Audio HAL Server & Default Implementations
ifeq ($(RELEASE_PIXEL_AIDL_AUDIO_HAL),true) ifeq ($(USE_AUDIO_HAL_AIDL),true)
include device/google/gs-common/audio/aidl.mk include device/google/gs-common/audio/aidl.mk
else else
include device/google/gs-common/audio/hidl_zuma.mk include device/google/gs-common/audio/hidl_zuma.mk
@ -1092,6 +1084,14 @@ PRODUCT_PROPERTY_OVERRIDES += persist.vendor.enable.thermal.genl=true
include device/google/gs-common/edgetpu/edgetpu.mk include device/google/gs-common/edgetpu/edgetpu.mk
# Config variables for TPU chip on device. # Config variables for TPU chip on device.
$(call soong_config_set,edgetpu_config,chip,rio) $(call soong_config_set,edgetpu_config,chip,rio)
# Include the edgetpu targets defined the namespaces below into the final image.
PRODUCT_SOONG_NAMESPACES += \
vendor/google_devices/zuma/proprietary/gchips/tpu/metrics \
vendor/google_devices/zuma/proprietary/gchips/tpu/tflite_delegate \
vendor/google_devices/zuma/proprietary/gchips/tpu/darwinn_logging_service \
vendor/google_devices/zuma/proprietary/gchips/tpu/nnapi_stable_aidl \
vendor/google_devices/zuma/proprietary/gchips/tpu/aidl \
vendor/google_devices/zuma/proprietary/gchips/tpu/hal
# TPU firmware # TPU firmware
PRODUCT_PACKAGES += edgetpu-rio.fw PRODUCT_PACKAGES += edgetpu-rio.fw
@ -1185,6 +1185,7 @@ endif
# Touch service # Touch service
include hardware/google/pixel/input/twoshay.mk include hardware/google/pixel/input/twoshay.mk
include device/google/gs-common/touch/twoshay/aidl_zuma.mk
# Allow longer timeout for incident report generation in bugreport # Allow longer timeout for incident report generation in bugreport
# Overriding in /product partition instead of /vendor intentionally, # Overriding in /product partition instead of /vendor intentionally,

View file

@ -120,30 +120,6 @@
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </hal>
<hal format="aidl" optional="true">
<name>com.google.input.algos.spd</name>
<version>2</version>
<interface>
<name>IScreenProtectorDetectorService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>com.google.input</name>
<version>1-2</version>
<interface>
<name>ITouchContextService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>com.google.input.algos.gril</name>
<version>2</version>
<interface>
<name>IGrilAntennaTuningService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true"> <hal format="aidl" optional="true">
<name>hardware.qorvo.uwb</name> <name>hardware.qorvo.uwb</name>
<interface> <interface>
@ -195,6 +171,7 @@
</hal> </hal>
<hal format="aidl" optional="true"> <hal format="aidl" optional="true">
<name>com.google.pixel.modem.logmasklibrary</name> <name>com.google.pixel.modem.logmasklibrary</name>
<version>1</version>
<interface> <interface>
<name>ILiboemserviceProxy</name> <name>ILiboemserviceProxy</name>
<instance>default</instance> <instance>default</instance>

Binary file not shown.

View file

@ -152,6 +152,26 @@ void dumpAcpmStats() {
readContentsOfDir(acpmTitle, acpmDir, statsSubStr, true, true); readContentsOfDir(acpmTitle, acpmDir, statsSubStr, true, true);
} }
void dumpTcpmPsyUevent() {
const char* tcpmPsy = "tcpm-source-psy-";
DIR *dir = opendir("/sys/class/power_supply/");
struct dirent *entry;
if (dir == NULL)
return;
while ((entry = readdir(dir)) != NULL) {
if (std::string::npos != std::string(entry->d_name).find(tcpmPsy)) {
std::string fullPath("/sys/class/power_supply/" + (const std::string)entry->d_name +
"/uevent");
dumpFileContent("Power supply property tcpm", fullPath.c_str());
break;
}
}
closedir(dir);
}
void dumpPowerSupplyStats() { void dumpPowerSupplyStats() {
const char* dumpList[][2] = { const char* dumpList[][2] = {
{"CPU PM stats", "/sys/devices/system/cpu/cpupm/cpupm/time_in_state"}, {"CPU PM stats", "/sys/devices/system/cpu/cpupm/cpupm/time_in_state"},
@ -162,7 +182,6 @@ void dumpPowerSupplyStats() {
{"Power supply property gcpm_pps", "/sys/class/power_supply/gcpm_pps/uevent"}, {"Power supply property gcpm_pps", "/sys/class/power_supply/gcpm_pps/uevent"},
{"Power supply property main-charger", "/sys/class/power_supply/main-charger/uevent"}, {"Power supply property main-charger", "/sys/class/power_supply/main-charger/uevent"},
{"Power supply property dc-mains", "/sys/class/power_supply/dc-mains/uevent"}, {"Power supply property dc-mains", "/sys/class/power_supply/dc-mains/uevent"},
{"Power supply property tcpm", "/sys/class/power_supply/tcpm-source-psy-11-0025/uevent"},
{"Power supply property usb", "/sys/class/power_supply/usb/uevent"}, {"Power supply property usb", "/sys/class/power_supply/usb/uevent"},
{"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"}, {"Power supply property wireless", "/sys/class/power_supply/wireless/uevent"},
}; };
@ -170,6 +189,8 @@ void dumpPowerSupplyStats() {
for (const auto &row : dumpList) { for (const auto &row : dumpList) {
dumpFileContent(row[0], row[1]); dumpFileContent(row[0], row[1]);
} }
dumpTcpmPsyUevent();
} }
void dumpMaxFg() { void dumpMaxFg() {
@ -325,6 +346,7 @@ void dumpLn8411() {
void dumpBatteryHealth() { void dumpBatteryHealth() {
const char* batteryHealth [][2] { const char* batteryHealth [][2] {
{"Battery Health", "/sys/class/power_supply/battery/health_index_stats"}, {"Battery Health", "/sys/class/power_supply/battery/health_index_stats"},
{"Battery Health SoC Residency", "/sys/class/power_supply/battery/swelling_data"},
{"BMS", "/dev/logbuffer_ssoc"}, {"BMS", "/dev/logbuffer_ssoc"},
{"TTF", "/dev/logbuffer_ttf"}, {"TTF", "/dev/logbuffer_ttf"},
{"TTF details", "/sys/class/power_supply/battery/ttf_details"}, {"TTF details", "/sys/class/power_supply/battery/ttf_details"},
@ -417,24 +439,49 @@ void printValuesOfDirectory(const char *directory, std::string debugfs, const ch
files.clear(); files.clear();
} }
void dumpChg() {
const std::string pmic_bus = "/sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0066";
const char* chg_reg_dump_file = "/sys/class/power_supply/main-charger/device/registers_dump";
const std::string chg_name_cmd = "/sys/class/power_supply/main-charger/device/name";
const std::string pmic_name_cmd = pmic_bus + "/name";
const std::string pmic_reg_dump_file = pmic_bus + "/registers_dump";
const std::string reg_dump_str = " registers dump";
const char* chgConfig [][2] {
{"DC_registers dump", "/sys/class/power_supply/dc-mains/device/registers_dump"},
};
std::string chg_name;
std::string pmic_name;
printf("\n");
int ret = android::base::ReadFileToString(chg_name_cmd, &chg_name);
if (ret && !chg_name.empty()) {
chg_name.erase(chg_name.length() - 1); // remove new line
const std::string chg_reg_dump_title = chg_name + reg_dump_str;
/* CHG reg dump */
dumpFileContent(chg_reg_dump_title.c_str(), chg_reg_dump_file);
}
ret = android::base::ReadFileToString(pmic_name_cmd, &pmic_name);
if (ret && !pmic_name.empty()) {
pmic_name.erase(pmic_name.length() - 1); // remove new line
const std::string pmic_reg_dump_title = pmic_name + reg_dump_str;
/* PMIC reg dump */
dumpFileContent(pmic_reg_dump_title.c_str(), pmic_reg_dump_file.c_str());
}
for (auto &config : chgConfig) {
dumpFileContent(config[0], config[1]);
}
}
void dumpChgUserDebug() { void dumpChgUserDebug() {
const char *chgDebugMax77759 [][2] {
{"max77759_chg registers dump", "/d/max77759_chg/registers"},
{"max77729_pmic registers dump", "/d/max77729_pmic/registers"},
};
const char *chgDebugMax77779 [][2] {
{"max77779_chg registers dump", "/d/max77779_chg/registers"},
{"max77779_pmic registers dump", "/d/max77779_pmic/registers"},
};
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 *maxFg77779StrMatch = "max77779fg"; const char *maxFg77779StrMatch = "max77779fg";
const char *baseChgDir = "/d/max77759_chg";
const char *dcRegName = "DC_registers dump";
const char *dcRegDir = "/sys/class/power_supply/dc-mains/device/registers_dump";
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";
@ -457,20 +504,6 @@ void dumpChgUserDebug() {
if (isUserBuild()) if (isUserBuild())
return; return;
if (isValidFile(dcRegDir)) {
dumpFileContent(dcRegName, dcRegDir);
}
if (isValidDir(baseChgDir)) {
for (auto &row : chgDebugMax77759) {
dumpFileContent(row[0], row[1]);
}
} else {
for (auto &row : chgDebugMax77779) {
dumpFileContent(row[0], row[1]);
}
}
dumpFileContent(chgTblName, chgTblDir); dumpFileContent(chgTblName, chgTblDir);
if (isValidDir(maxFgDir)) { if (isValidDir(maxFgDir)) {
@ -922,6 +955,7 @@ int main() {
dumpLn8411(); dumpLn8411();
dumpBatteryHealth(); dumpBatteryHealth();
dumpBatteryDefend(); dumpBatteryDefend();
dumpChg();
dumpChgUserDebug(); dumpChgUserDebug();
dumpBatteryEeprom(); dumpBatteryEeprom();
dumpChargerStats(); dumpChargerStats();

View file

@ -12,28 +12,4 @@
<name>android.hardware.boot</name> <name>android.hardware.boot</name>
<fqname>IBootControl/default</fqname> <fqname>IBootControl/default</fqname>
</hal> </hal>
<hal format="aidl">
<name>com.google.input.algos.spd</name>
<version>2</version>
<interface>
<name>IScreenProtectorDetectorService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl">
<name>com.google.input</name>
<version>2</version>
<interface>
<name>ITouchContextService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl">
<name>com.google.input.algos.gril</name>
<version>2</version>
<interface>
<name>IGrilAntennaTuningService</name>
<instance>default</instance>
</interface>
</hal>
</manifest> </manifest>

View file

@ -172,61 +172,61 @@
<Limit name="measured-frame-rate-1280x720" range="44-54" /> <Limit name="measured-frame-rate-1280x720" range="44-54" />
</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="233-315" /> <Limit name="measured-frame-rate-352x288" range="442-567" />
<Limit name="measured-frame-rate-640x360" range="114-247" /> <Limit name="measured-frame-rate-640x360" range="309-431" />
<Limit name="measured-frame-rate-720x480" range="47-189" /> <Limit name="measured-frame-rate-720x480" range="291-452" />
<Limit name="measured-frame-rate-1280x720" range="44-54" /> <Limit name="measured-frame-rate-1280x720" range="222-326" />
</MediaCodec> </MediaCodec>
</Decoders> </Decoders>
<Encoders> <Encoders>
<MediaCodec name="c2.exynos.h264.encoder" type="video/avc" update="true"> <MediaCodec name="c2.exynos.h264.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="372-551" /> <Limit name="measured-frame-rate-320x240" range="372-551" />
<Limit name="measured-frame-rate-720x480" range="221-308" /> <Limit name="measured-frame-rate-720x480" range="161-308" />
<Limit name="measured-frame-rate-1280x720" range="151-190" /> <Limit name="measured-frame-rate-1280x720" range="151-190" />
<Limit name="measured-frame-rate-1920x1080" range="58-99" /> <Limit name="measured-frame-rate-1920x1080" range="58-99" />
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.exynos.hevc.encoder" type="video/hevc" update="true"> <MediaCodec name="c2.exynos.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="371-553" /> <Limit name="measured-frame-rate-320x240" range="371-553" />
<Limit name="measured-frame-rate-720x480" range="214-305" /> <Limit name="measured-frame-rate-720x480" range="162-305" />
<Limit name="measured-frame-rate-1280x720" range="154-198" /> <Limit name="measured-frame-rate-1280x720" range="154-198" />
<Limit name="measured-frame-rate-1920x1080" range="46-97" /> <Limit name="measured-frame-rate-1920x1080" range="46-97" />
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es" update="true"> <MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es" update="true">
<!-- measured 90%:575-670 med:575 N=2 --> <!-- measured 90%:240-242 med:241 N=2 -->
<Limit name="measured-frame-rate-176x144" range="575-620" /> <!-- v90%=1.1 --> <Limit name="measured-frame-rate-176x144" range="240-241" /> <!-- v90%=1.0 -->
<!-- measured 90%:222-283 med:222 SLOW N=2 --> <!-- measured 90%:168-172 med:169 N=2 -->
<Limit name="measured-frame-rate-352x288" range="222-250" /> <!-- v90%=1.1 --> <Limit name="measured-frame-rate-352x288" range="168-170" /> <!-- v90%=1.0 -->
<!-- measured 90%:123-124 med:124 N=2 --> <!-- measured 90%:85-86 med:85 N=2 -->
<Limit name="measured-frame-rate-640x480" range="123-124" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-640x480" range="85-85" /> <!-- v90%=1.0 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.exynos.h263.encoder" type="video/3gpp" update="true"> <MediaCodec name="c2.exynos.h263.encoder" type="video/3gpp" update="true">
<!-- measured 90%:626-686 med:627 N=2 --> <!-- measured 90%:244-248 med:244 N=2 -->
<Limit name="measured-frame-rate-176x144" range="626-656" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-176x144" range="244-246" /> <!-- v90%=1.0 -->
<!-- measured 90%:295-300 med:296 N=2 --> <!-- measured 90%:166-170 med:166 N=2 -->
<Limit name="measured-frame-rate-352x288" range="295-298" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-352x288" range="166-168" /> <!-- v90%=1.0 -->
<!-- measured 90%:95-97 med:96 N=2 --> <!-- measured 90%:67-68 med:67 N=2 -->
<Limit name="measured-frame-rate-704x576" range="95-96" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-704x576" range="67-67" /> <!-- v90%=1.0 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" update="true"> <MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured 90%:478-498 med:479 N=2 --> <!-- measured 90%:256-259 med:256 N=2 -->
<Limit name="measured-frame-rate-320x180" range="478-488" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-320x180" range="256-257" /> <!-- v90%=1.0 -->
<!-- measured 90%:334-347 med:334 N=2 --> <!-- measured 90%:165-167 med:165 N=2 -->
<Limit name="measured-frame-rate-640x360" range="334-341" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-640x360" range="165-166" /> <!-- v90%=1.0 -->
<!-- measured 90%:142-143 med:142 N=2 --> <!-- measured 90%:89-92 med:90 N=2 -->
<Limit name="measured-frame-rate-1280x720" range="142-142" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-1280x720" range="89-90" /> <!-- v90%=1.0 -->
<!-- measured 90%:69-70 med:69 N=2 --> <!-- measured 90%:78-80 med:79 N=2 -->
<Limit name="measured-frame-rate-1920x1080" range="69-69" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-1920x1080" range="78-79" /> <!-- v90%=1.0 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" update="true"> <MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
<!-- measured 90%:474-485 med:474 N=2 --> <!-- measured 90%:281-285 med:281 N=2 -->
<Limit name="measured-frame-rate-320x180" range="474-479" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-320x180" range="281-283" /> <!-- v90%=1.0 -->
<!-- measured 90%:192-267 med:193 SLOW N=2 --> <!-- measured 90%:230-233 med:231 N=2 -->
<Limit name="measured-frame-rate-640x360" range="192-227" /> <!-- v90%=1.2 --> <Limit name="measured-frame-rate-640x360" range="230-231" /> <!-- v90%=1.0 -->
<!-- measured 90%:95-96 med:96 N=2 --> <!-- measured 90%:122-124 med:123 N=2 -->
<Limit name="measured-frame-rate-1280x720" range="95-96" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-1280x720" range="122-123" /> <!-- v90%=1.0 -->
<!-- measured 90%:84-86 med:85 N=2 --> <!-- measured 90%:72-73 med:73 N=2 -->
<Limit name="measured-frame-rate-1920x1080" range="84-85" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-1920x1080" range="72-73" /> <!-- v90%=1.0 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.google.av1.encoder" type="video/av01" update="true"> <MediaCodec name="c2.google.av1.encoder" type="video/av01" update="true">
<!-- measured 90%:292-307 med:292 N=2 --> <!-- measured 90%:292-307 med:292 N=2 -->
@ -240,8 +240,8 @@
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true"> <MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
<!-- measured 90%:868-1433 med:869 SLOW N=2 --> <!-- measured 90%:399-837 med:399 SLOW N=2 -->
<Limit name="measured-frame-rate-176x144" range="868-1116" /> <!-- v90%=1.3 --> <Limit name="measured-frame-rate-176x144" range="399-880" /> <!-- v90%=1.4 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true"> <MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
<!-- measured 90%:357-443 med:427 N=4 --> <!-- measured 90%:357-443 med:427 N=4 -->
@ -258,34 +258,34 @@
<Limit name="measured-frame-rate-320x240" range="43-44" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-320x240" range="43-44" /> <!-- v90%=1.0 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true"> <MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
<!-- measured 90%:1426-1471 med:1427 N=2 --> <!-- measured 90%:451-1716 med:451 SLOW N=2 -->
<Limit name="measured-frame-rate-176x144" range="1426-1448" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-176x144" range="451-880" /> <!-- v90%=2.0 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true"> <MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured 90%:392-448 med:392 N=2 --> <!-- measured 90%:392-448 med:392 N=2 -->
<Limit name="measured-frame-rate-320x180" range="392-419" /> <!-- v90%=1.1 --> <Limit name="measured-frame-rate-320x180" range="180-419" /> <!-- v90%=1.1 -->
<!-- measured 90%:213-226 med:214 N=2 --> <!-- measured 90%:213-226 med:214 N=2 -->
<Limit name="measured-frame-rate-640x360" range="213-219" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-640x360" range="102-219" /> <!-- v90%=1.0 -->
<!-- measured 90%:48-54 med:49 N=2 --> <!-- measured 90%:48-54 med:49 N=2 -->
<Limit name="measured-frame-rate-1280x720" range="48-51" /> <!-- v90%=1.1 --> <Limit name="measured-frame-rate-1280x720" range="48-51" /> <!-- v90%=1.1 -->
<!-- measured 90%:35-37 med:36 N=2 --> <!-- measured 90%:35-37 med:36 N=2 -->
<Limit name="measured-frame-rate-1920x1080" range="35-36" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-1920x1080" range="12-36" /> <!-- v90%=1.0 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true"> <MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
<!-- measured 90%:304-378 med:304 SLOW N=2 --> <!-- measured 90%:304-378 med:304 SLOW N=2 -->
<Limit name="measured-frame-rate-320x180" range="304-339" /> <!-- v90%=1.1 --> <Limit name="measured-frame-rate-320x180" range="180-339" /> <!-- v90%=1.1 -->
<!-- measured 90%:103-106 med:104 N=2 --> <!-- measured 90%:103-106 med:104 N=2 -->
<Limit name="measured-frame-rate-640x360" range="103-104" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-640x360" range="52-104" /> <!-- v90%=1.0 -->
<!-- measured 90%:20-24 med:21 N=2 --> <!-- measured 90%:20-24 med:21 N=2 -->
<Limit name="measured-frame-rate-1280x720" range="20-22" /> <!-- v90%=1.1 --> <Limit name="measured-frame-rate-1280x720" range="7-22" /> <!-- v90%=1.1 -->
</MediaCodec> </MediaCodec>
<MediaCodec name="c2.android.av1.encoder" type="video/av01" update="true"> <MediaCodec name="c2.android.av1.encoder" type="video/av01" update="true">
<!-- measured 90%:367-372 med:367 N=2 --> <!-- measured 90%:198-374 med:199 SLOW N=2 -->
<Limit name="measured-frame-rate-320x240" range="367-369" /> <!-- v90%=1.0 --> <Limit name="measured-frame-rate-320x240" range="91-272" /> <!-- v90%=1.4 -->
<!-- measured 90%:66-78 med:67 N=2 --> <!-- measured 90%:16-67 med:17 SLOW N=2 FLAKY(8 - 68) variance:2.0 -->
<Limit name="measured-frame-rate-720x480" range="66-72" /> <!-- v90%=1.1 --> <Limit name="measured-frame-rate-720x480" range="32-72" />
<!-- measured 90%:23-28 med:23 N=2 --> <!-- measured 90%:23-28 med:23 N=2 -->
<Limit name="measured-frame-rate-1280x720" range="23-25" /> <!-- v90%=1.1 --> <Limit name="measured-frame-rate-1280x720" range="7-25" /> <!-- v90%=1.1 -->
</MediaCodec> </MediaCodec>
</Encoders> </Encoders>

View file

@ -1,3 +1,4 @@
#name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,execution_type,execution_timer #name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,execution_type,execution_timer
fr2_bps_ml_model,0,LEGACY,true,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000
sample_linear_reg,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 sample_linear_reg,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000
sample_fully_conn,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 sample_fully_conn,88,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000

View file

@ -1,3 +1,4 @@
#name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,execution_type,execution_timer #name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,execution_type,execution_timer
fr2_bps_ml_model,0,LEGACY,true,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000
sample_linear_reg,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 sample_linear_reg,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000
sample_fully_conn,0,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000 sample_fully_conn,88,LEGACY,false,0,false,0,false,0,SYNCHRONOUS_REGULAR,5000

View file

@ -304,6 +304,7 @@
<item>com.zhiliaoapp.musically:0.07</item> <item>com.zhiliaoapp.musically:0.07</item>
<item>com.bilibili.app.in:0.07</item> <item>com.bilibili.app.in:0.07</item>
<item>com.twitter.android:0.07</item> <item>com.twitter.android:0.07</item>
<item>com.google.android.youtube:0.07</item>
</string-array> </string-array>
<!-- Pre-scale volume at volume step 1 for Absolute Volume --> <!-- Pre-scale volume at volume step 1 for Absolute Volume -->

View file

@ -1,4 +1,6 @@
on property:sys.boot_completed=1 on property:sys.boot_completed=1
chown system system /sys/class/power_supply/maxfg_base/fg_learning_events
chown system system /sys/class/power_supply/maxfg/fg_learning_events
start vendor.pixelstats_vendor start vendor.pixelstats_vendor
on post-fs-data on post-fs-data
chown system system /sys/kernel/metrics/irq/stats_reset chown system system /sys/kernel/metrics/irq/stats_reset

View file

@ -101,12 +101,41 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = {
.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",
.GMSRPath = "/sys/class/power_supply/maxfg/gmsr" .GMSRPath = {
"/sys/class/power_supply/maxfg/gmsr",
"/sys/class/power_supply/maxfg_base/gmsr",
},
.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",
}
}; };
const struct UeventListener::UeventPaths ueventPaths = { const struct UeventListener::UeventPaths ueventPaths = {
.AudioUevent = "/devices/virtual/amcs/amcs", .AudioUevent = "/devices/virtual/amcs/amcs",
.TypeCPartnerUevent = "PRODUCT_TYPE="}; .TypeCPartnerUevent = "PRODUCT_TYPE=",
.FGLearningPath = {
"/sys/class/power_supply/maxfg/fg_learning_events",
"/sys/class/power_supply/maxfg_base/fg_learning_events"
},
.FwUpdatePath = "",
.FGModelLoadingPath = {
"/sys/class/power_supply/maxfg/m5_model_state",
"/sys/class/power_supply/maxfg_base/m5_model_state"
}
};
int main() { int main() {
LOG(INFO) << "starting PixelStats"; LOG(INFO) << "starting PixelStats";

View file

@ -19,6 +19,7 @@
#include <AocStateResidencyDataProvider.h> #include <AocStateResidencyDataProvider.h>
#include <CpupmStateResidencyDataProvider.h> #include <CpupmStateResidencyDataProvider.h>
#include <DevfreqStateResidencyDataProvider.h> #include <DevfreqStateResidencyDataProvider.h>
#include <DisplayMrrStateResidencyDataProvider.h>
#include <AdaptiveDvfsStateResidencyDataProvider.h> #include <AdaptiveDvfsStateResidencyDataProvider.h>
#include <TpuDvfsStateResidencyDataProvider.h> #include <TpuDvfsStateResidencyDataProvider.h>
#include <UfsStateResidencyDataProvider.h> #include <UfsStateResidencyDataProvider.h>
@ -39,6 +40,7 @@ using aidl::android::hardware::power::stats::AdaptiveDvfsStateResidencyDataProvi
using aidl::android::hardware::power::stats::AocStateResidencyDataProvider; using aidl::android::hardware::power::stats::AocStateResidencyDataProvider;
using aidl::android::hardware::power::stats::CpupmStateResidencyDataProvider; using aidl::android::hardware::power::stats::CpupmStateResidencyDataProvider;
using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider; using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider;
using aidl::android::hardware::power::stats::DisplayMrrStateResidencyDataProvider;
using aidl::android::hardware::power::stats::DvfsStateResidencyDataProvider; using aidl::android::hardware::power::stats::DvfsStateResidencyDataProvider;
using aidl::android::hardware::power::stats::UfsStateResidencyDataProvider; using aidl::android::hardware::power::stats::UfsStateResidencyDataProvider;
using aidl::android::hardware::power::stats::EnergyConsumerType; using aidl::android::hardware::power::stats::EnergyConsumerType;
@ -648,6 +650,11 @@ void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p) {
p->addStateResidencyDataProvider(std::move(pixelSdp)); 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 addZumaCommonDataProviders(std::shared_ptr<PowerStats> p) { void addZumaCommonDataProviders(std::shared_ptr<PowerStats> p) {
setEnergyMeter(p); setEnergyMeter(p);

View file

@ -23,6 +23,7 @@ using aidl::android::hardware::power::stats::PowerStats;
void addAoC(std::shared_ptr<PowerStats> p); void addAoC(std::shared_ptr<PowerStats> p);
void addCPUclusters(std::shared_ptr<PowerStats> p); void addCPUclusters(std::shared_ptr<PowerStats> p);
void addDevfreq(std::shared_ptr<PowerStats> p); void addDevfreq(std::shared_ptr<PowerStats> p);
void addDisplayMRR(std::shared_ptr<PowerStats> p);
void addDvfsStats(std::shared_ptr<PowerStats> p); void addDvfsStats(std::shared_ptr<PowerStats> p);
void addGNSS(std::shared_ptr<PowerStats> p); void addGNSS(std::shared_ptr<PowerStats> p);
void addGPU(std::shared_ptr<PowerStats> p); void addGPU(std::shared_ptr<PowerStats> p);

View file

@ -573,6 +573,11 @@ Usb::Usb()
ALOGE("mDisplayPortActivateTimer timerfd failed: %s", strerror(errno)); ALOGE("mDisplayPortActivateTimer timerfd failed: %s", strerror(errno));
abort(); abort();
} }
ALOGI("feature flag enable_usb_data_compliance_warning: %d",
usb_flags::enable_usb_data_compliance_warning());
ALOGI("feature flag enable_input_power_limited_warning: %d",
usb_flags::enable_input_power_limited_warning());
} }
ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role, ScopedAStatus Usb::switchRole(const string& in_portName, const PortRole& in_role,
@ -1218,6 +1223,16 @@ static void uevent_event(uint32_t /*epevents*/, struct data *payload) {
payload->usb->mPartnerUp = true; payload->usb->mPartnerUp = true;
pthread_cond_signal(&payload->usb->mPartnerCV); pthread_cond_signal(&payload->usb->mPartnerCV);
pthread_mutex_unlock(&payload->usb->mPartnerLock); pthread_mutex_unlock(&payload->usb->mPartnerLock);
} else if (std::regex_match(cp, std::regex("(remove)(.*)(-partner)"))) {
string drmDisconnectPath = string(kDisplayPortDrmPath) + "usbc_cable_disconnect";
if (payload->usb->mPartnerSupportsDisplayPort) {
ALOGI("displayport partner removed");
if (!WriteStringToFile("1", drmDisconnectPath)) {
ALOGE("Failed to signal disconnect to drm");
}
payload->usb->mPartnerSupportsDisplayPort = false;
}
} else if (!strncmp(cp, "DEVTYPE=typec_", strlen("DEVTYPE=typec_")) || } else if (!strncmp(cp, "DEVTYPE=typec_", strlen("DEVTYPE=typec_")) ||
!strncmp(cp, "DRIVER=max77759tcpc", !strncmp(cp, "DRIVER=max77759tcpc",
strlen("DRIVER=max77759tcpc")) || strlen("DRIVER=max77759tcpc")) ||
@ -1384,6 +1399,8 @@ ScopedAStatus Usb::setCallback(const shared_ptr<IUsbCallback>& in_callback) {
return ScopedAStatus::ok(); return ScopedAStatus::ok();
} }
/***** DisplayPort Alt Mode Helpers *****/
Status Usb::getDisplayPortUsbPathHelper(string *path) { Status Usb::getDisplayPortUsbPathHelper(string *path) {
DIR *dp; DIR *dp;
Status result = Status::ERROR; Status result = Status::ERROR;
@ -1800,6 +1817,7 @@ void Usb::setupDisplayPortPoll() {
int ret; int ret;
ALOGI("usbdp: setup: beginning setup for displayport poll thread"); ALOGI("usbdp: setup: beginning setup for displayport poll thread");
mPartnerSupportsDisplayPort = true;
/* /*
* If thread is currently starting, then it hasn't setup DisplayPort fd's, and we can abandon * If thread is currently starting, then it hasn't setup DisplayPort fd's, and we can abandon

View file

@ -156,6 +156,11 @@ struct Usb : public BnUsb {
* eventfd to monitor whether a connection results in DisplayPort Alt Mode activating. * eventfd to monitor whether a connection results in DisplayPort Alt Mode activating.
*/ */
int mDisplayPortActivateTimer; int mDisplayPortActivateTimer;
/*
* Indicates whether or not port partner supports DisplayPort, and is used to
* communicate to the drm when the port partner physically disconnects.
*/
bool mPartnerSupportsDisplayPort;
private: private:
pthread_t mPoll; pthread_t mPoll;

View file

@ -26,6 +26,7 @@
#include <pixelstats/StatsHelper.h> #include <pixelstats/StatsHelper.h>
#include <pixelusb/CommonUtils.h> #include <pixelusb/CommonUtils.h>
#include <sys/epoll.h> #include <sys/epoll.h>
#include <sys/timerfd.h>
#include <utils/Log.h> #include <utils/Log.h>
#include <regex> #include <regex>
@ -48,6 +49,9 @@ namespace usb {
#define UEVENT_MSG_LEN 2048 #define UEVENT_MSG_LEN 2048
#define USB_STATE_MAX_LEN 20 #define USB_STATE_MAX_LEN 20
#define DATA_ROLE_MAX_LEN 10 #define DATA_ROLE_MAX_LEN 10
#define WARNING_SURFACE_DELAY_SEC 5
#define ENUM_FAIL_DEFAULT_COUNT_THRESHOLD 3
#define DEVICE_FLAKY_CONNECTION_CONFIGURED_COUNT_THRESHOLD 5
constexpr char kUdcConfigfsPath[] = "/config/usb_gadget/g1/UDC"; constexpr char kUdcConfigfsPath[] = "/config/usb_gadget/g1/UDC";
constexpr char kNotAttachedState[] = "not attached\n"; constexpr char kNotAttachedState[] = "not attached\n";
@ -115,6 +119,15 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
if (addEpollFd(epollFd, ueventFd)) if (addEpollFd(epollFd, ueventFd))
abort(); abort();
unique_fd timerFd(timerfd_create(CLOCK_BOOTTIME, TFD_NONBLOCK));
if (timerFd.get() == -1) {
ALOGE("create timerFd failed");
abort();
}
if (addEpollFd(epollFd, timerFd))
abort();
if (addEpollFile(epollFd.get(), dataRolePath, mDataRoleFd) != 0) { if (addEpollFile(epollFd.get(), dataRolePath, mDataRoleFd) != 0) {
ALOGE("monitor data role failed"); ALOGE("monitor data role failed");
abort(); abort();
@ -139,6 +152,7 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
mEpollFd = std::move(epollFd); mEpollFd = std::move(epollFd);
mUeventFd = std::move(ueventFd); mUeventFd = std::move(ueventFd);
mTimerFd = std::move(timerFd);
mUpdatePortStatusCb = updatePortStatusCb; mUpdatePortStatusCb = updatePortStatusCb;
if (ReadFileToString(kUdcConfigfsPath, &udc) && !udc.empty()) if (ReadFileToString(kUdcConfigfsPath, &udc) && !udc.empty())
@ -150,6 +164,9 @@ UsbDataSessionMonitor::UsbDataSessionMonitor(
ALOGE("pthread creation failed %d", errno); ALOGE("pthread creation failed %d", errno);
abort(); abort();
} }
ALOGI("feature flag enable_report_usb_data_compliance_warning: %d",
usb_flags::enable_report_usb_data_compliance_warning());
} }
UsbDataSessionMonitor::~UsbDataSessionMonitor() {} UsbDataSessionMonitor::~UsbDataSessionMonitor() {}
@ -223,13 +240,55 @@ void UsbDataSessionMonitor::notifyComplianceWarning() {
void UsbDataSessionMonitor::evaluateComplianceWarning() { void UsbDataSessionMonitor::evaluateComplianceWarning() {
std::set<ComplianceWarning> newWarningSet; std::set<ComplianceWarning> newWarningSet;
int elapsedTimeSec;
// TODO: add heuristics and update newWarningSet elapsedTimeSec =
std::chrono::duration_cast<std::chrono::seconds>(boot_clock::now() - mDataSessionStart)
.count();
if (elapsedTimeSec >= WARNING_SURFACE_DELAY_SEC) {
if (mDataRole == PortDataRole::DEVICE && mUdcBind) { 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) { } else if (mDataRole == PortDataRole::HOST) {
int host1StateCount = mHost1State.states.size();
int host1ConfiguredCount =
std::count(mHost1State.states.begin(), mHost1State.states.end(), kConfiguredState);
int host1DefaultCount =
std::count(mHost1State.states.begin(), mHost1State.states.end(), kDefaultState);
int host2StateCount = mHost2State.states.size();
int host2ConfiguredCount =
std::count(mHost2State.states.begin(), mHost2State.states.end(), kConfiguredState);
int host2DefaultCount =
std::count(mHost2State.states.begin(), mHost2State.states.end(), kDefaultState);
if (host1ConfiguredCount == 0 && host2ConfiguredCount == 0 &&
(host1DefaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD ||
host2DefaultCount > ENUM_FAIL_DEFAULT_COUNT_THRESHOLD))
newWarningSet.insert(ComplianceWarning::ENUMERATION_FAIL);
if (host1StateCount == 1 && mHost1State.states.front() == kNotAttachedState &&
host2StateCount == 1 && mHost2State.states.front() == kNotAttachedState)
newWarningSet.insert(ComplianceWarning::MISSING_DATA_LINES);
}
} }
if (newWarningSet != mWarningSet) { if (newWarningSet != mWarningSet) {
std::string newWarningString;
for (auto e : newWarningSet) {
newWarningString += toString(e) + " ";
}
ALOGI("Usb data compliance warning changed to: %s", newWarningString.c_str());
mWarningSet = newWarningSet; mWarningSet = newWarningSet;
notifyComplianceWarning(); notifyComplianceWarning();
} }
@ -259,6 +318,26 @@ void UsbDataSessionMonitor::handleDeviceStateEvent(struct usbDeviceState *device
evaluateComplianceWarning(); evaluateComplianceWarning();
} }
void UsbDataSessionMonitor::setupNewSession() {
mWarningSet.clear();
mDataSessionStart = boot_clock::now();
if (mDataRole == PortDataRole::DEVICE) {
clearDeviceStateEvents(&mDeviceState);
} else if (mDataRole == PortDataRole::HOST) {
clearDeviceStateEvents(&mHost1State);
clearDeviceStateEvents(&mHost2State);
}
if (mDataRole != PortDataRole::NONE) {
struct itimerspec delay = itimerspec();
delay.it_value.tv_sec = WARNING_SURFACE_DELAY_SEC;
int ret = timerfd_settime(mTimerFd.get(), 0, &delay, NULL);
if (ret < 0)
ALOGE("timerfd_settime failed err:%d", errno);
}
}
void UsbDataSessionMonitor::handleDataRoleEvent() { void UsbDataSessionMonitor::handleDataRoleEvent() {
int n; int n;
PortDataRole newDataRole; PortDataRole newDataRole;
@ -283,17 +362,8 @@ void UsbDataSessionMonitor::handleDataRoleEvent() {
reportUsbDataSessionMetrics(); reportUsbDataSessionMetrics();
} }
// Set up for the new data session
mWarningSet.clear();
mDataRole = newDataRole; mDataRole = newDataRole;
mDataSessionStart = boot_clock::now(); setupNewSession();
if (newDataRole == PortDataRole::DEVICE) {
clearDeviceStateEvents(&mDeviceState);
} else if (newDataRole == PortDataRole::HOST) {
clearDeviceStateEvents(&mHost1State);
clearDeviceStateEvents(&mHost2State);
}
} }
} }
@ -328,8 +398,7 @@ void UsbDataSessionMonitor::updateUdcBindStatus(const std::string &devname) {
} else if (!mUdcBind && newUdcBind) { } else if (!mUdcBind && newUdcBind) {
// Gadget soft pullup: reset and start accounting for a new data session. // Gadget soft pullup: reset and start accounting for a new data session.
clearDeviceStateEvents(&mDeviceState); setupNewSession();
mDataSessionStart = boot_clock::now();
} }
} }
@ -383,6 +452,23 @@ void UsbDataSessionMonitor::handleUevent() {
} }
} }
void UsbDataSessionMonitor::handleTimerEvent() {
int byteRead;
uint64_t numExpiration;
byteRead = read(mTimerFd.get(), &numExpiration, sizeof(numExpiration));
if (byteRead != sizeof(numExpiration)) {
ALOGE("incorrect read size");
}
if (numExpiration != 1) {
ALOGE("incorrect expiration count");
}
evaluateComplianceWarning();
}
void *UsbDataSessionMonitor::monitorThread(void *param) { void *UsbDataSessionMonitor::monitorThread(void *param) {
UsbDataSessionMonitor *monitor = (UsbDataSessionMonitor *)param; UsbDataSessionMonitor *monitor = (UsbDataSessionMonitor *)param;
struct epoll_event events[64]; struct epoll_event events[64];
@ -400,6 +486,8 @@ void *UsbDataSessionMonitor::monitorThread(void *param) {
for (int n = 0; n < nevents; ++n) { for (int n = 0; n < nevents; ++n) {
if (events[n].data.fd == monitor->mUeventFd.get()) { if (events[n].data.fd == monitor->mUeventFd.get()) {
monitor->handleUevent(); monitor->handleUevent();
} else if (events[n].data.fd == monitor->mTimerFd.get()) {
monitor->handleTimerEvent();
} else if (events[n].data.fd == monitor->mDataRoleFd.get()) { } else if (events[n].data.fd == monitor->mDataRoleFd.get()) {
monitor->handleDataRoleEvent(); monitor->handleDataRoleEvent();
} else if (events[n].data.fd == monitor->mDeviceState.fd.get()) { } else if (events[n].data.fd == monitor->mDeviceState.fd.get()) {

View file

@ -75,9 +75,11 @@ class UsbDataSessionMonitor {
static void *monitorThread(void *param); static void *monitorThread(void *param);
void handleUevent(); void handleUevent();
void handleTimerEvent();
void handleDataRoleEvent(); void handleDataRoleEvent();
void handleDeviceStateEvent(struct usbDeviceState *deviceState); void handleDeviceStateEvent(struct usbDeviceState *deviceState);
void clearDeviceStateEvents(struct usbDeviceState *deviceState); void clearDeviceStateEvents(struct usbDeviceState *deviceState);
void setupNewSession();
void reportUsbDataSessionMetrics(); void reportUsbDataSessionMetrics();
void evaluateComplianceWarning(); void evaluateComplianceWarning();
void notifyComplianceWarning(); void notifyComplianceWarning();
@ -86,6 +88,7 @@ class UsbDataSessionMonitor {
pthread_t mMonitor; pthread_t mMonitor;
unique_fd mEpollFd; unique_fd mEpollFd;
unique_fd mUeventFd; unique_fd mUeventFd;
unique_fd mTimerFd;
unique_fd mDataRoleFd; unique_fd mDataRoleFd;
struct usbDeviceState mDeviceState; struct usbDeviceState mDeviceState;
struct usbDeviceState mHost1State; struct usbDeviceState mHost1State;

View file

@ -16,11 +16,13 @@ on post-fs
chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_sink_enable chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_sink_enable
chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_source_enable chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_source_enable
chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/update_sdp_enum_timeout chown root system /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/update_sdp_enum_timeout
chown root graphics /sys/devices/platform/110f0000.drmdp/drm-displayport/dp_hotplug_error_code
chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/hpd chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/hpd
chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/irq_hpd chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/irq_hpd
chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/orientation chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/orientation
chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment
chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status
chown root system /sys/devices/platform/110f0000.drmdp/drm-displayport/usbc_cable_disconnect
chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_b_sess chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_b_sess
chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_id chown root system /sys/devices/platform/11110000.usb/dwc3_exynos_otg_id
chown root system /sys/devices/platform/11110000.usb/usb_data_enabled chown root system /sys/devices/platform/11110000.usb/usb_data_enabled
@ -39,9 +41,11 @@ on post-fs
chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_sink_enable chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_sink_enable
chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_source_enable chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/usb_limit_source_enable
chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/update_sdp_enum_timeout chmod 664 /sys/devices/platform/10cb0000.hsi2c/i2c-11/11-0025/update_sdp_enum_timeout
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/dp_hotplug_error_code
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/hpd chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/hpd
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/irq_hpd chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/irq_hpd
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/orientation chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/orientation
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/pin_assignment
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/link_status
chmod 664 /sys/devices/platform/110f0000.drmdp/drm-displayport/usbc_cable_disconnect
chmod 664 /sys/devices/platform/google,pogo/enable_usb chmod 664 /sys/devices/platform/google,pogo/enable_usb