update felix device

based on pipit   93e38fbd070b55875d9c23e214dff6d26ac0cdf9
based on cheetah cdc1dc5379faf6bb60cf4f8b4b967ae87992b2ed

Bug: 206057564
Change-Id: I68ca7715cf7fd96066d8d517bc4daf236512f501
This commit is contained in:
Cyan_Hsieh 2022-02-25 17:40:15 +08:00
parent e0100f2154
commit 687519c606
22 changed files with 1198 additions and 280 deletions

View file

@ -16,10 +16,8 @@
TARGET_LINUX_KERNEL_VERSION := 5.10
DEVICE_USES_NO_TRUSTY := true
USE_SWIFTSHADER := true
BOARD_USES_SWIFTSHADER := true
BOARD_WITHOUT_RADIO := true
$(call inherit-product, device/google/gs201/aosp_common.mk)
$(call inherit-product, device/google/felix/device-felix.mk)

View file

@ -22,7 +22,8 @@ PRODUCT_COPY_FILES += \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_configuration_a2dp_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_a2dp_offload_disabled.xml \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/audio_platform_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_configuration.xml \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/sound_trigger_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_configuration.xml
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/config/sound_trigger_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_configuration.xml \
frameworks/av/services/audiopolicy/config/bluetooth_with_le_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml
# AudioEffectHAL Configuration
PRODUCT_COPY_FILES += \
@ -45,6 +46,7 @@ PRODUCT_COPY_FILES += \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/HANDSFREE.dat:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/HANDSFREE.dat \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/HANDSET.dat:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/HANDSET.dat \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/HEADSET.dat:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/HEADSET.dat \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/mcps.dat:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/mcps.dat \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/waves_config.ini:$(TARGET_COPY_OUT_VENDOR)/etc/waves_config.ini \
device/google/felix/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/waves_preset.mps:$(TARGET_COPY_OUT_VENDOR)/etc/waves_preset.mps

View file

@ -286,7 +286,7 @@
<external_module>
<module libname="audio_waves_aoc.so" argu="Sink=SPK:1"/>
<module libname="audio_spk_35l41.so"/>
<module libname="audio_spk_35l41.so" argu="EnableDualControl"/>
<module libname="audio_fortemedia_aoc.so"/>
<module libname="liboffloadeffect.so"/>
<module libname="audio_amcs_ext.so"/>

View file

@ -28,7 +28,7 @@
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY AUDIO_OUTPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="deep buffer" role="source" flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">

View file

@ -28,7 +28,7 @@
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY AUDIO_OUTPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="deep buffer" role="source" flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">

View file

@ -28,7 +28,7 @@
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY AUDIO_OUTPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="deep buffer" role="source" flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">

View file

@ -27,7 +27,8 @@
<mixer>
<!-- Initial default value of ALSA command -->
<!-- PCM timeout -->
<ctl name="PCM Stream Wait Time in MSec" value="500"/>
<ctl name="PCM Stream Wait Time in MSec" value="100"/>
<ctl name="Voice PCM Stream Wait Time in MSec" value="500"/>
<!-- TDM 0 setting -->
<ctl name="TDM_0_RX Chan" value="Four"/>
@ -47,6 +48,10 @@
<ctl name="HR RX Slots" id="0" value="2"/>
<ctl name="HR RX Slots" id="1" value="3"/>
<!-- Cirrus default 96K -->
<ctl name="Default 96K" value="1"/>
<ctl name="R Default 96K" value="1"/>
<!-- Cirrus Booster Amp TDM slot assignment-->
<!-- RX slot -->
<ctl name="ASPRX1 Slot Position" value="0"/>

View file

@ -35,6 +35,14 @@
<ctl name="EP1 TX Mixer TDM_0_TX" value="1" />
</path>
<path name="mfg-record usb-headset-mic">
<ctl name="Audio Capture Mic Source" value="USB_MIC"/>
<ctl name="USB Capture FORMAT v2" value="1" />
<ctl name="USB Config To AoC v2" value="1"/>
<ctl name="EP1 TX Mixer USB_TX" value="1"/>
<ctl name="MIC Record Soft Gain (dB)" value="0" />
</path>
<path name="mic1-status">
<ctl name="MIC0" value="1" />
</path>
@ -372,11 +380,13 @@
</path>
<path name="loopback-usb-mic-speaker">
<ctl name="Audio Capture Mic Source" value="USB_MIC" />
<ctl name="USB Capture FORMAT v2" value="1" />
<ctl name="MIC Record Soft Gain (dB)" value="0" />
</path>
<path name="loopback-usb-mic-usb-headphone">
<ctl name="Audio Capture Mic Source" value="USB_MIC" />
<ctl name="USB Capture FORMAT v2" value="1" />
<ctl name="MIC Record Soft Gain (dB)" value="0" />
</path>

Binary file not shown.

View file

@ -70,6 +70,9 @@ on property:vendor.mfgapi.touchpanel.permission=1
on post-fs-data
chown bluetooth system /proc/bluetooth/timesync
# Speaker amp permission
chmod 644 /mnt/vendor/persist/audio/speaker.cal
# Fingerprint
on post-fs-data
chown system system /dev/goodix_fp
@ -102,3 +105,9 @@ on init && property:ro.bootmode=normal
# SecureElement eSE2 cts mode
on property:persist.vendor.se.ese2.mode=ctsmode
write /sys/class/st33spi/st33spi/st33spi_state 33
# charger driver exposes now finer grain control, map demo mode to those properties
# NOTE: demo mode can only be exit wiping data (which reset the persist properties)
on property:sys.retaildemo.enabled=1
setprop persist.vendor.charge.stop.level 35
setprop persist.vendor.charge.start.level 30

View file

@ -22,11 +22,13 @@ $(call inherit-product-if-exists, vendor/google_devices/felix/prebuilts/device-v
$(call inherit-product-if-exists, vendor/google_devices/gs201/prebuilts/device-vendor.mk)
$(call inherit-product-if-exists, vendor/google_devices/gs201/proprietary/device-vendor.mk)
$(call inherit-product-if-exists, vendor/google_devices/felix/proprietary/felix/device-vendor-felix.mk)
$(call inherit-product-if-exists, vendor/google_devices/felix/proprietary/device-vendor.mk)
DEVICE_PACKAGE_OVERLAYS += device/google/felix/felix/overlay
include device/google/gs201/device-shipping-common.mk
include device/google/felix/audio/felix/audio-tables.mk
include device/google/gs201/device-shipping-common.mk
$(call soong_config_set,fp_hal_feature,pixel_product, product_a)
include hardware/google/pixel/vibrator/cs40l26/device-stereo.mk
include device/google/gs101/bluetooth/bluetooth.mk
ifeq ($(filter factory_felix, $(TARGET_PRODUCT)),)
@ -63,6 +65,12 @@ PRODUCT_COPY_FILES += \
device/google/felix/felix/display_golden_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_golden_cal0.pb \
device/google/felix/felix/display_golden_cal1.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_golden_cal1.pb
# Display LBE
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1
#config of display brightness dimming
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.brightness.dimming.usage=1
# NFC
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
@ -105,14 +113,18 @@ PRODUCT_COPY_FILES += \
# Bluetooth HAL
DEVICE_MANIFEST_FILE += \
device/google/pantah/bluetooth/manifest_bluetooth.xml
device/google/felix/bluetooth/manifest_bluetooth.xml
PRODUCT_SOONG_NAMESPACES += \
vendor/broadcom/bluetooth
PRODUCT_PACKAGES += \
android.hardware.bluetooth@1.1-service.bcmbtlinux \
bt_vendor.conf
PRODUCT_COPY_FILES += \
device/google/pantah/bluetooth/bt_vendor_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_vendor_overlay.conf
device/google/felix/bluetooth/bt_vendor_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_vendor_overlay.conf
PRODUCT_PROPERTY_OVERRIDES += \
ro.bluetooth.a2dp_offload.supported=true \
persist.bluetooth.a2dp_offload.disabled=false \
persist.bluetooth.a2dp_offload.cap=sbc-aac-aptx-aptxhd-ldac
# Keymaster HAL
#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service
@ -220,3 +232,7 @@ PRODUCT_SOONG_NAMESPACES += vendor/google_devices/felix/prebuilts
# Set zram size
PRODUCT_VENDOR_PROPERTIES += \
vendor.zram.size=3g
# Set support one-handed mode
PRODUCT_PRODUCT_PROPERTIES += \
ro.support_one_handed_mode=true

View file

@ -21,4 +21,5 @@ USES_DEVICE_GOOGLE_FELIX := true
include device/google/gs201/BoardConfig-common.mk
-include vendor/google_devices/gs201/prebuilts/BoardConfigVendor.mk
-include vendor/google_devices/felix/proprietary/BoardConfigVendor.mk
include device/google/felix-sepolicy/felix-sepolicy.mk

View file

@ -253,22 +253,4 @@
<item>"local:4619827677550801153"</item>
</string-array>
<array name="config_sfps_sensor_props_1" translatable="false">
<item>"local:4619827677550801152"</item> <!--displayId -->
<item>0</item> <!--x (not used) -->
<item>510</item> <!--y -->
<item>0</item> <!--radius (not used) -->
</array>
<array name="config_sfps_sensor_props_2" translatable="false">
<item>"local:4619827677550801153"</item> <!--displayId -->
<item>0</item> <!--x (not used) -->
<item>590</item> <!--y -->
<item>0</item> <!--radius (not used) -->
</array>
<array name="config_sfps_sensor_props" translatable="false">
<item>@array/config_sfps_sensor_props_1</item>
<item>@array/config_sfps_sensor_props_2</item>
</array>
</resources>

View file

@ -20,49 +20,6 @@
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
<!-- Type of a sensor that provides a low-power estimate of the desired display
brightness, suitable to listen to while the device is asleep (e.g. during
always-on display) -->
<string name="doze_brightness_sensor_type" translatable="false">com.google.sensor.binned_brightness</string>
<!-- Doze: can we assume the pickup sensor includes a proximity check? -->
<bool name="doze_pickup_performs_proximity_check">true</bool>
<!-- Doze: whether the double tap sensor reports 2D touch coordinates -->
<bool name="doze_double_tap_reports_touch_coordinates">true</bool>
<!-- Doze: Table that translates sensor values from the doze_brightness_sensor_type sensor
to brightness values; -1 means keeping the current brightness. -->
<integer-array name="config_doze_brightness_sensor_to_brightness">
<item>-1</item> <!-- 0: OFF -->
<item>3</item> <!-- 1: NIGHT -->
<item>3</item> <!-- 2: LOW -->
<item>16</item> <!-- 3: HIGH -->
<item>16</item> <!-- 4: SUN -->
</integer-array>
<!-- Doze: Table that translates sensor values from the doze_brightness_sensor_type sensor
to an opacity value for a black scrim that is overlaid in AOD1.
Valid range is from 0 (transparent) to 255 (opaque).
-1 means keeping the current opacity. -->
<integer-array name="config_doze_brightness_sensor_to_scrim_opacity">
<item>-1</item> <!-- 0: OFF -->
<item>133</item> <!-- 1: NIGHT -->
<item>0</item> <!-- 2: LOW -->
<item>0</item> <!-- 3: HIGH -->
<item>0</item> <!-- 4: SUN -->
</integer-array>
<!-- Doze: Name of a sensor per posture state that provides a low-power estimate of the desired
display brightness, suitable to listen to while the device is asleep (e.g. during
always-on display) -->
<string-array name="doze_brightness_sensor_name_posture_mapping" translatable="false">
<item></item> <!-- UNKNOWN -->
<item>Binned Brightness 1 (wake-up)</item> <!-- CLOSED -->
<item>Binned Brightness 0 (wake-up)</item> <!-- HALF_OPENED -->
<item>Binned Brightness 0 (wake-up)</item> <!-- OPENED -->
</string-array>
<!-- Override value to use for proximity sensor. By default, don't register for prox if nothing
is specified in the prox_sensor_posture_mapping. -->
<string name="proximity_sensor_type" translatable="false"></string>

View file

@ -2,7 +2,7 @@
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>7.0</version>
<version>7.1</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
@ -143,7 +143,7 @@
<hal format="hidl">
<name>vendor.google.whitechapel.audio.audioext</name>
<transport>hwbinder</transport>
<version>2.0</version>
<version>3.0</version>
<interface>
<name>IAudioExt</name>
<instance>default</instance>

View file

@ -646,6 +646,19 @@
<CamcorderProfiles cameraId="3">
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="72000000"
width="3840"
height="2160"
frameRate="60" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="33000000"
@ -724,6 +737,20 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="48000000"
width="3840"
height="2160"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="22000000"
@ -803,6 +830,742 @@
<CamcorderProfiles cameraId="4">
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="72000000"
width="3840"
height="2160"
frameRate="60" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="33000000"
width="1920"
height="1080"
frameRate="60" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="48000000"
width="3840"
height="2160"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="22000000"
width="1920"
height="1080"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="90" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="5">
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="48000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="22000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="48000000"
width="3840"
height="2160"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="22000000"
width="1920"
height="1080"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="90" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="6">
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="72000000"
width="3840"
height="2160"
frameRate="60" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="33000000"
width="1920"
height="1080"
frameRate="60" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="48000000"
width="3840"
height="2160"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="22000000"
width="1920"
height="1080"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="90" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="7">
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="72000000"
width="3840"
height="2160"
frameRate="60" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="33000000"
width="1920"
height="1080"
frameRate="60" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="48000000"
width="3840"
height="2160"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="22000000"
width="1920"
height="1080"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- Audio settings are not used for timealpse video recording -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="90" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="8">
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="22000000"
@ -998,17 +1761,17 @@
<AudioEncoderCap name="aac" enabled="true"
minBitRate="758" maxBitRate="288000"
minSampleRate="8000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="heaac" enabled="true"
minBitRate="8000" maxBitRate="64000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="aaceld" enabled="true"
minBitRate="16000" maxBitRate="192000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="amrwb" enabled="true"
minBitRate="6600" maxBitRate="23050"

View file

@ -37,9 +37,9 @@ void addDisplay(std::shared_ptr<PowerStats> p) {
// Add display residency stats
std::vector<std::string> states = {
"Off",
"LP: 1440x3120@1"
"LP: 1440x3120@1",
"LP: 1440x3120@10",
"LP: 1440x3120@30"
"LP: 1440x3120@30",
"On: 1440x3120@60",
"On: 1440x3120@90",
"On: 1440x3120@120",

View file

@ -1,11 +1,74 @@
{
"Sensors":[
{
"Name":"battery",
"Type":"BATTERY",
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"60.0"
],
"VrThreshold":"NAN",
"Multiplier":0.001
},
{
"Name":"neutral_therm",
"Type":"UNKNOWN",
"HotThreshold":[
"NAN",
"31.5",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN"
],
"TempPath":"/dev/thermal/tz-by-name/neutral_therm/tz_temp",
"VrThreshold":"NAN",
"Multiplier":0.001
},
{
"Name":"gnss_tcxo_therm",
"Type":"UNKNOWN",
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN"
],
"TempPath":"/dev/thermal/tz-by-name/gnss_tcxo_therm/tz_temp",
"VrThreshold":"NAN",
"Multiplier":0.001
},
{
"Name":"qi_therm",
"Type":"UNKNOWN",
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN"
],
"TempPath":"/dev/thermal/tz-by-name/qi_therm/tz_temp",
"VrThreshold":"NAN",
"Multiplier":0.001
},
{
"Name":"quiet_therm",
"Type":"UNKNOWN",
"HotThreshold":[
"NAN",
"32.2",
"NAN",
"NAN",
"NAN",
@ -13,36 +76,20 @@
"NAN"
],
"HotHysteresis":[
"0.0",
"0.9",
"0.0",
"0.0",
"0.0",
"0.0",
"0.0"
0.0,
0.9,
0.0,
0.0,
0.0,
0.0,
0.0
],
"TempPath":"/dev/thermal/tz-by-name/neutral_therm/adc_channel/channel_temp",
"TempPath":"/dev/thermal/tz-by-name/quiet_therm/tz_temp",
"VrThreshold":"NAN",
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000
},
{
"Name":"quiet_therm",
"Type":"UNKNOWN",
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN"
],
"TempPath":"/dev/thermal/tz-by-name/quiet_therm/adc_channel/channel_temp",
"VrThreshold":"NAN",
"Multiplier":0.001
},
{
"Name":"usb_pwr_therm",
"Type":"UNKNOWN",
@ -55,7 +102,7 @@
"NAN",
"NAN"
],
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm/adc_channel/channel_temp",
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm/tz_temp",
"VrThreshold":"NAN",
"Multiplier":0.001
},
@ -64,7 +111,7 @@
"Type":"UNKNOWN",
"HotThreshold":[
"NAN",
"39.0",
"35.0",
"NAN",
"NAN",
"NAN",
@ -72,35 +119,50 @@
"NAN"
],
"HotHysteresis":[
"0.0",
"0.9",
"0.0",
"0.0",
"0.0",
"0.0",
"0.0"
0.0,
0.9,
0.0,
0.0,
0.0,
0.0,
0.0
],
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm2/adc_channel/channel_temp",
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm2/tz_temp",
"VrThreshold":"NAN",
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000
},
{
"Name":"VIRTUAL-NEUTRAL-QUIET-USB-0",
"Name":"disp_therm",
"Type":"UNKNOWN",
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN"
],
"TempPath":"/dev/thermal/tz-by-name/disp_therm/tz_temp",
"VrThreshold":"NAN",
"Multiplier":0.001
},
{
"Name":"VIRTUAL-QI-USB",
"Type":"UNKNOWN",
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":[
"neutral_therm",
"quiet_therm",
"qi_therm",
"usb_pwr_therm"
],
"Coefficient":[
"0.35",
"0.15",
"0.5"
"0.650",
"0.350"
],
"Offset":-1300,
"HotThreshold":[
"NAN",
"NAN",
@ -114,21 +176,71 @@
"Multiplier":0.001
},
{
"Name":"VIRTUAL-NEUTRAL-QUIET-USB-1",
"Name":"VIRTUAL-USB2-QUIET",
"Type":"UNKNOWN",
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":[
"usb_pwr_therm2",
"quiet_therm"
],
"Coefficient":[
"0.465",
"0.535"
],
"Offset":-1824,
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN"
],
"VrThreshold":"NAN",
"Multiplier":0.001
},
{
"Name":"VIRTUAL-QUIET-USB2",
"Type":"UNKNOWN",
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":[
"quiet_therm",
"usb_pwr_therm2"
],
"Coefficient":[
"1.208",
"-0.208"
],
"Offset":-874,
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN"
],
"VrThreshold":"NAN",
"Multiplier":0.001
},
{
"Name":"VIRTUAL-NEUTRAL-QUIET",
"Type":"UNKNOWN",
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":[
"neutral_therm",
"quiet_therm",
"usb_pwr_therm"
"quiet_therm"
],
"Coefficient":[
"0.45",
"0.35",
"0.15"
"0.760",
"0.240"
],
"Offset":1800,
"Offset":-2100,
"HotThreshold":[
"NAN",
"NAN",
@ -145,33 +257,35 @@
"Name":"VIRTUAL-SKIN",
"Type":"SKIN",
"VirtualSensor":true,
"TriggerSensor":"neutral_therm",
"Formula":"MINIMUM",
"TriggerSensor":"quiet_therm",
"Formula":"MAXIMUM",
"Combination":[
"VIRTUAL-NEUTRAL-QUIET-USB-0",
"VIRTUAL-NEUTRAL-QUIET-USB-1"
"VIRTUAL-QI-USB",
"VIRTUAL-USB2-QUIET",
"VIRTUAL-QUIET-USB2"
],
"Coefficient":[
"1.0",
"1.0",
"1.0"
],
"HotThreshold":[
"NAN",
"39.0",
"43.0",
"45.0",
"47.0",
"51.0",
"39",
"43",
"45",
"46.5",
"52.0",
"55.0"
],
"HotHysteresis":[
"0.0",
"1.9",
"1.9",
"1.9",
"1.9",
"1.9",
"1.9"
0.0,
1.9,
1.9,
1.9,
1.4,
1.9,
1.9
],
"VrThreshold":"NAN",
"Multiplier":0.001,
@ -179,65 +293,95 @@
"Monitor":true,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
"K_Po":["NAN", "NAN", 1500, 1500, "NAN", "NAN", "NAN"],
"K_Pu":["NAN", "NAN", 1500, 750, "NAN", "NAN", "NAN"],
"K_I":["NAN", "NAN", 20, 0, "NAN", "NAN", "NAN"],
"K_D":["NAN", "NAN", 10, 0, "NAN", "NAN", "NAN"],
"I_Max":["NAN", "NAN", 1000, 0, "NAN", "NAN", "NAN"],
"S_Power":["NAN", "NAN", 3500, 1800, "NAN", "NAN", "NAN"],
"MinAllocPower":["NAN", "NAN", 2500, 1500, "NAN", "NAN", "NAN"],
"MaxAllocPower":["NAN", "NAN", 9500, 3000, "NAN", "NAN", "NAN"],
"I_Cutoff":["NAN", "NAN", 2, 0, "NAN", "NAN", "NAN"]
},
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-0",
"CdevWeightForPID": [0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07],
"CdevCeiling": [3, 3, 6, 7, 8, 10, 10],
"LimitInfo": [0, 0, 0, 0, 8, 10, 10],
"BindedPowerRail": "S4M_VDD_CPUCL0",
"PowerThreshold": [200, 200, 200, 200, 50, 0, 0],
"ReleaseLogic": "DECREASE"
"LimitInfo": [0, 0, 0, 7, 8, 10, 10]
},
{
"CdevRequest": "thermal-cpufreq-1",
"CdevWeightForPID": [0.066, 0.066, 0.066, 0.066, 0.066, 0.066, 0.066],
"CdevCeiling": [7, 7, 8, 9, 11, 13, 13],
"LimitInfo": [0, 0, 0, 0, 11, 13, 13],
"BindedPowerRail": "S3M_VDD_CPUCL1",
"PowerThreshold": [200, 200, 200, 200, 50, 0, 0],
"ReleaseLogic": "DECREASE"
"LimitInfo": [0, 0, 0, 10, 12, 14, 14]
},
{
"CdevRequest": "thermal-cpufreq-2",
"CdevWeightForPID": [0.313, 0.313, 0.313, 0.313, 0.313, 0.313, 0.313],
"CdevCeiling": [11, 11, 14, 14, 14, 16, 16],
"LimitInfo": [0, 0, 0, 0, 14, 16, 16],
"BindedPowerRail": "S2M_VDD_CPUCL2",
"PowerThreshold": [200, 200, 200, 200, 50, 0, 0],
"ReleaseLogic": "DECREASE"
"LimitInfo": [0, 0, 0, 15, 15, 17, 17]
},
{
"CdevRequest": "thermal-gpufreq-0",
"CdevWeightForPID": [0.551, 0.551, 0.551, 0.551, 0.551, 0.551, 0.551],
"CdevCeiling": [7, 7, 8, 9, 10, 11, 11],
"LimitInfo": [0, 0, 0, 0, 10, 11, 11],
"BindedPowerRail": "S2S_VDD_G3D",
"PowerThreshold": [200, 200, 200, 200, 50, 0, 0],
"ReleaseLogic": "DECREASE"
"LimitInfo": [0, 0, 0, 9, 10, 11, 11]
},
{
"CdevRequest": "tpu_cooling",
"LimitInfo": [0, 1, 2, 3, 4, 4, 4]
"LimitInfo": [0, 2, 3, 4, 5, 5, 5]
},
{
"CdevRequest": "gxp-cooling",
"LimitInfo": [0, 0, 0, 0, 0, 9, 9]
}
]
},
{
"Name":"VIRTUAL-SKIN-CHARGE",
"Type":"UNKNOWN",
"VirtualSensor":true,
"TriggerSensor":"quiet_therm",
"Formula":"MAXIMUM",
"Combination":[
"VIRTUAL-NEUTRAL-QUIET"
],
"Coefficient":[
"1.0"
],
"HotThreshold":[
"NAN",
"39.0",
"41.0",
"43.0",
"45.0",
"47.0",
"55.0"
],
"HotHysteresis":[
0.0,
1.9,
1.9,
1.9,
1.9,
1.9,
1.9
],
"VrThreshold":"NAN",
"Multiplier":0.001,
"Monitor":true,
"PollingDelay":300000,
"PassiveDelay":7000,
"BindedCdevInfo": [
{
"CdevRequest": "fcc",
"LimitInfo": [0, 1, 2, 3, 5, 5, 5]
"LimitInfo": [0, 2, 3, 3, 4, 4, 4],
"BindedPowerRail": "POWER_FOR_CHARGING_THROTTLING",
"PowerThreshold": [500, 500, 500, 500, 500, 0, 0],
"CdevFloorWithPowerLink": [0, 0, 2, 2, 3 ,4 ,4],
"ReleaseLogic": "RELEASE_TO_FLOOR",
"ThrottlingWithPowerLink":true
},
{
"CdevRequest": "dc_icl",
"LimitInfo": [0, 1, 2, 3, 4, 4, 4]
"LimitInfo": [0, 1, 2, 3, 4, 4, 4],
"BindedPowerRail": "POWER_FOR_CHARGING_THROTTLING",
"PowerThreshold": [500, 500, 500, 500, 500, 0, 0],
"CdevFloorWithPowerLink": [0, 1, 2, 3, 3, 4, 4],
"ReleaseLogic": "RELEASE_TO_FLOOR",
"ThrottlingWithPowerLink":true
},
{
"CdevRequest": "wlc_fcc",
"LimitInfo": [0, 3, 3, 4, 5, 5, 5],
"BindedPowerRail": "POWER_FOR_CHARGING_THROTTLING",
"PowerThreshold": [500, 500, 500, 500, 500, 0, 0],
"CdevFloorWithPowerLink": [0, 1, 2, 3, 4, 5, 5],
"ReleaseLogic": "RELEASE_TO_FLOOR",
"ThrottlingWithPowerLink":true
}
]
},
@ -245,13 +389,15 @@
"Name":"cellular-emergency",
"Type":"POWER_AMPLIFIER",
"VirtualSensor":true,
"TriggerSensor":"neutral_therm",
"Formula":"MINIMUM",
"TriggerSensor":"quiet_therm",
"Formula":"MAXIMUM",
"Combination":[
"VIRTUAL-NEUTRAL-QUIET-USB-0",
"VIRTUAL-NEUTRAL-QUIET-USB-1"
"VIRTUAL-QI-USB",
"VIRTUAL-USB2-QUIET",
"VIRTUAL-QUIET-USB2"
],
"Coefficient":[
"1.0",
"1.0",
"1.0"
],
@ -261,17 +407,17 @@
"NAN",
"NAN",
"NAN",
"53.0",
"54.0",
"NAN"
],
"HotHysteresis":[
"0.0",
"0.0",
"0.0",
"0.0",
"0.0",
"1.9",
"0.0"
0.0,
0.0,
0.0,
0.0,
0.0,
1.9,
0.0
],
"VrThreshold":"NAN",
"Multiplier":0.001,
@ -280,18 +426,8 @@
"PassiveDelay":7000
},
{
"Name":"USB2-MINUS-USB",
"Type":"UNKNOWN",
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"Combination":[
"usb_pwr_therm2",
"usb_pwr_therm"
],
"Coefficient":[
"1.0",
"-1.0"
],
"Name":"LITTLE",
"Type":"CPU",
"HotThreshold":[
"NAN",
"NAN",
@ -299,77 +435,44 @@
"NAN",
"NAN",
"NAN",
"NAN"
115.0
],
"VrThreshold":"NAN",
"Multiplier":0.001
},
{
"Name":"VIRTUAL-USB-THROTTLING",
"Type":"USB_PORT",
"VirtualSensor":true,
"Formula":"COUNT_THRESHOLD",
"TriggerSensor":"usb_pwr_therm2",
"Combination":[
"usb_pwr_therm2",
"USB2-MINUS-USB"
],
"Coefficient":[
"39000",
"7000"
],
"Name":"MID",
"Type":"CPU",
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
"2.0",
"NAN",
"NAN"
],
"BindedCdevInfo":[
{
"CdevRequest": "usbc-port",
"LimitInfo": [0, 0, 0, 0, 1, 1, 1]
}
"NAN",
115.0
],
"VrThreshold":"NAN",
"Multiplier":1,
"PollingDelay":60000,
"PassiveDelay":7000
"Multiplier":0.001
},
{
"Name":"VIRTUAL-USB-UI",
"Type":"USB_PORT",
"VirtualSensor":true,
"Formula":"COUNT_THRESHOLD",
"TriggerSensor":"usb_pwr_therm2",
"Combination":[
"usb_pwr_therm2",
"USB2-MINUS-USB"
],
"Coefficient":[
"39000",
"10000"
],
"Name":"BIG",
"Type":"CPU",
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"2.0",
"NAN"
"NAN",
115.0
],
"VrThreshold":"NAN",
"Multiplier":1,
"Monitor":true,
"PollingDelay":60000,
"PassiveDelay":7000
"Multiplier":0.001
},
{
"Name":"battery",
"Type":"BATTERY",
"Name":"G3D",
"Type":"GPU",
"HotThreshold":[
"NAN",
"NAN",
@ -377,11 +480,10 @@
"NAN",
"NAN",
"NAN",
"NAN"
115.0
],
"VrThreshold":"NAN",
"Multiplier":0.001,
"Monitor":false
"Multiplier":0.001
},
{
"Name":"battery_cycle",
@ -463,7 +565,7 @@
"Type":"BCL_PERCENTAGE",
"HotThreshold":[
"NAN",
"NAN",
80,
"NAN",
90,
93,
@ -479,14 +581,6 @@
{
"CdevRequest": "thermal-cpufreq-2",
"LimitInfo": [0, 0, 0, 7, 7, 10, 10]
},
{
"CdevRequest": "thermal-gpufreq-0",
"LimitInfo": [0, 0, 0, 0, 0, 7, 11]
},
{
"CdevRequest": "tpu_cooling",
"LimitInfo": [0, 0, 0, 0, 0, 4, 5]
}
]
},
@ -529,6 +623,33 @@
}
]
},
{
"Name":"BCL_AUDIO_BAACL",
"Type":"BCL_VOLTAGE",
"VirtualSensor":true,
"Formula":"COUNT_THRESHOLD",
"TriggerSensor": "soc",
"Combination":[
"battery",
"soc"
],
"Coefficient":[
"-25000",
"80"
],
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
2.0,
"NAN",
"NAN"
],
"VrThreshold":"NAN",
"Multiplier":1,
"Monitor":true
},
{
"Name":"vdroop1",
"Type":"BCL_VOLTAGE",
@ -754,7 +875,7 @@
"NAN",
"NAN",
"NAN",
12000,
9000,
"NAN",
"NAN"
],
@ -845,6 +966,21 @@
"VrThreshold":"NAN",
"Multiplier":1,
"Monitor":true
},
{
"Name":"TPU",
"Type":"NPU",
"HotThreshold":[
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
"NAN",
115.0
],
"VrThreshold":"NAN",
"Multiplier":0.001
}
],
"CoolingDevices":[
@ -852,33 +988,25 @@
"Name":"thermal-cpufreq-0",
"Type":"CPU",
"WritePath":"/dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote",
"State2Power":["412", "352", "308", "236", "212", "176", "152", "116", "76", "56", "24"],
"PowerRail":"S4M_VDD_CPUCL0"
"State2Power":["1100", "1050", "1000", "950", "900", "850", "800", "750", "700", "650", "600"]
},
{
"Name":"thermal-cpufreq-1",
"Type":"CPU",
"WritePath":"/dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote",
"State2Power":["1198", "1018", "854", "696", "566", "452", "356", "296", "226", "188", "152", "124", "90", "58"],
"PowerRail":"S3M_VDD_CPUCL1"
"State2Power":["1400", "1350", "1300", "1250", "1200", "1150", "1100", "1050", "1000", "950", "900", "850", "800", "750"]
},
{
"Name":"thermal-cpufreq-2",
"Type":"CPU",
"WritePath":"/dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote",
"State2Power":["4208", "3692", "3370", "2898", "2562", "2240", "2084", "1780", "1424", "1276", "1042", "858", "714", "560", "448", "364", "166"],
"PowerRail":"S2M_VDD_CPUCL2"
"State2Power":["1450", "1400", "1350", "1300", "1250", "1200", "1150", "1100", "1050", "1000", "950", "900", "850", "800", "750"]
},
{
"Name":"thermal-gpufreq-0",
"Type":"GPU",
"WritePath":"/dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote",
"State2Power":["4371", "3543", "3085", "2293", "1927", "1707", "1394", "1171", "967", "768", "592", "433"],
"PowerRail":"S2S_VDD_G3D"
},
{
"Name":"usbc-port",
"Type":"BATTERY"
"State2Power":["4371", "3543", "3085", "2293", "1927", "1707", "1394", "1171", "967", "768", "592", "433"]
},
{
"Name":"fcc",
@ -888,17 +1016,33 @@
"Name":"dc_icl",
"Type":"BATTERY"
},
{
"Name":"wlc_fcc",
"Type":"BATTERY"
},
{
"Name":"tpu_cooling",
"Type":"NPU",
"WritePath":"/dev/thermal/cdev-by-name/tpu_cooling/user_vote"
},
{
"Name":"gxp-cooling",
"Type":"NPU",
"WritePath":"/dev/thermal/cdev-by-name/gxp-cooling/user_vote"
}
],
"PowerRails":[
{
"Name":"PPVAR_VSYS_PWR_DISP"
},
{
"Name":"VSYS_PWR_MODEM"
},
{
"Name":"S2M_VDD_CPUCL2",
"PowerSampleDelay":14000,
"PowerSampleCount":5
},
{
"Name":"S3M_VDD_CPUCL1",
@ -910,10 +1054,41 @@
"PowerSampleDelay":14000,
"PowerSampleCount":5
},
{
"Name":"S5M_VDD_INT"
},
{
"Name":"S1M_VDD_MIF"
},
{
"Name":"S2S_VDD_G3D",
"PowerSampleDelay":14000,
"PowerSampleCount":5
},
{
"Name":"POWER_FOR_CHARGING_THROTTLING",
"VirtualRails":true,
"Formula":"WEIGHTED_AVG",
"Combination":[
"VSYS_PWR_MODEM",
"S2M_VDD_CPUCL2",
"S3M_VDD_CPUCL1",
"S4M_VDD_CPUCL0",
"S5M_VDD_INT",
"S1M_VDD_MIF",
"S2S_VDD_G3D"
],
"Coefficient":[
"1.0",
"1.0",
"1.0",
"1.0",
"1.0",
"1.0",
"1.0"
],
"PowerSampleDelay":14000,
"PowerSampleCount":5
}
]
}