diff options
-rw-r--r-- | BoardConfig-common.mk | 9 | ||||
-rw-r--r-- | conf/init.gs101.rc | 64 | ||||
-rw-r--r-- | conf/ueventd.gs101.rc | 38 | ||||
-rw-r--r-- | default-permissions.xml | 2 | ||||
-rw-r--r-- | device.mk | 66 | ||||
-rw-r--r-- | device_framework_matrix_product.xml | 15 | ||||
-rw-r--r-- | dumpstate/dump_gs101.sh | 30 | ||||
-rw-r--r-- | location/gps.cer | 14 | ||||
-rw-r--r-- | manifest.xml | 8 | ||||
-rw-r--r-- | manifest_64.xml | 8 | ||||
-rw-r--r-- | manifest_media.xml | 10 | ||||
-rw-r--r-- | manifest_media_aosp.xml | 2 | ||||
-rw-r--r-- | media_codecs_performance_c2.xml | 8 | ||||
-rw-r--r-- | overlay/frameworks/base/core/res/res/values/config.xml | 1 | ||||
-rw-r--r-- | pixelstats/pixelstats-vendor.gs101.rc | 1 | ||||
-rw-r--r-- | pixelstats/service.cpp | 15 | ||||
-rw-r--r-- | powerstats/Gs101CommonDataProviders.cpp | 7 | ||||
-rw-r--r-- | powerstats/include/Gs101CommonDataProviders.h | 1 | ||||
-rw-r--r-- | rro_overlays/WifiOverlay/res/values/config.xml | 8 | ||||
-rw-r--r-- | usb/usb/Usb.cpp | 5 | ||||
-rw-r--r-- | usb/usb/UsbDataSessionMonitor.cpp | 120 | ||||
-rw-r--r-- | usb/usb/UsbDataSessionMonitor.h | 3 |
22 files changed, 247 insertions, 188 deletions
diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index d94a6190..2fdbc7ff 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -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))) diff --git a/conf/init.gs101.rc b/conf/init.gs101.rc index 13a01b27..d0aaabe0 100644 --- a/conf/init.gs101.rc +++ b/conf/init.gs101.rc @@ -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 diff --git a/conf/ueventd.gs101.rc b/conf/ueventd.gs101.rc index 3a8e39d0..4321e738 100644 --- a/conf/ueventd.gs101.rc +++ b/conf/ueventd.gs101.rc @@ -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,31 +220,24 @@ /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 /sys/bus/iio/devices/iio:device* enabled_rails 0660 system system # USB -/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/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 -/sys/devices/platform/google,pogo move_data_to_usb 664 root system +/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-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 +/sys/devices/platform/google,pogo move_data_to_usb 664 root system diff --git a/default-permissions.xml b/default-permissions.xml index ff0094a2..fb5ed945 100644 --- a/default-permissions.xml +++ b/default-permissions.xml @@ -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"/> @@ -36,6 +36,9 @@ include device/google/gs-common/sota_app/factoryota.mk include device/google/gs-common/misc_writer/misc_writer.mk include device/google/gs-common/gyotaku_app/gyotaku.mk include device/google/gs-common/bootctrl/bootctrl_aidl.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 +69,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 \ @@ -236,6 +239,7 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \ + frameworks/native/data/etc/android.software.contextualsearch.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.contextualsearch.xml \ frameworks/native/data/etc/android.software.vulkan.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \ frameworks/native/data/etc/android.software.opengles.deqp.level-2023-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml @@ -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 \ @@ -1038,6 +1019,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 @@ -1127,3 +1116,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 diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index 0533fb62..e365bbb0 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -85,14 +85,6 @@ </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> <interface> @@ -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> diff --git a/dumpstate/dump_gs101.sh b/dumpstate/dump_gs101.sh index 43eaeaa1..e5a72254 100644 --- a/dumpstate/dump_gs101.sh +++ b/dumpstate/dump_gs101.sh @@ -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 +echo "\n------ DC_registers dump ------" +cat "/sys/class/power_supply/pca9468-mains/device/registers_dump" +echo "\n------ max77759_chg registers dump ------" +cat "/sys/class/power_supply/main-charger/device/registers_dump" +echo "\n------ max77729_pmic registers dump ------" +cat /sys/devices/platform/10d50000.hsi2c/i2c-*/*-0066/registers_dump + 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" - echo "\n------ max77729_pmic registers dump ------" - cat "/d/max77729_pmic/registers" 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 ------" diff --git a/location/gps.cer b/location/gps.cer index 934e0c5c..eab842b3 100644 --- a/location/gps.cer +++ b/location/gps.cer @@ -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----- diff --git a/manifest.xml b/manifest.xml index fdc85f37..02a3b593 100644 --- a/manifest.xml +++ b/manifest.xml @@ -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> diff --git a/manifest_64.xml b/manifest_64.xml index 5f6d83ae..d8d7b111 100644 --- a/manifest_64.xml +++ b/manifest_64.xml @@ -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> diff --git a/manifest_media.xml b/manifest_media.xml index 3ed9e247..38e56ba2 100644 --- a/manifest_media.xml +++ b/manifest_media.xml @@ -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> diff --git a/manifest_media_aosp.xml b/manifest_media_aosp.xml index 3bc347c9..9a1a3dba 100644 --- a/manifest_media_aosp.xml +++ b/manifest_media_aosp.xml @@ -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> diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml index fc03c53d..49f131f8 100644 --- a/media_codecs_performance_c2.xml +++ b/media_codecs_performance_c2.xml @@ -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> diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index bd9ebd61..a32fd947 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -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 --> diff --git a/pixelstats/pixelstats-vendor.gs101.rc b/pixelstats/pixelstats-vendor.gs101.rc index 70d875ea..4c8ca20f 100644 --- a/pixelstats/pixelstats-vendor.gs101.rc +++ b/pixelstats/pixelstats-vendor.gs101.rc @@ -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 diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index a9397403..d4b803aa 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -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"; diff --git a/powerstats/Gs101CommonDataProviders.cpp b/powerstats/Gs101CommonDataProviders.cpp index 035810b4..615bb164 100644 --- a/powerstats/Gs101CommonDataProviders.cpp +++ b/powerstats/Gs101CommonDataProviders.cpp @@ -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); diff --git a/powerstats/include/Gs101CommonDataProviders.h b/powerstats/include/Gs101CommonDataProviders.h index 98e69538..469d5143 100644 --- a/powerstats/include/Gs101CommonDataProviders.h +++ b/powerstats/include/Gs101CommonDataProviders.h @@ -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); diff --git a/rro_overlays/WifiOverlay/res/values/config.xml b/rro_overlays/WifiOverlay/res/values/config.xml index 7a58d7d4..454d7f89 100644 --- a/rro_overlays/WifiOverlay/res/values/config.xml +++ b/rro_overlays/WifiOverlay/res/values/config.xml @@ -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> diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp index a898b053..b8c5c8ea 100644 --- a/usb/usb/Usb.cpp +++ b/usb/usb/Usb.cpp @@ -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, diff --git a/usb/usb/UsbDataSessionMonitor.cpp b/usb/usb/UsbDataSessionMonitor.cpp index 77defb30..bff52f06 100644 --- a/usb/usb/UsbDataSessionMonitor.cpp +++ b/usb/usb/UsbDataSessionMonitor.cpp @@ -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; - - // TODO: add heuristics and update newWarningSet - if (mDataRole == PortDataRole::DEVICE && mUdcBind) { - } else if (mDataRole == PortDataRole::HOST) { + int elapsedTimeSec; + + 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()) { diff --git a/usb/usb/UsbDataSessionMonitor.h b/usb/usb/UsbDataSessionMonitor.h index 596f378f..aced8a48 100644 --- a/usb/usb/UsbDataSessionMonitor.h +++ b/usb/usb/UsbDataSessionMonitor.h @@ -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; |