eqs: initial conversion from dubai

This commit is contained in:
SGCMarkus
2022-10-18 22:53:03 +02:00
parent 865bfdcecd
commit 954ee7661c
61 changed files with 5438 additions and 6320 deletions

View File

@@ -16,6 +16,6 @@
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_DEVICE),dubai)
ifeq ($(TARGET_DEVICE),eqs)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif

View File

@@ -15,9 +15,9 @@
#
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/lineage_dubai.mk
$(LOCAL_DIR)/lineage_eqs.mk
COMMON_LUNCH_CHOICES := \
lineage_dubai-user \
lineage_dubai-userdebug \
lineage_dubai-eng
lineage_eqs-user \
lineage_eqs-userdebug \
lineage_eqs-eng

View File

@@ -14,25 +14,24 @@
# limitations under the License.
#
DEVICE_PATH := device/motorola/dubai
DEVICE_PATH := device/motorola/eqs
# Inherit from motorola sm7325-common
include device/motorola/sm7325-common/BoardConfigCommon.mk
# Inherit from motorola sm8475-common
include device/motorola/sm8475-common/BoardConfigCommon.mk
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := dubai
TARGET_BOOTLOADER_BOARD_NAME := eqs
# Fingerprint
TARGET_SURFACEFLINGER_UDFPS_LIB := //$(DEVICE_PATH):libudfps_extension.dubai
SOONG_CONFIG_qtidisplay_udfps := true
#TARGET_SURFACEFLINGER_UDFPS_LIB := //$(DEVICE_PATH):libudfps_extension.eqs
#SOONG_CONFIG_qtidisplay_udfps := true
# HIDL
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += $(DEVICE_PATH)/device_framework_matrix_dubai.xml
DEVICE_MANIFEST_YUPIK_FILES += $(DEVICE_PATH)/manifest_dubai.xml
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += $(DEVICE_PATH)/device_framework_matrix_eqs.xml
DEVICE_MANIFEST_CAPE_FILES += $(DEVICE_PATH)/manifest_eqs.xml
# Kernel
BOARD_KERNEL_CMDLINE += androidboot.hab.product=dubai
TARGET_KERNEL_CONFIG += vendor/lineage_dubai.config
TARGET_KERNEL_CONFIG += vendor/lineage_eqs.config
# Kernel Modules
BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load))
@@ -41,14 +40,14 @@ BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVIC
BOOT_KERNEL_MODULES := $(BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD)
# Partitions
BOARD_USERDATAIMAGE_PARTITION_SIZE := 116340535296
BOARD_USERDATAIMAGE_PARTITION_SIZE := 228362006528
ifneq ($(WITH_GMS),true)
BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 3318226944
BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 873680896
BOARD_SYSTEM_EXTIMAGE_PARTITION_RESERVED_SIZE := 916299776
endif
BOARD_MOT_DP_GROUP_SIZE := 8921284608 # ( BOARD_SUPER_PARTITION_SIZE - 4MB )
BOARD_SUPER_PARTITION_SIZE := 8925478912
BOARD_MOT_DP_GROUP_SIZE := 11806965760 # ( BOARD_SUPER_PARTITION_SIZE - 4MB )
BOARD_SUPER_PARTITION_SIZE := 11811160064
# Properties
TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop
@@ -58,7 +57,7 @@ TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 90
# Security
VENDOR_SECURITY_PATCH := 2022-06-01
VENDOR_SECURITY_PATCH := 2022-09-01
# inherit from the proprietary version
include vendor/motorola/dubai/BoardConfigVendor.mk
include vendor/motorola/eqs/BoardConfigVendor.mk

25
audio/audio_effects.xml Executable file → Normal file
View File

@@ -3,6 +3,7 @@
<libraries>
<library name="proxy" path="libeffectproxy.so"/>
<library name="mmieffects" path="libmmieffectswrapper.so"/>
<library name="mot_speaker_helper" path="libspeakerbundle.so"/>
<library name="bundle" path="libbundlewrapper.so"/>
<library name="reverb" path="libreverbwrapper.so"/>
<library name="visualizer" path="libvisualizer.so"/>
@@ -25,9 +26,33 @@
<effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
<effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
<effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
<effectProxy name="music_helper" library="proxy" uuid="00905020-4e52-11e4-83aa-0002a5d5c51b">
<libsw library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ab"/>
<libhw library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01b0"/>
</effectProxy>
<effect name="voice_helper" library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ac"/>
<effect name="ring_helper" library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ad"/>
<effect name="notification_helper" library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ae"/>
<effect name="aec" library="audio_pre_processing" uuid="0f8d0d2a-59e5-45fe-b6e4-248c8a799109"/>
<effect name="ns" library="audio_pre_processing" uuid="1d97bb0b-9e2f-4403-9ae3-58c2554306f8"/>
</effects>
<postprocess>
<stream type="music">
<apply effect="music_helper"/>
</stream>
<stream type="ring">
<apply effect="ring_helper"/>
</stream>
<stream type="alarm">
<apply effect="ring_helper"/>
</stream>
<stream type="voice_call">
<apply effect="voice_helper"/>
</stream>
<stream type="notification">
<apply effect="notification_helper"/>
</stream>
</postprocess>
<preprocess>
<stream type="voice_communication">
<apply effect="aec"/>

18
audio/audio_ext_spkr.conf Executable file → Normal file
View File

@@ -1,29 +1,29 @@
global_config {
name Dubai
sonification_pad 20
sonification_prox_timeout_sec 5
name Eqs
force_ring_ramp true
sonification_pad 43
}
ring {
#dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps
attenuation 32,31,30,29,27,25,23,21,19,17,15,12,9,6,3,0
knee_step 16
attenuation 43,41,38,35,32,29,26,23,20,17,14,9,4,0,0,0
knee_step 21
}
voice {
#dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps
attenuation 32,31,30,29,27,25,23,21,19,17,15,12,9,6,3,0
knee_step 16
attenuation 43,39,35,32,28,23,21,19,17,15,12,6,1,0,0,0
knee_step 21
}
media {
#dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps
attenuation 32,31,30,29,27,25,23,21,19,17,15,12,9,6,3,0
knee_step 16
attenuation 43,39,35,32,28,23,21,19,17,15,12,6,1,0,0,0
knee_step 21
}

278
audio/audio_policy_configuration.xml Executable file → Normal file
View File

@@ -1,9 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<audioPolicyConfiguration version="7.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
<!-- Global configuration Decalaration -->
<globalConfiguration speaker_drc_enabled="false"/>
<globalConfiguration speaker_drc_enabled="true" call_screen_mode_supported="true"/>
<!-- Modules section:
There is one section per audio HW module present on the platform.
@@ -35,139 +54,214 @@
<item>Telephony Tx</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>FM Tuner</item>
<item>Telephony Rx</item>
<item>FM tuner</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_PRIMARY">
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_FAST AUDIO_OUTPUT_FLAG_PRIMARY">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="haptics output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO_HAPTIC_A"/>
</mixPort>
<mixPort name="deep_buffer" role="source"
flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD AUDIO_OUTPUT_FLAG_NON_BLOCKING">
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000 128000 176400 192000 352800 384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_2POINT1 AUDIO_CHANNEL_OUT_QUAD AUDIO_CHANNEL_OUT_PENTA AUDIO_CHANNEL_OUT_5POINT1 AUDIO_CHANNEL_OUT_6POINT1 AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000 128000 176400 192000 352800 384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_2POINT1 AUDIO_CHANNEL_OUT_QUAD AUDIO_CHANNEL_OUT_PENTA AUDIO_CHANNEL_OUT_5POINT1 AUDIO_CHANNEL_OUT_6POINT1 AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000 128000 176400 192000 352800 384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_2POINT1 AUDIO_CHANNEL_OUT_QUAD AUDIO_CHANNEL_OUT_PENTA AUDIO_CHANNEL_OUT_5POINT1 AUDIO_CHANNEL_OUT_6POINT1 AUDIO_CHANNEL_OUT_7POINT1"/>
</mixPort>
<mixPort name="compressed_offload" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
flags="AUDIO_OUTPUT_FLAG_DIRECT AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD AUDIO_OUTPUT_FLAG_NON_BLOCKING AUDIO_OUTPUT_FLAG_GAPLESS_OFFLOAD">
<profile name="" format="AUDIO_FORMAT_MP3"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_FLAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000 128000 176400 192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_ALAC"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000 128000 176400 192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_2POINT1 AUDIO_CHANNEL_OUT_QUAD AUDIO_CHANNEL_OUT_PENTA AUDIO_CHANNEL_OUT_5POINT1 AUDIO_CHANNEL_OUT_6POINT1 AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_APE"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000 128000 176400 192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_DTS"
samplingRates="32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_2POINT1 AUDIO_CHANNEL_OUT_QUAD AUDIO_CHANNEL_OUT_PENTA AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_DTS_HD"
samplingRates="32000 44100 48000 64000 88200 96000 128000 176400 192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_2POINT1 AUDIO_CHANNEL_OUT_QUAD AUDIO_CHANNEL_OUT_PENTA AUDIO_CHANNEL_OUT_5POINT1 AUDIO_CHANNEL_OUT_6POINT1 AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_2POINT1 AUDIO_CHANNEL_OUT_QUAD AUDIO_CHANNEL_OUT_PENTA AUDIO_CHANNEL_OUT_5POINT1 AUDIO_CHANNEL_OUT_6POINT1 AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA_PRO"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000"
channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_2POINT1 AUDIO_CHANNEL_OUT_QUAD AUDIO_CHANNEL_OUT_PENTA AUDIO_CHANNEL_OUT_5POINT1 AUDIO_CHANNEL_OUT_6POINT1 AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_VORBIS"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000 128000 176400 192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_LC"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V1"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V2"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000 64000 88200 96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="voice_tx" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
samplingRates="8000 16000 48000" channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="primary input" role="sink">
<mixPort name="voip_rx" role="source"
flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_AMBISONIC,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_AMBISONIC,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
<mixPort name="scc input" role="sink" flags="AUDIO_INPUT_FLAG_HW_HOTWORD">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="16000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
samplingRates="8000 16000 32000 48000" channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="incall_music_uplink" role="source"
flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000"
samplingRates="8000 16000 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="hifi_input" role="sink" />
<mixPort name="fm input" role="sink">
<mixPort name="primary input" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="voip_rx" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX">
<mixPort name="fast input" role="sink"
flags="AUDIO_INPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="voip_tx" role="sink"
flags="AUDIO_INPUT_FLAG_VOIP_TX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
samplingRates="8000 16000 32000 48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 16000 48000" channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
<mixPort name="hifi_input" role="sink" />
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink">
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Line Out" type="AUDIO_DEVICE_OUT_LINE" role="sink">
</devicePort>
<devicePort tagName="Dock Headset" type="AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET" role="sink">
<devicePort tagName="Line" type="AUDIO_DEVICE_OUT_LINE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
</devicePort>
<devicePort tagName="HDMI Out" type="AUDIO_DEVICE_OUT_HDMI" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 16000" channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 11025 16000 22050 32000 44100 48000 64000 88200 96000 128000 176400 192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 11025 16000 22050 32000 44100 48000 64000 88200 96000 128000 176400 192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100 48000 64000 88200 96000 128000 176400 192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100 48000 64000 88200 96000 128000 176400 192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="FM Tuner" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 16000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="Telephony Rx" type="AUDIO_DEVICE_IN_TELEPHONY_RX" role="source">
</devicePort>
<devicePort tagName="FM tuner" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000 16000 48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
</devicePort>
@@ -177,45 +271,44 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Earpiece"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,haptics output"/>
<route type="mix" sink="Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,haptics output"/>
<route type="mix" sink="Wired Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,haptics output"/>
<route type="mix" sink="Wired Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Line Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Dock Headset"
sources="primary output,deep_buffer,voip_rx"/>
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,haptics output"/>
<route type="mix" sink="Line"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,haptics output"/>
<route type="mix" sink="HDMI"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,compress_passthrough,voip_rx,haptics output"/>
<route type="mix" sink="Proxy"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,haptics output"/>
<route type="mix" sink="FM"
sources="primary output"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep_buffer,direct_pcm,voip_rx"/>
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,haptics output"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep_buffer,direct_pcm,voip_rx"/>
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,haptics output"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep_buffer,direct_pcm,voip_rx"/>
<route type="mix" sink="HDMI Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,haptics output"/>
<route type="mix" sink="USB Device Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,hifi_playback,voip_rx"/>
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,hifi_playback,haptics output"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,hifi_playback,voip_rx"/>
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,hifi_playback,haptics output"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx,incall_music_uplink"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="Proxy"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,Telephony Rx,A2DP In"/>
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
<route type="mix" sink="scc input"
sources="Built-In Mic,Wired Headset Mic"/>
<route type="mix" sink="fm input"
sources="FM tuner"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
</routes>
</module>
<!-- A2dp Audio HAL -->
@@ -225,18 +318,19 @@
<xi:include href="usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="r_submix_audio_policy_configuration.xml"/>
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
<!-- Bluetooth Audio HAL -->
<xi:include href="bluetooth_audio_policy_configuration.xml"/>
<!-- qti non-offload configuration to support Hearing Aid and LHDC -->
<xi:include href="/vendor/etc/bluetooth_audio_policy_configuration.xml"/>
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="audio_policy_volumes.xml"/>
<xi:include href="default_volume_tables.xml"/>
<xi:include href="/vendor/etc/audio_policy_volumes.xml"/>
<xi:include href="/vendor/etc/default_volume_tables.xml"/>
<!-- End of Volume section -->
</audioPolicyConfiguration>

64
audio/audio_policy_volumes.xml Executable file → Normal file
View File

@@ -9,23 +9,19 @@ volume index from 0 to 100.
-->
<volumes>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>0,-3700</point>
<point>20,-2600</point>
<point>40,-1800</point>
<point>60,-1100</point>
<point>80,-500</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>0,-3000</point>
<point>33,-2000</point>
<point>1,-3000</point>
<point>33,-1600</point>
<point>66,-1000</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_SPEAKER"
ref="DEFAULT_VOICE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_VOICE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="DEFAULT_NON_MUTABLE_HEARING_AID_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>1,-3000</point>
<point>33,-2600</point>
@@ -38,6 +34,8 @@ volume index from 0 to 100.
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="DEFAULT_HEARING_AID_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_SPEAKER"
@@ -46,18 +44,18 @@ volume index from 0 to 100.
ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="SONIFICATION_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>1,-6000</point>
<point>33,-3800</point>
<point>66,-1800</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="DEFAULT_HEARING_AID_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_SPEAKER"
ref="DEFAULT_DEVICE_CATEGORY_SPEAKER_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="DEFAULT_HEARING_AID_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_SPEAKER"
@@ -66,6 +64,8 @@ volume index from 0 to 100.
ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="SONIFICATION_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="DEFAULT_NON_MUTABLE_HEARING_AID_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_SPEAKER"
@@ -74,6 +74,8 @@ volume index from 0 to 100.
ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="SONIFICATION_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_VOICE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_SPEAKER"
@@ -82,6 +84,8 @@ volume index from 0 to 100.
ref="DEFAULT_VOICE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="DEFAULT_HEARING_AID_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_SPEAKER"
@@ -90,26 +94,22 @@ volume index from 0 to 100.
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="SONIFICATION_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="DEFAULT_HEARING_AID_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>1,-3000</point>
<point>33,-2600</point>
<point>66,-2200</point>
<point>100,-1800</point>
</volume>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>1,-3800</point>
<point>33,-2800</point>
<point>66,-2000</point>
<point>100,-1300</point>
</volume>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_EARPIECE">
<point>1,-2700</point>
<point>33,-1600</point>
<point>66,-700</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_SPEAKER"
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="DEFAULT_HEARING_AID_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="SILENT_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_SPEAKER"
@@ -118,6 +118,8 @@ volume index from 0 to 100.
ref="SILENT_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="SILENT_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="SILENT_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_SPEAKER"
@@ -126,6 +128,8 @@ volume index from 0 to 100.
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="DEFAULT_NON_MUTABLE_HEARING_AID_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_SPEAKER"
@@ -134,6 +138,8 @@ volume index from 0 to 100.
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_SPEAKER"
@@ -142,4 +148,6 @@ volume index from 0 to 100.
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_HEARING_AID"
ref="FULL_SCALE_VOLUME_CURVE"/>
</volumes>

35
audio/default_volume_tables.xml Executable file → Normal file
View File

@@ -20,24 +20,24 @@
</reference>
<reference name="SONIFICATION_CATEGORY_SPEAKER_VOLUME_CURVE">
<!-- Speaker Sonification reference Volume Curve -->
<point>1,-4800</point>
<point>33,-3100</point>
<point>66,-1500</point>
<point>1,-3900</point>
<point>33,-2600</point>
<point>66,-1300</point>
<point>100,0</point>
</reference>
<reference name="NOTIFICATION_CATEGORY_SPEAKER_VOLUME_CURVE">
<!-- Speaker Sonification reference Volume Curve -->
<point>1,-4900</point>
<point>33,-3400</point>
<point>66,-2000</point>
<point>100,-700</point>
<point>1,-5300</point>
<point>33,-2990</point>
<point>66,-1800</point>
<point>100,0</point>
</reference>
<reference name="DEFAULT_SYSTEM_VOLUME_CURVE">
<!-- Default System reference Volume Curve -->
<point>1,-3800</point>
<point>33,-3300</point>
<point>66,-2800</point>
<point>100,-2300</point>
<point>100,-1300</point>
</reference>
<reference name="DEFAULT_MEDIA_VOLUME_CURVE">
<!-- Default Media reference Volume Curve -->
@@ -62,9 +62,9 @@
</reference>
<reference name="DEFAULT_DEVICE_CATEGORY_SPEAKER_VOLUME_CURVE">
<!-- Default is Speaker Media Volume Curve -->
<point>1,-5400</point>
<point>1,-5800</point>
<point>33,-3000</point>
<point>66,-1200</point>
<point>66,-1400</point>
<point>100,0</point>
</reference>
<reference name="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE">
@@ -81,4 +81,19 @@
<point>60,-2100</point>
<point>100,-1000</point>
</reference>
<reference name="DEFAULT_HEARING_AID_VOLUME_CURVE">
<!-- Default Hearing Aid Volume Curve -->
<point>1,-12700</point>
<point>20,-8000</point>
<point>60,-4000</point>
<point>100,0</point>
</reference>
<reference name="DEFAULT_NON_MUTABLE_HEARING_AID_VOLUME_CURVE">
<!-- Default non-mutable Hearing Aid Volume Curve -->
<!-- based on DEFAULT_HEARING_AID_VOLUME_CURVE -->
<point>0,-12700</point>
<point>20,-8000</point>
<point>60,-4000</point>
<point>100,0</point>
</reference>
</volumes>

View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<audio_effects_conf version="2.0" xmlns="http://schemas.android.com/audio/audio_effects_conf/v2_0">
<libraries>
<library name="proxy" path="libeffectproxy.so"/>
<library name="mmieffects" path="libmmieffectswrapper.so"/>
<library name="mot_speaker_helper" path="libspeakerbundle.so"/>
<library name="bundle" path="libbundlewrapper.so"/>
<library name="reverb" path="libreverbwrapper.so"/>
<library name="visualizer" path="libvisualizer.so"/>
<library name="downmix" path="libdownmix.so"/>
<library name="dynamics_processing" path="libdynproc.so"/>
<library name="loudness_enhancer" path="libldnhncr.so"/>
<library name="audio_pre_processing" path="libqcomvoiceprocessing.so"/>
<!--<library name="haptic_generator" path="libhapticgenerator.so"/>-->
<library name="moto_sst" path="libmsstwrapper.so"/>
<!--DOLBY DAP-->
<library name="dap" path="libswdap.so"/>
<!--DOLBY END-->
<!--DOLBY GAME-->
<library name="gamedap" path="libswgamedap.so"/>
<!--DOLBY END-->
<!--DOLBY VQE-->
<library name="vqe" path="libswvqe.so"/>
<!--DOLBY DVL-->
<library name="dvl" path="libdlbvol.so"/>
<!--DOLBY END-->
</libraries>
<effects>
<effect name="bassboost" library="bundle" uuid="8631f300-72e2-11df-b57e-0002a5d5c51b"/>
<effect name="virtualizer" library="bundle" uuid="1d4033c0-8557-11df-9f2d-0002a5d5c51b"/>
<effect name="equalizer" library="bundle" uuid="ce772f20-847d-11df-bb17-0002a5d5c51b"/>
<effect name="volume" library="bundle" uuid="119341a0-8469-11df-81f9-0002a5d5c51b"/>
<effect name="mmieffects" library="mmieffects" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ba"/>
<effect name="reverb_env_aux" library="reverb" uuid="4a387fc0-8ab3-11df-8bad-0002a5d5c51b"/>
<effect name="reverb_env_ins" library="reverb" uuid="c7a511a0-a3bb-11df-860e-0002a5d5c51b"/>
<effect name="reverb_pre_aux" library="reverb" uuid="f29a1400-a3bb-11df-8ddc-0002a5d5c51b"/>
<effect name="reverb_pre_ins" library="reverb" uuid="172cdf00-a3bc-11df-a72f-0002a5d5c51b"/>
<effect name="visualizer" library="visualizer" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/>
<effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
<effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
<effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
<effectProxy name="music_helper" library="proxy" uuid="00905020-4e52-11e4-83aa-0002a5d5c51b">
<libsw library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ab"/>
<libhw library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01b0"/>
</effectProxy>
<effect name="voice_helper" library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ac"/>
<effect name="ring_helper" library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ad"/>
<effect name="notification_helper" library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ae"/>
<effect name="aec" library="audio_pre_processing" uuid="0f8d0d2a-59e5-45fe-b6e4-248c8a799109"/>
<effect name="ns" library="audio_pre_processing" uuid="1d97bb0b-9e2f-4403-9ae3-58c2554306f8"/>
<!--<effect name="haptic_generator" library="haptic_generator" uuid="97c4acd1-8b82-4f2f-832e-c2fe5d7a9931"/>-->
<effect name="moto_sst" library="moto_sst" uuid="01325f27-2882-44f7-bdec-e7ce4ea3a581"/>
<!--DOLBY DAP-->
<effect name="dap" library="dap" uuid="9d4921da-8225-4f29-aefa-39537a04bcaa"/>
<!--DOLBY END-->
<!--DOLBY GAME-->
<effect name="gamedap" library="gamedap" uuid="3783c334-d3a0-4d13-874f-0032e5fb80e2"/>
<!--DOLBY END-->
<!--DOLBY VQE-->
<effect name="vqe" library="vqe" uuid="64a0f614-7fa4-48b8-b081-d59dc954616f"/>
<!--DOLBY DVL-->
<effect name="dlb_music_listener" library="dvl" uuid="40f66c8b-5aa5-4345-8919-53ec431aaa98"/>
<effect name="dlb_ring_listener" library="dvl" uuid="21d14087-558a-4f21-94a9-5002dce64bce"/>
<effect name="dlb_alarm_listener" library="dvl" uuid="6aff229c-30c6-4cc8-9957-dbfe5c1bd7f6"/>
<effect name="dlb_system_listener" library="dvl" uuid="874db4d8-051d-4b7b-bd95-a3bebc837e9e"/>
<effect name="dlb_notification_listener" library="dvl" uuid="1f0091e3-6ad8-40fe-9b09-5948f9a26e7e"/>
<!--DOLBY END-->
</effects>
<postprocess>
<stream type="music">
<apply effect="music_helper"/>
<apply effect="dlb_music_listener"/>
</stream>
<stream type="ring">
<apply effect="ring_helper"/>
<apply effect="dlb_ring_listener"/>
</stream>
<stream type="alarm">
<apply effect="ring_helper"/>
<apply effect="dlb_alarm_listener"/>
</stream>
<stream type="voice_call">
<apply effect="voice_helper"/>
</stream>
<stream type="system">
<apply effect="dlb_system_listener"/>
</stream>
<stream type="notification">
<apply effect="notification_helper"/>
<apply effect="dlb_notification_listener"/>
</stream>
</postprocess>
<preprocess>
<stream type="voice_communication">
<apply effect="aec"/>
<apply effect="ns"/>
</stream>
</preprocess>
</audio_effects_conf>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,572 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2014, 2016-2020, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<audio_platform_info>
<bit_width_configs>
<device name="SND_DEVICE_OUT_SPEAKER" bit_width="24"/>
</bit_width_configs>
<interface_names>
<device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="TX_CDC_DMA_TX_3" codec_type="internal"/>
<device name="AUDIO_DEVICE_IN_BACK_MIC" interface="TX_CDC_DMA_TX_3" codec_type="internal"/>
</interface_names>
<module_ids>
<aec>
<device name="SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS" module_id="0x10F35" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_BROADSIDE" module_id="0x10F34" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" module_id="0x10F33" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" module_id="0x10F31" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" module_id="0x10F33" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS" module_id="0x10F31" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_SB" module_id="0x10F39" instance_id="0x8000" param_id="0x10EAF" param_value="0x01"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_SB" module_id="0x10F38" instance_id="0x8000" param_id="0x10EAF" param_value="0x01"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS_SB" module_id="0x10F39" instance_id="0x8000" param_id="0x10EAF" param_value="0x01"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS_SB" module_id="0x10F38" instance_id="0x8000" param_id="0x10EAF" param_value="0x01"/>
</aec>
<ns>
<device name="SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS" module_id="0x10F35" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_BROADSIDE" module_id="0x10F34" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" module_id="0x10F33" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" module_id="0x10F31" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" module_id="0x10F33" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS" module_id="0x10F31" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_SB" module_id="0x10F39" instance_id="0x8000" param_id="0x10EAF" param_value="0x02"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_SB" module_id="0x10F38" instance_id="0x8000" param_id="0x10EAF" param_value="0x02"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS_SB" module_id="0x10F39" instance_id="0x8000" param_id="0x10EAF" param_value="0x02"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS_SB" module_id="0x10F38" instance_id="0x8000" param_id="0x10EAF" param_value="0x02"/>
</ns>
</module_ids>
<pcm_ids>
<usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="43"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="24"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="25"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="26"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="27"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="28"/>
<usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
<usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15"/>
<usecase name="USECASE_VOWLAN_CALL" type="in" id="-1"/>
<usecase name="USECASE_VOWLAN_CALL" type="out" id="-1"/>
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="out" id="30"/>
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="in" id="38"/>
<usecase name="USECASE_AUDIO_SPKR_CALIB_RX" type="out" id="30"/>
<usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="45"/>
<usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY2" type="in" id="42"/>
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="23" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
<usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" />
<usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="12" />
<usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="12" />
<usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="29" />
<usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="29" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="36" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="36" />
<usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" />
<usecase name="USECASE_INCALL_MUSIC_UPLINK2" type="out" id="23" />
<usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="37" />
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="23" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="23" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="23" />
</pcm_ids>
<config_params>
<!-- In the below value string, the value indicates default mono -->
<!-- speaker. It can be set to either left or right -->
<param key="mono_speaker" value="left"/>
<param key="true_32_bit" value="true"/>
<param key="hifi_filter" value="false"/>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="hfp_pcm_dev_id" value="39"/>
<param key="input_mic_max_count" value="3"/>
</config_params>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<crystalk_devices>
<device name="SND_DEVICE_IN_HANDSET_MIC_NN" value="true" />
<device name="SND_DEVICE_IN_HANDSET_MIC" value="false" />
<device name="SND_DEVICE_IN_VOICE_REC_EXTERNAL_MIC_NN" value="true" />
<device name="SND_DEVICE_IN_VOICE_REC_EXTERNAL_MIC" value="false" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_GAME_NN" value="true" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_GAME" value="false" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_NN" value="true" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" value="false" />
<device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE_NN" value="true" />
<device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" value="false" />
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_AEC_NN" value="true" />
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_AEC" value="false" />
</crystalk_devices>
<acdb_ids>
<!-- Output devices -->
<device name="SND_DEVICE_OUT_HANDSET" acdb_id="7" />
<device name="SND_DEVICE_OUT_VOICE_HANDSET" acdb_id="7" />
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7" />
<device name="SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET" acdb_id="7" />
<device name="SND_DEVICE_OUT_HEADPHONES" acdb_id="9" />
<device name="SND_DEVICE_OUT_USB_HEADSET" acdb_id="45" />
<device name="SND_DEVICE_OUT_USB_HEADPHONES" acdb_id="45" />
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" acdb_id="9" />
<device name="SND_DEVICE_OUT_SPEAKER" acdb_id="14" />
<device name="SND_DEVICE_OUT_SPEAKER_RIGHT" acdb_id="13" />
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="15" />
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_HFP" acdb_id="15" />
<device name="SND_DEVICE_OUT_LINE" acdb_id="77" />
<device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" acdb_id="77" />
<device name="SND_DEVICE_OUT_VOICE_LINE" acdb_id="78" />
<device name="SND_DEVICE_OUT_VOLTE_NB_ANC_HANDSET" acdb_id="200" />
<device name="SND_DEVICE_OUT_VOLTE_NB_HANDSET_TMUS" acdb_id="200" />
<device name="SND_DEVICE_OUT_VOICE_TX" acdb_id="245" />
<device name="SND_DEVICE_OUT_VOLTE_NB_TX" acdb_id="245" />
<device name="SND_DEVICE_OUT_VOICE_USB_HEADSET" acdb_id="245" />
<device name="SND_DEVICE_OUT_VOICE_USB_HEADPHONES" acdb_id="245" />
<device name="SND_DEVICE_OUT_VOLTE_NB_TX" acdb_id="246" />
<device name="SND_DEVICE_OUT_AFE_PROXY" acdb_id="19" />
<!-- Input devices -->
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="102" />
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC" acdb_id="4" />
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS" acdb_id="4" />
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS_NN" acdb_id="315" />
<device name="SND_DEVICE_IN_HANDSET_MIC_NS" acdb_id="4" />
<device name="SND_DEVICE_IN_HANDSET_MIC_NN" acdb_id="315" />
<device name="SND_DEVICE_IN_HANDSET_MIC_TOP" acdb_id="88" />
<device name="SND_DEVICE_IN_HANDSET_MIC_NN_TOP" acdb_id="88" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC" acdb_id="35" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" acdb_id="35" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" acdb_id="35" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" acdb_id="35" />
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO" acdb_id="34" />
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE" acdb_id="35" />
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" acdb_id="35" />
<device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" acdb_id="41" />
<device name="SND_DEVICE_IN_USB_HEADSET_MIC" acdb_id="44" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC" acdb_id="114" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" acdb_id="114" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS" acdb_id="114" />
<device name="SND_DEVICE_IN_UNPROCESSED_MIC" acdb_id="11" />
<device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" acdb_id="41" />
<device name="SND_DEVICE_IN_HEADSET_MIC" acdb_id="8" />
<device name="SND_DEVICE_IN_HEADSET_MIC_AEC" acdb_id="47" />
<device name="SND_DEVICE_IN_HEADSET_MIC_CQA" acdb_id="60" />
<device name="SND_DEVICE_IN_CAMCORDER_MIC" acdb_id="61" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC" acdb_id="62" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC_AEC" acdb_id="62" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC_AEC_NS" acdb_id="62" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" acdb_id="62" />
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC" acdb_id="111" />
<device name="SND_DEVICE_IN_HANDSET_DMIC_NS" acdb_id="111" />
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" acdb_id="111" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" acdb_id="117" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" acdb_id="117" />
<device name="SND_DEVICE_IN_THREE_MIC" acdb_id="125" />
<device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" acdb_id="125" />
<device name="SND_DEVICE_IN_UNPROCESSED_MIC" acdb_id="125" />
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" acdb_id="125" />
<device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" acdb_id="125" />
<device name="SND_DEVICE_IN_VOICE_REC_EXTERNAL_MIC" acdb_id="147" />
<device name="SND_DEVICE_IN_VOICE_REC_EXTERNAL_MIC_NN" acdb_id="319" />
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_AEC" acdb_id="244" />
<device name="SND_DEVICE_IN_MIC1" acdb_id="60" />
<device name="SND_DEVICE_IN_MIC2" acdb_id="60" />
<device name="SND_DEVICE_IN_MIC3" acdb_id="60" />
<device name="SND_DEVICE_IN_HDMI_MIC" acdb_id="4" />
<device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" acdb_id="122" />
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" acdb_id="123" />
<device name="SND_DEVICE_IN_CAMCORDER_LANDSCAPE" acdb_id="61" />
<device name="SND_DEVICE_IN_CAMCORDER_INVERT_LANDSCAPE" acdb_id="61" />
<device name="SND_DEVICE_IN_CAMCORDER_PORTRAIT" acdb_id="61" />
<device name="SND_DEVICE_IN_CAMCORDER_SELFIE_LANDSCAPE" acdb_id="61" />
<device name="SND_DEVICE_IN_CAMCORDER_SELFIE_INVERT_LANDSCAPE" acdb_id="61" />
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" acdb_id="35" />
<device name="SND_DEVICE_IN_CAPTURE_FM" acdb_id="90" />
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_NN" acdb_id="11" />
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC_NN" acdb_id="302" />
<device name="SND_DEVICE_IN_VOICE_USB_HEADSET_MIC_NN" acdb_id="303" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_NN" acdb_id="114" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NN" acdb_id="114" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS_NN" acdb_id="114" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_NN" acdb_id="114" />
<device name="SND_DEVICE_IN_HEADSET_MIC_NN" acdb_id="319" />
<device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE_NN" acdb_id="305" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_GAME" acdb_id="114" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_GAME_NN" acdb_id="114" />
<device name="SND_DEVICE_IN_AUX_MIC_AEC_NS" acdb_id="316" />
<device name="SND_DEVICE_IN_AUX_MIC_AEC_NS_NN" acdb_id="316" />
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_NN" acdb_id="306" />
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_AEC_NN" acdb_id="306" />
</acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_HEADPHONES_HIFI_FILTER" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_HEADPHONES_44_1" backend="headphones-44.1" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_BT_SCO_WB" backend="bt-sco-wb" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO" backend="bt-sco" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_BT_A2DP" backend="bt-a2dp" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" backend="speaker-and-headphones" interface="SEN_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_HIFI_FILTER" backend="speaker-and-headphones" interface="SEN_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="SEN_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="SEN_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_CQA_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HANDSET_TMUS" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_ANC_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_HAC_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_CQA_SPEAKER" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_SPEAKER" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_LEFT" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_RIGHT" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HAC_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP" interface="SEN_MI2S_RX-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET" backend="hco" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ANC_FB_HEADSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_FB_HEADSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ANC_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_IN_HANDSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_TOP" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_NN_TOP" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_EXTERNAL" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_GAME" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_GAME_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_AUX_MIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_AUX_MIC_AEC_NS_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_NN" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE_NN" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC_NN" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_REC_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_REC_EXTERNAL_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_REC_EXTERNAL_MIC_NN" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_AEC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_AEC_NN" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_CQA" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_CAMCORDER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_CAMCORDER_BF" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_CAMCORDER_BF_REVERSE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_CAMCORDER_AUDIO_ZOOM" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_AANC_HANDSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_STEREO_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_STEREO_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" interface="SEN_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_1" interface="SEN_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_2" interface="SEN_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC_BROADSIDE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_BROADSIDE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_BROADSIDE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS_BROADSIDE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_BROADSIDE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_FLUENCE_DMIC_AANC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_FLUENCE_PRO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_TMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="SEN_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="SEN_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="SEN_MI2S_RX-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="SEN_MI2S_RX-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET" backend="speaker-and-usb-headset" interface="SEN_MI2S_RX-and-USB_AUDIO_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_USB" backend="usb-headset" interface="USB_AUDIO_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_VCO_USB" backend="usb-headset" interface="USB_AUDIO_RX"/>
<device name="SND_DEVICE_OUT_USB_HEADSET" backend="usb-headset" interface="USB_AUDIO_RX"/>
<device name="SND_DEVICE_OUT_USB_HEADPHONES" backend="usb-headphones" interface="USB_AUDIO_RX"/>
<device name="SND_DEVICE_OUT_VOICE_USB_HEADPHONES" backend="usb-headphones" interface="USB_AUDIO_RX"/>
<device name="SND_DEVICE_OUT_VOICE_USB_HEADSET" backend="usb-headset" interface="USB_AUDIO_RX"/>
<device name="SND_DEVICE_OUT_USB_HEADSET_SPEC" backend="usb-headset" interface="USB_AUDIO_RX"/>
<device name="SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_USB_HEADSET_MIC" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_NN" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_AEC" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_AEC_NN" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_VOICE_USB_HEADSET_MIC" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_VOICE_USB_HEADSET_MIC_NN" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_VOICE_RECOG_USB_HEADSET_MIC" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_MIC1" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_MIC2" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_MIC3" interface="TX_CDC_DMA_TX_3"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
<microphone valid_mask="31" device_id="builtin_mic_1" type="AUDIO_DEVICE_IN_BUILTIN_MIC" address="bottom" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
group="0" index_in_the_group="0" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="93"
frequencies="100.00 106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00 20000.00"
responses="-0.78 -0.71 -0.64 -0.60 -0.55 -0.50 -0.47 -0.42 -0.39 -0.36 -0.34 -0.33 -0.32 -0.29 -0.28 -0.28 -0.27 -0.25 -0.25 -0.24 -0.23 -0.23 -0.22 -0.22 -0.19 -0.17 -0.15 -0.15 -0.14 -0.14 -0.12 -0.11 -0.10 -0.10 -0.08 -0.07 -0.07 -0.04 -0.03 -0.01 0.00 0.04 0.06 0.07 0.08 0.13 0.09 0.14 0.19 0.23 0.28 0.29 0.31 0.37 0.88 0.86 0.77 0.78 0.84 0.86 1.05 1.12 1.18 1.25 1.43 1.66 1.83 2.02 2.23 2.59 2.84 3.35 4.01 6.82 6.62 6.42 7.30 8.23 7.54 12.68 13.76 18.69 19.68 20.90 23.70 25.10 21.65 16.18 18.84 25.44 23.48 23.22 24.89"
sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 0.0 1.0" geometric_location="0.0269 0.0058 0.0079" />
<microphone valid_mask="31" device_id="builtin_mic_2" type="AUDIO_DEVICE_IN_BACK_MIC" address="back" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
group="0" index_in_the_group="1" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="92"
frequencies="106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00 20000.00"
responses="-0.75 -0.74 -0.69 -0.65 -0.62 -0.61 -0.56 -0.53 -0.50 -0.47 -0.43 -0.40 -0.37 -0.36 -0.33 -0.30 -0.28 -0.25 -0.24 -0.24 -0.24 -0.25 -0.24 -0.12 -0.10 -0.08 -0.09 -0.07 -0.07 -0.06 -0.06 -0.06 -0.05 -0.04 -0.05 -0.04 -0.01 0.02 0.02 0.00 0.02 0.03 0.07 0.10 0.10 0.13 0.01 0.01 0.10 0.11 0.19 0.24 0.38 0.46 0.26 0.27 0.43 0.76 0.75 1.09 1.09 0.94 1.06 1.21 1.47 1.45 1.36 2.07 2.85 2.90 3.85 4.65 5.84 5.46 6.15 7.50 8.30 10.62 12.70 16.65 20.95 25.41 26.32 20.20 16.60 11.24 7.85 7.62 20.19 7.32 2.87 5.18"
sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 1.0 0.0" geometric_location="0.0546 0.1456 0.00415" />
<microphone valid_mask="31" device_id="builtin_mic_3" type="AUDIO_DEVICE_IN_BUILTIN_MIC" address="top" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
group="0" index_in_the_group="2" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="92"
frequencies="100.00 106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00"
responses="-9.24 -9.31 -9.39 -9.45 -9.46 -9.47 -9.50 -9.52 -9.51 -9.52 -9.51 -9.50 -9.49 -9.47 -9.48 -9.49 -9.48 -9.50 -9.51 -9.53 -9.55 -9.59 -9.63 -9.67 -9.58 -9.57 -9.65 -9.68 -9.71 -9.75 -9.79 -9.84 -9.87 -9.87 -9.90 -9.90 -9.91 -9.97 -10.01 -10.05 -9.85 -9.93 -9.94 -9.98 -10.04 -10.12 -10.28 -10.25 -10.01 -9.86 -9.81 -9.82 -9.61 -9.46 -8.27 -8.42 -8.98 -8.99 -8.82 -9.21 -8.92 -8.97 -9.30 -9.44 -9.52 -9.28 -9.09 -8.81 -7.02 -5.72 -5.30 -7.26 -8.39 -12.28 -8.23 -6.99 -5.52 -4.87 -3.82 -6.09 0.00 -2.15 -0.26 1.48 5.22 10.92 6.41 9.55 12.96 3.35 22.00 19.75"
sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 0.0 1.0" geometric_location="0.0274 0.14065 0.0079" />
</microphone_characteristics>
<snd_devices>
<input_snd_device>
<input_snd_device_mic_mapping>
<snd_dev in_snd_device="SND_DEVICE_IN_CAMCORDER_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC_AEC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC_AEC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_MIC_NN">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_DMIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_DMIC_TMUS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_SPEAKER_DMIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_AEC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_AEC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_MIC_NN">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_THREE_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_STEREO">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_STEREO">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
</input_snd_device_mic_mapping>
</input_snd_device>
</snd_devices>
</audio_platform_info>

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +0,0 @@
#
# Goodix Touch sensor fod key event
#
#
# 704 finger touch down
# 705 finger touch up
# goodix_ts "finger present"
key 704 SYSTEM_NAVIGATION_DOWN
key 705 SYSTEM_NAVIGATION_UP

View File

@@ -14,9 +14,6 @@
# limitations under the License.
#
# A/B
TARGET_IS_VAB := true
# Boot animation
TARGET_SCREEN_HEIGHT := 2400
TARGET_SCREEN_WIDTH := 1080
@@ -31,20 +28,21 @@ PRODUCT_AAPT_PREBUILT_DPI := xxxhdpi xxhdpi xhdpi hdpi
PRODUCT_SHIPPING_API_LEVEL := 31
# Inherit from motorola sm7325-common
$(call inherit-product, device/motorola/sm7325-common/sm7325.mk)
# Inherit from motorola sm8475-common
$(call inherit-product, device/motorola/sm8475-common/sm8475.mk)
# Overlay
PRODUCT_PACKAGES += \
FrameworksResDubai \
LineageSystemUIDubai \
SettingsProviderResDubai \
SystemUIResDubai
FrameworksResEqs \
LineageSystemUIEqs \
SettingsProviderResEqs \
SystemUIResEqs
# Audio
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/sku_yupik/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik/audio_platform_info.xml \
$(LOCAL_PATH)/audio/sku_yupik/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik/mixer_paths.xml \
$(LOCAL_PATH)/audio/sku_cape/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sku_cape/audio_effects.xml \
$(LOCAL_PATH)/audio/sku_cape/mixer_paths_waipio_mtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_cape/mixer_paths_waipio_mtp.xml \
$(LOCAL_PATH)/audio/sku_cape/resourcemanager_waipio_mtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_cape/resourcemanager_waipio_mtp.xml \
$(LOCAL_PATH)/audio/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(LOCAL_PATH)/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
$(LOCAL_PATH)/audio/audio_ext_spkr.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_ext_spkr.conf \
@@ -53,7 +51,7 @@ PRODUCT_COPY_FILES += \
# Fingerprint
PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.3-service.dubai
android.hardware.biometrics.fingerprint@2.3-service.eqs
# Init
$(foreach f,$(wildcard $(LOCAL_PATH)/rootdir/etc/init/hw/*.rc),\
@@ -63,21 +61,17 @@ $(foreach f,$(wildcard $(LOCAL_PATH)/rootdir/etc/init/*.rc),\
$(foreach f,$(wildcard $(LOCAL_PATH)/rootdir/bin/*.sh),\
$(eval PRODUCT_COPY_FILES += $(f):$(TARGET_COPY_OUT_VENDOR)/bin/$(notdir $f)))
# Keylayout
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/keylayout/goodix_ts.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/goodix_ts.kl
# Media
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/media/media_profiles_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \
$(LOCAL_PATH)/media/media_profiles_yupik_v0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_yupik_v0.xml \
$(LOCAL_PATH)/media/media_profiles_yupik_v1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_yupik_v1.xml
$(LOCAL_PATH)/media/media_profiles_cape.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_cape.xml
# NFC
PRODUCT_PACKAGES += \
android.hardware.nfc@1.2.vendor \
android.hardware.nfc@1.2-service.st \
android.hardware.secure_element@1.2.vendor \
android.hardware.secure_element@1.2-service-gto \
com.android.nfc_extras \
libchrome.vendor \
NfcNci \
@@ -89,15 +83,8 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml
# Sensors
PRODUCT_PACKAGES += \
sensors.dubai
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += $(LOCAL_PATH)
# Inherit from vendor blobs
$(call inherit-product, vendor/motorola/dubai/dubai-vendor.mk)
$(call inherit-product, vendor/motorola/eqs/eqs-vendor.mk)

View File

@@ -14,8 +14,8 @@ fi
set -e
export DEVICE=dubai
export DEVICE_COMMON=sm7325-common
export DEVICE=eqs
export DEVICE_COMMON=sm8475-common
export VENDOR=motorola
"./../../${VENDOR}/${DEVICE_COMMON}/extract-files.sh" "$@"

View File

@@ -1,8 +1,8 @@
cc_binary {
name: "android.hardware.biometrics.fingerprint@2.3-service.dubai",
name: "android.hardware.biometrics.fingerprint@2.3-service.eqs",
defaults: ["hidl_defaults"],
init_rc: ["android.hardware.biometrics.fingerprint@2.3-service.dubai.rc"],
vintf_fragments: ["android.hardware.biometrics.fingerprint@2.3-service.dubai.xml"],
init_rc: ["android.hardware.biometrics.fingerprint@2.3-service.eqs.rc"],
vintf_fragments: ["android.hardware.biometrics.fingerprint@2.3-service.eqs.xml"],
relative_install_path: "hw",
srcs: [
"service.cpp",
@@ -22,7 +22,7 @@ cc_binary {
}
cc_library_static {
name: "libudfps_extension.dubai",
name: "libudfps_extension.eqs",
srcs: ["UdfpsExtension.cpp"],
include_dirs: [
"frameworks/native/services/surfaceflinger/CompositionEngine/include"

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#define LOG_TAG "android.hardware.biometrics.fingerprint@2.3-service.dubai"
#define LOG_TAG "android.hardware.biometrics.fingerprint@2.3-service.eqs"
#include "BiometricsFingerprint.h"

View File

@@ -1,4 +1,4 @@
service fps_hal.dubai /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.3-service.dubai
service fps_hal.eqs /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.3-service.eqs
# "class hal" causes a race condition on some devices due to files created
# in /data. As a workaround, postpone startup until later in boot once
# /data is mounted.

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
#define LOG_TAG "android.hardware.biometrics.fingerprint@2.3-service.dubai"
#define LOG_TAG "android.hardware.biometrics.fingerprint@2.3-service.eqs"
#include <android-base/logging.h>
#include <hidl/HidlTransportSupport.h>
#include "BiometricsFingerprint.h"

View File

@@ -1,4 +1,4 @@
hidl_package_root {
name: "com.motorola",
path: "device/motorola/dubai/interfaces/motorola",
path: "device/motorola/eqs/interfaces/motorola",
}

View File

@@ -1,6 +1,6 @@
[
{
"repository": "android_device_motorola_sm7325-common",
"target_path": "device/motorola/sm7325-common"
"repository": "android_device_motorola_sm8475-common",
"target_path": "device/motorola/sm8475-common"
}
]

View File

@@ -18,22 +18,22 @@
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
# Inherit from dubai device
$(call inherit-product, device/motorola/dubai/device.mk)
# Inherit from eqs device
$(call inherit-product, device/motorola/eqs/device.mk)
# Inherit some common Lineage stuff.
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
PRODUCT_NAME := lineage_dubai
PRODUCT_DEVICE := dubai
PRODUCT_NAME := lineage_eqs
PRODUCT_DEVICE := eqs
PRODUCT_MANUFACTURER := motorola
PRODUCT_BRAND := motorola
PRODUCT_MODEL := motorola edge 30
PRODUCT_MODEL := motorola edge 30 ultra
PRODUCT_GMS_CLIENTID_BASE := android-motorola
PRODUCT_BUILD_PROP_OVERRIDES += \
TARGET_PRODUCT=dubai_retail \
PRIVATE_BUILD_DESC="dubai_g-user 12 S1RD32M.55-67 356bc release-keys"
TARGET_PRODUCT=eqs_retail \
PRIVATE_BUILD_DESC="eqs_g-user 12 S1RD32M.55-67 356bc release-keys"
BUILD_FINGERPRINT := motorola/dubai_g/dubai:12/S1RD32M.55-67/356bc:user/release-keys
BUILD_FINGERPRINT := motorola/eqs_g/eqs:12/S1RD32M.55-67/356bc:user/release-keys

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2020-2021 Qualcomm Technologies, Inc.
Copyright (c) 2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
@@ -192,6 +192,19 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="4kdci" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="57500000"
width="4096"
height="2160"
frameRate="24" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
@@ -205,6 +218,19 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="8kuhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="105000000"
width="7680"
height="4320"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
@@ -384,6 +410,19 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse8kuhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="105000000"
width="7680"
height="4320"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
@@ -489,7 +528,7 @@
bitRate="57500000"
width="4096"
height="2160"
frameRate="30" />
frameRate="24" />
<Audio codec="aac"
bitRate="156000"
@@ -510,6 +549,19 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="8kuhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="105000000"
width="7680"
height="4320"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
@@ -689,6 +741,19 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse8kuhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="105000000"
width="7680"
height="4320"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
@@ -794,7 +859,7 @@
bitRate="57500000"
width="4096"
height="2160"
frameRate="30" />
frameRate="24" />
<Audio codec="aac"
bitRate="156000"
@@ -815,6 +880,19 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="8kuhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="105000000"
width="7680"
height="4320"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
@@ -994,6 +1072,19 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse8kuhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="105000000"
width="7680"
height="4320"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
@@ -1154,7 +1245,7 @@
bitRate="57500000"
width="4096"
height="2160"
frameRate="30" />
frameRate="24" />
<Audio codec="aac"
bitRate="156000"
@@ -1175,6 +1266,19 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="8kuhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="105000000"
width="7680"
height="4320"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
@@ -1354,6 +1458,19 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse8kuhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="105000000"
width="7680"
height="4320"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
@@ -1514,7 +1631,7 @@
bitRate="57500000"
width="4096"
height="2160"
frameRate="30" />
frameRate="24" />
<Audio codec="aac"
bitRate="156000"
@@ -1729,17 +1846,17 @@
or query the capabilities of the codec at all if it is disabled
-->
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="42000000"
minFrameWidth="176" maxFrameWidth="4096"
minFrameHeight="144" maxFrameHeight="2160"
minBitRate="64000" maxBitRate="105000000"
minFrameWidth="176" maxFrameWidth="7680"
minFrameHeight="144" maxFrameHeight="4320"
minFrameRate="15" maxFrameRate="30"
maxHFRFrameWidth="1920" maxHFRFrameHeight="1080"
maxHFRMode="120" />
<VideoEncoderCap name="h263" enabled="true"
minBitRate="64000" maxBitRate="2000000"
minFrameWidth="176" maxFrameWidth="800"
minFrameHeight="144" maxFrameHeight="480"
<VideoEncoderCap name="hevc" enabled="true"
minBitRate="64000" maxBitRate="73500000"
minFrameWidth="176" maxFrameWidth="7680"
minFrameHeight="144" maxFrameHeight="4320"
minFrameRate="15" maxFrameRate="30"
maxHFRFrameWidth="0" maxHFRFrameHeight="0"
maxHFRMode="0" />

View File

@@ -47,7 +47,7 @@
<!ELEMENT EncoderOutputFileFormat EMPTY>
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
<!ELEMENT VideoEncoderCap EMPTY>
<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
<!ATTLIST VideoEncoderCap name (hevc|h264|h263|m4v|wmv) #REQUIRED>
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
@@ -109,8 +109,8 @@
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
<Video codec="hevc"
bitRate="35000000"
width="3840"
height="2160"
frameRate="30" />
@@ -134,22 +134,9 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
@@ -162,7 +149,7 @@
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
bitRate="14000000"
width="1280"
height="720"
frameRate="30" />
@@ -186,22 +173,9 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="1080p_60fps" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="32000000"
width="1920"
height="1080"
frameRate="60" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
<Video codec="hevc"
bitRate="35000000"
width="3840"
height="2160"
frameRate="30" />
@@ -227,8 +201,8 @@
</EncoderProfile>
<EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
<Video codec="hevc"
bitRate="35000000"
width="3840"
height="2160"
frameRate="30" />
@@ -253,20 +227,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
@@ -310,8 +270,8 @@
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
<Video codec="hevc"
bitRate="35000000"
width="3840"
height="2160"
frameRate="30" />
@@ -322,56 +282,56 @@
channels="2" />
</EncoderProfile>
<!-- CAMCORDER_QUALITY_HIGH_SPEED_LOW/720P : 720p@240fps; 56.0 Mbps -->
<!-- CAMCORDER_QUALITY_HIGH_SPEED_LOW/720P : 720p@240fps; 55.0 Mbps -->
<EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="56000000"
bitRate="55000000"
width="1280"
height="720"
frameRate="240" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="256000"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<!-- CAMCORDER_QUALITY_HIGH_SPEED_HIGH/1080P : 1080p@120fps; 50.0 Mbps -->
<!-- CAMCORDER_QUALITY_HIGH_SPEED_HIGH/1080P : 1080p@240fps; 80.0 Mbps -->
<EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
bitRate="80000000"
width="1920"
height="1080"
frameRate="120" />
frameRate="240" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="256000"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="56000000"
bitRate="55000000"
width="1280"
height="720"
frameRate="240" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="256000"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
bitRate="80000000"
width="1920"
height="1080"
frameRate="120" />
frameRate="240" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="256000"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
@@ -424,19 +384,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
@@ -452,7 +399,7 @@
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
bitRate="14000000"
width="1280"
height="720"
frameRate="30" />
@@ -476,19 +423,6 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="1080p_60fps" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="32000000"
width="1920"
height="1080"
frameRate="60" />
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
@@ -531,19 +465,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
@@ -560,7 +481,7 @@
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
bitRate="14000000"
width="1280"
height="720"
frameRate="30" />
@@ -586,60 +507,6 @@
channels="2" />
</EncoderProfile>
<!-- CAMCORDER_QUALITY_HIGH_SPEED_LOW/720P : 720p@240fps; 56.0 Mbps -->
<EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="56000000"
width="1280"
height="720"
frameRate="240" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<!-- CAMCORDER_QUALITY_HIGH_SPEED_HIGH/1080P : 1080p@120fps; 50.0 Mbps -->
<EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
width="1920"
height="1080"
frameRate="120" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="56000000"
width="1280"
height="720"
frameRate="240" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="50000000"
width="1920"
height="1080"
frameRate="120" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="256000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
@@ -679,6 +546,14 @@
maxHFRFrameWidth="0" maxHFRFrameHeight="0"
maxHFRMode="0" />
<VideoEncoderCap name="hevc" enabled="true"
minBitRate="64000" maxBitRate="100000000"
minFrameWidth="176" maxFrameWidth="4096"
minFrameHeight="144" maxFrameHeight="2160"
minFrameRate="15" maxFrameRate="30"
maxHFRFrameWidth="0" maxHFRFrameHeight="0"
maxHFRMode="0" />
<AudioEncoderCap name="aac" enabled="true"
minBitRate="8000" maxBitRate="512000"
minSampleRate="8000" maxSampleRate="48000"

File diff suppressed because it is too large Load Diff

View File

@@ -1,42 +1,17 @@
# Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# SPDX-License-Identifier: GPL-2.0-only
# Copyright (c) 2020, The Linux Foundation. All rights reserved.
blocklist 8250_of
blocklist dummy_hcd
blocklist llcc_perfmon
blocklist tda18250
blocklist tda9887
blocklist tuner_simple
blocklist tuner-simple
blocklist mt2266
blocklist tea5767
blocklist xc5000
blocklist mt2131
blocklist qt1010
blocklist tuner_types
blocklist tuner-types
blocklist tua9001
blocklist m88rs6000t
blocklist tda18218
@@ -47,7 +22,7 @@ blocklist mc44s803
blocklist fc0012
blocklist si2157
blocklist tda827x
blocklist tuner_xc2028
blocklist tuner-xc2028
blocklist mt2060
blocklist qm1d1b0004
blocklist qm1d1c0042
@@ -66,38 +41,28 @@ blocklist e4000
blocklist tea5761
blocklist tda18271
blocklist mxl5005s
blocklist radio_i2c_rtc6226_qca
blocklist dummy_cpufreq
blocklist dummy-cpufreq
blocklist dummy_hcd
blocklist kheaders
blocklist atomic64_test
blocklist test_user_copy
blocklist lkdtm
blocklist net_failover
blocklist adc_tm
blocklist rtc_test
blocklist can_bcm
blocklist can_gw
blocklist can_raw
blocklist adc-tm
blocklist rtc-test
blocklist can-bcm
blocklist can-gw
blocklist can-raw
blocklist failover
blocklist vmw_vsock_virtio_transport
blocklist vmw_vsock_virtio_transport_common
blocklist vsock_diag
blocklist vsock
blocklist qca_cld3_wlan
blocklist qca_cld3_qca6390
blocklist torture
blocklist locktorture
blocklist rcutorture
# Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
#
# Motorola platform module block list
#
blocklist utags
# Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
#
# Motorola product module block list
#
blocklist mmrm_test_module
blocklist q5drv_linux
blocklist limits_stat
blocklist fpc1020_mmi
blocklist goodix_fod_mmi

View File

@@ -1,117 +1,296 @@
msm_sysstats.ko
zsmalloc.ko
lzo.ko
lzo-rle.ko
msm_show_resume_irq.ko
mhi_cntrl_qcom.ko
mhi.ko
mhi_dev_uci.ko
mhi_dev_netdev.ko
mhi_dev_dtr.ko
phy-qcom-ufs-qmp-v4-lahaina.ko
phy-qcom-ufs-qmp-v4-parrot.ko
phy-qcom-ufs-qmp-v3.ko
phy-qcom-ufs-qmp-14nm.ko
pinctrl-spmi-gpio.ko
pinctrl-spmi-mpp.ko
pwm-qti-lpg.ko
pci-msm-drv.ko
camcc-waipio.ko
camcc-diwali.ko
debugcc-diwali.ko
videocc-waipio.ko
gpucc-waipio.ko
debugcc-waipio.ko
gpucc-diwali.ko
videocc-diwali.ko
bam_dma.ko
gpi.ko
pci-edma.ko
qcom_cpuss_sleep_stats.ko
mdt_loader.ko
cdsp-loader.ko
qcom_ramdump.ko
pdr_interface.ko
qmi_helpers.ko
heap_mem_ext_v01.ko
msm_memshare.ko
boot_stats.ko
smp2p.ko
subsystem_sleep_stats.ko
adsp_sleepmon.ko
sysmon_subsystem_stats.ko
qsee_ipc_irq_bridge.ko
core_hang_detect.ko
soc_sleep_stats.ko
rq_stats.ko
dcc_v2.ko
smcinvoke_mod.ko
microdump_collector.ko
llcc_perfmon.ko
smp2p_sleepstate.ko
sensors_ssc.ko
glink_pkt.ko
glink_probe.ko
pmic_glink.ko
qti_battery_debug.ko
charger-ulog-glink.ko
altmode-glink.ko
pmic-pon-log.ko
spss_utils.ko
msm_performance.ko
qpnp-pbs.ko
spcom.ko
cdsprm.ko
fsa4480-i2c.ko
msm_show_epoch.ko
eud.ko
guestvm_loader.ko
hyp_core_ctl.ko
qbt_handler.ko
qcom_soc_wdt.ko
sys_pm_vx.ko
msm_ext_display.ko
icnss2.ko
rimps_log.ko
plh_scmi.ko
gplaf_scmi.ko
qdss_bridge.ko
memlat.ko
qcom_logbuf_vendor_hooks.ko
panel_event_notifier.ko
qcom_sync_file.ko
hung_task_enh.ko
qfprom-sys.ko
qcom_pm8008-regulator.ko
qpnp-amoled-regulator.ko
hvc_gunyah.ko
msm_rng.ko
frpc-adsprpc.ko
rdbg.ko
qcom_iommu_debug.ko
lt9611uxc.ko
msm_kgsl.ko
zram.ko
hdcp_qseecom.ko
qseecom-mod.ko
qcom-i2c-pmic.ko
nfc_i2c.ko
sg.ko
spi-msm-geni.ko
spmi-pmic-arb-debug.ko
spmi-glink-debug.ko
cnss2.ko
cnss_utils.ko
wlan_firmware_service.ko
cnss_plat_ipc_qmi_svc.ko
cnss_nl.ko
cnss_prealloc.ko
asix.ko
ax88179_178a.ko
msm_sharedmem.ko
phy-qcom-emu.ko
phy-msm-ssusb-qmp.ko
phy-msm-snps-hs.ko
phy-msm-snps-eusb2.ko
dwc3-msm.ko
ehset.ko
lvstest.ko
ssusb-redriver-ps5169.ko
usb_f_diag.ko
usb_f_qdss.ko
usb_f_ccid.ko
usb_f_cdev.ko
usb_f_gsi.ko
f_fs_ipc_log.ko
ucsi_glink.ko
repeater.ko
repeater-i2c-eusb2.ko
pm8941-pwrkey.ko
qcom-hv-haptics.ko
i2c-msm-geni.ko
i2c-dev.ko
i3c-master-msm-geni.ko
qcom_ipc_lite.ko
synx-driver.ko
radio-i2c-rtc6226-qca.ko
qcom-pon.ko
qti_battery_charger.ko
qcom-spmi-temp-alarm.ko
qti-adc-tm.ko
qti_qmi_sensor_v2.ko
qti_qmi_cdev.ko
bcl_soc.ko
msm_lmh_dcvs.ko
cpu_voltage_cooling.ko
policy_engine.ko
sdpm_clk.ko
ddr_cdev.ko
qti_userspace_cdev.ko
qti_cpufreq_cdev.ko
qti_devfreq_cdev.ko
btpower.ko
bt_fm_slim.ko
qcom_edac.ko
qcom-cpufreq-hw-debug.ko
qcom_lpm.ko
sdhci-msm.ko
leds-qti-flash.ko
leds-qti-tri-led.ko
leds-qpnp-vibrator-ldo.ko
plh_vendor.ko
gplaf_vendor.ko
tz_log.ko
qce50.ko
qcedev-mod.ko
ipa_fmwk.ko
usb_bam.ko
sps_drv.ko
ep_pcie_drv.ko
mhi_dev_drv.ko
mhi_dev_net.ko
qcom_pil_info.ko
rproc_qcom_common.ko
qcom_q6v5.ko
qcom_q6v5_pas.ko
qcom_spss.ko
qcom_esoc.ko
qcom_sysmon.ko
qcom_glink.ko
qcom_glink_smem.ko
qcom_glink_spss.ko
qcom_smd.ko
gh_irq_lend.ko
gh_mem_notifier.ko
gh_virtio_backend.ko
qcom-spmi-adc5.ko
qcom-vadc-common.ko
nvmem_qfprom.ko
icc-test.ko
qnoc-parrot.ko
slimbus.ko
slim-qcom-ngd-ctrl.ko
hwmon.ko
qti_amoled_ecm.ko
coresight.ko
coresight-tmc.ko
coresight-funnel.ko
coresight-replicator.ko
coresight-stm.ko
coresight-cti.ko
coresight-tpda.ko
coresight-tpdm.ko
coresight-csr.ko
coresight-dummy.ko
coresight-remote-etm.ko
coresight-tgu.ko
coresight-hwevent.ko
stm_core.ko
stm_p_basic.ko
stm_p_ost.ko
stm_console.ko
stm_ftrace.ko
snd-usb-audio-qmi.ko
qrtr-smd.ko
qrtr-mhi.ko
qrtr-gunyah.ko
qca_cld3_qca6490.ko
qca_cld3_qca6750.ko
qca_cld3_kiwi.ko
qca_cld3_qca6490.ko
qca_cld3_qca6750.ko
qca_cld3_kiwi.ko
q6_notifier_dlkm.ko
spf_core_dlkm.ko
audpkt_ion_dlkm.ko
gpr_dlkm.ko
audio_pkt_dlkm.ko
q6_dlkm.ko
adsp_loader_dlkm.ko
audio_prm_dlkm.ko
q6_pdr_dlkm.ko
pinctrl_lpi_dlkm.ko
swr_dlkm.ko
swr_ctrl_dlkm.ko
snd_event_dlkm.ko
wcd_core_dlkm.ko
mbhc_dlkm.ko
swr_dmic_dlkm.ko
wcd9xxx_dlkm.ko
swr_haptics_dlkm.ko
stub_dlkm.ko
machine_dlkm.ko
fc2580.ko
mt2063.ko
tda9887.ko
apr_dlkm.ko
mxl5005s.ko
xc4000.ko
tuner-xc2028.ko
radio-i2c-rtc6226-qca.ko
max2165.ko
qt1010.ko
slimbus-ngd.ko
llcc_perfmon.ko
platform_dlkm.ko
lpass_cdc_wsa2_macro_dlkm.ko
lpass_cdc_wsa_macro_dlkm.ko
lpass_cdc_va_macro_dlkm.ko
lpass_cdc_rx_macro_dlkm.ko
lpass_cdc_tx_macro_dlkm.ko
lpass_cdc_dlkm.ko
wsa883x_dlkm.ko
tea5767.ko
msi001.ko
qm1d1c0042.ko
fc0013.ko
btpower.ko
tua9001.ko
m88rs6000t.ko
qcom_edac.ko
fc0011.ko
wcd937x_dlkm.ko
pinctrl_lpi_dlkm.ko
fc0012.ko
aw882xx_k504.ko
mt20xx.ko
xc5000.ko
wcd9xxx_dlkm.ko
bt_fm_slim.ko
tea5761.ko
rx_macro_dlkm.ko
pinctrl_wcd_dlkm.ko
wsa_macro_dlkm.ko
adsp_loader_dlkm.ko
wcd938x_dlkm.ko
q6_dlkm.ko
hdmi_dlkm.ko
swr_haptics_dlkm.ko
tda18218.ko
msm_drm.ko
tda18212.ko
wcd937x_slave_dlkm.ko
mt2060.ko
q6_notifier_dlkm.ko
tuner-simple.ko
snd_event_dlkm.ko
mc44s803.ko
wcd_core_dlkm.ko
qm1d1b0004.ko
tda18250.ko
mbhc_dlkm.ko
tuner-types.ko
si2157.ko
mt2131.ko
slimbus.ko
native_dlkm.ko
va_macro_dlkm.ko
hid-aksys.ko
mt2266.ko
bolero_cdc_dlkm.ko
mxl5007t.ko
wcd938x_slave_dlkm.ko
q6_pdr_dlkm.ko
e4000.ko
it913x.ko
swr_ctrl_dlkm.ko
mxl301rf.ko
swr_dlkm.ko
rdbg.ko
swr_dmic_dlkm.ko
r820t.ko
wcd937x_dlkm.ko
wcd937x_slave_dlkm.ko
hdmi_dlkm.ko
camera.ko
tx_macro_dlkm.ko
qca_cld3_wlan.ko
qca_cld3_qca6750.ko
qca_cld3_qca6390.ko
qca_cld3_wlan.ko
qca_cld3_qca6750.ko
qca_cld3_qca6390.ko
msm-cvp.ko
gsim.ko
ipam.ko
ipanetm.ko
rndisipam.ko
ipa_clientsm.ko
rmnet_core.ko
rmnet_ctl.ko
rmnet_offload.ko
rmnet_perf_tether.ko
rmnet_perf.ko
rmnet_shs.ko
rmnet_wlan.ko
rmnet_aps.ko
rmnet_sch.ko
msm_drm.ko
msm-eva.ko
msm-mmrm.ko
mmrm_test_module.ko
msm_video.ko
utags.ko
mmi_info.ko
mmi_annotate.ko
sensors_class.ko
watchdogtest.ko
exfat.ko
bm_adsp_ulog.ko
mmi_charger.ko
qti_glink_charger.ko
qpnp_adaptive_charge.ko
cirrus_wm_adsp.ko
cirrus_cs35l41.ko
cirrus_cs35l45.ko
aw862x.ko
mmi_info.ko
mmi_relay.ko
wl2864c.ko
cci_intf.ko
st21nfc.ko
nfc_i2c.ko
sx937x_sar.ko
moto_f_usbnet.ko
bm_adsp_ulog.ko
watchdogtest.ko
mmi_charger.ko
moto_f_mass_storage.ko
rbs_fod_mmi.ko
st21nfc.ko
st54spi.ko
mmi_relay.ko
sensors_class.ko
sx937x_multi.ko
touchscreen_mmi.ko
stmicro_mmi.ko
goodix_brl_mmi.ko
qti_glink_charger.ko
wl2868c.ko
mmi_sys_temp.ko
rbs_fps_mmi.ko
mmi_info.ko
mmi_annotate.ko
tzlog_dump.ko
watchdog_cpu_ctx.ko
qpnp_adaptive_charge.ko

View File

@@ -5,3 +5,4 @@ touchscreen_mmi.ko
mmi_annotate.ko
mmi_info.ko
goodix_brl_mmi.ko
stmicro_mmi.ko

View File

@@ -1,29 +1,12 @@
# All unpinned blobs below are extracted from 12-S1RDS32.55-67-4 f3f840 release-keys.
# ACDB Data
vendor/etc/acdbdata/nn_ns_models/candidate__2.7.1.31__3.0.0__eai_1.10_enpu1.pmd
vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd
vendor/etc/acdbdata/nn_ns_models/fai__2.2.0_0.1__3.0.0_0.0__eai_1.00.pmd
vendor/etc/acdbdata/nn_ns_models/fai__2.6.1_0.0__eai_v1.10.pmd
vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd
vendor/etc/acdbdata/Bluetooth_cal.acdb
vendor/etc/acdbdata/General_cal.acdb
vendor/etc/acdbdata/Global_cal.acdb
vendor/etc/acdbdata/Handset_cal.acdb
vendor/etc/acdbdata/Hdmi_cal.acdb
vendor/etc/acdbdata/Headset_cal.acdb
vendor/etc/acdbdata/Speaker_cal.acdb
vendor/etc/acdbdata/adsp_avs_config.acdb
# Audio firmware
vendor/firmware/aw882xx_pid_1852_acf.bin
vendor/firmware/aw882xx_pid_2113_acf.bin
vendor/firmware/aw882xx_spk_reg.bin
vendor/firmware/aw_skt.bin
vendor/etc/acdbdata/waipio_mtp/MTP_acdb_cal.acdb
vendor/etc/acdbdata/waipio_mtp/MTP_workspaceFile.qwsp
# Audio libraries
vendor/lib/libacdbloader.so
vendor/lib64/libacdbloader.so
vendor/lib/libar-acdb.so
vendor/lib64/libar-acdb.so
# Camera
vendor/etc/pwr/PowerFeatureConfig.xml
@@ -35,25 +18,11 @@ vendor/lib/camera/fdconfigvideolite.bin
vendor/lib/hw/camera.qcom.so
vendor/lib/hw/com.qti.chi.override.so
vendor/lib/com.qti.chiusecaseselector.so
vendor/lib/com.qti.settings.kamorta.so
vendor/lib/com.qti.settings.kodiak.so
vendor/lib/com.qti.settings.mannar.so
vendor/lib/com.qti.settings.sdm865.so
vendor/lib/com.qti.settings.sm8350.so
vendor/lib/com.qti.settings.sm8450.so
vendor/lib/com.qti.stats.common.so
vendor/lib/libarcsoft_chi_utils.so
vendor/lib/libarcsoft_distortion_correction.so
vendor/lib/libarcsoft_hdr_detection.so
vendor/lib/libarcsoft_high_dynamic_range.so
vendor/lib/libarcsoft_portrait_distortion_correction.so
vendor/lib/libarcsoft_portrait_super_night_raw.so
vendor/lib/libarcsoft_portrait_super_night_se_raw.so
vendor/lib/libarcsoft_qnnhtp.so
vendor/lib/libarcsoft_super_night_raw.so
vendor/lib/libarcsoft_super_night_se_raw.so
vendor/lib/libbitmlengine.so
vendor/lib/libbitmlenginev2.so
vendor/lib/libc2d_helper.so
vendor/lib/libcamera_nn_stub.so
vendor/lib/libcamerapostproc.so
vendor/lib/libcamxexternalformatutils.so
@@ -69,12 +38,11 @@ vendor/lib/libcamxswprocessalgo.so
vendor/lib/libcamxtintlessalgo.so
vendor/lib/libchilog.so
vendor/lib/libcom.qti.chinodeutils.so
vendor/lib/libhdr10plus.so
vendor/lib/libipebpsstriping.so
vendor/lib/libipebpsstriping170.so
vendor/lib/libmmcamera_bestats.so
vendor/lib/libmmcamera_cac3.so
vendor/lib/libmmcamera_faceproc.so
vendor/lib/libmmcamera_faceproc2.so
vendor/lib/libmmcamera_lscv35.so
vendor/lib/libmmcamera_mfnr.so
vendor/lib/libmmcamera_mfnr_t4.so
@@ -83,9 +51,6 @@ vendor/lib/libmot_afd.so
vendor/lib/libmot_chi_desktop_helper.so
vendor/lib/libmot_engine_settings.so
vendor/lib/libmotoisdataqueue.so
vendor/lib/libmpbase.so
vendor/lib/libofflinedump.so
vendor/lib/libofflinelog.so
vendor/lib/libopencv.so
vendor/lib/libos.so
vendor/lib/libpowercore.so
@@ -103,6 +68,7 @@ vendor/lib/libvidhance_fbc.so
vendor/lib/libvidhance_horizon_correction.so
vendor/lib/libvidhance_stabilizer.so
vendor/lib/libvidhance_zoom_stabilization.so
vendor/lib/vendor.qti.hardware.camera.aon@1.0-service-impl.so
vendor/lib/vendor.qti.hardware.camera.postproc@1.0-service-impl.so
vendor/lib64/camera/fdconfigpreview.bin
vendor/lib64/camera/fdconfigpreviewlite.bin
@@ -111,27 +77,21 @@ vendor/lib64/camera/fdconfigvideolite.bin
vendor/lib64/hw/camera.qcom.so
vendor/lib64/hw/com.qti.chi.override.so
vendor/lib64/com.qti.chiusecaseselector.so
vendor/lib64/com.qti.settings.kamorta.so
vendor/lib64/com.qti.settings.kodiak.so
vendor/lib64/com.qti.settings.mannar.so
vendor/lib64/com.qti.settings.sdm865.so
vendor/lib64/com.qti.settings.sm8350.so
vendor/lib64/com.qti.settings.sm8450.so
vendor/lib64/com.qti.stats.common.so
vendor/lib64/libarcsoft_chi_utils.so
vendor/lib64/libarcsoft_distortion_correction.so
vendor/lib64/libarcsoft_dual_sat.so
vendor/lib64/libarcsoft_dual_zoomtranslator.so
vendor/lib64/libarcsoft_hdr_detection.so
vendor/lib64/libarcsoft_high_dynamic_range.so
vendor/lib64/libarcsoft_mcxmflpolicy.so
vendor/lib64/libarcsoft_portrait_distortion_correction.so
vendor/lib64/libarcsoft_portrait_super_night_raw.so
vendor/lib64/libarcsoft_portrait_super_night_se_raw.so
vendor/lib64/libarcsoft_qnnhtp.so
vendor/lib64/libarcsoft_super_night_raw.so
vendor/lib64/libarcsoft_super_night_se_raw.so
vendor/lib64/libarcsoft_triple_sat.so
vendor/lib64/libarcsoft_triple_zoomtranslator.so
vendor/lib64/libbitmlengine.so
vendor/lib64/libbitmlenginev2.so
vendor/lib64/libc2d_helper.so
vendor/lib64/libcamera_nn_stub.so
vendor/lib64/libcamerapostproc.so
vendor/lib64/libcamxexternalformatutils.so
@@ -147,12 +107,11 @@ vendor/lib64/libcamxswprocessalgo.so
vendor/lib64/libcamxtintlessalgo.so
vendor/lib64/libchilog.so
vendor/lib64/libcom.qti.chinodeutils.so
vendor/lib64/libhdr10plus.so
vendor/lib64/libipebpsstriping.so
vendor/lib64/libipebpsstriping170.so
vendor/lib64/libmmcamera_bestats.so
vendor/lib64/libmmcamera_cac3.so
vendor/lib64/libmmcamera_faceproc.so
vendor/lib64/libmmcamera_faceproc2.so
vendor/lib64/libmmcamera_lscv35.so
vendor/lib64/libmmcamera_mfnr.so
vendor/lib64/libmmcamera_mfnr_t4.so
@@ -162,8 +121,6 @@ vendor/lib64/libmot_chi_desktop_helper.so
vendor/lib64/libmot_engine_settings.so
vendor/lib64/libmotoisdataqueue.so
vendor/lib64/libmpbase.so
vendor/lib64/libofflinedump.so
vendor/lib64/libofflinelog.so
vendor/lib64/libopencv.so
vendor/lib64/libos.so
vendor/lib64/libpowercore.so
@@ -180,30 +137,38 @@ vendor/lib64/libvidhance_fbc.so
vendor/lib64/libvidhance_horizon_correction.so
vendor/lib64/libvidhance_stabilizer.so
vendor/lib64/libvidhance_zoom_stabilization.so
vendor/lib64/vendor.qti.hardware.camera.aon@1.0-service-impl.so
vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so
# Camera - Components
vendor/lib/camera/components/com.bots.node.vendortagwrite.so
vendor/lib/camera/components/com.mot.node.c2d.so
vendor/lib/camera/components/com.mot.node.dc_capture.so
vendor/lib/camera/components/com.mot.node.hdr.so
vendor/lib/camera/components/com.mot.node.scene_detect.so
vendor/lib/camera/components/com.qti.camx.chiiqutils.so
vendor/lib/camera/components/com.qti.eisv2.so
vendor/lib/camera/components/com.qti.eisv3.so
vendor/lib/camera/components/com.qti.hvx.addconstant.so
vendor/lib/camera/components/com.qti.hvx.binning.so
vendor/lib/camera/components/com.qti.node.afbfusion.so
vendor/lib/camera/components/com.qti.node.aon.so
vendor/lib/camera/components/com.qti.node.customhwnode.so
vendor/lib/camera/components/com.qti.node.depth.so
vendor/lib/camera/components/com.qti.node.dewarp.so
vendor/lib/camera/components/com.qti.node.dummydepth.so
vendor/lib/camera/components/com.qti.node.dummyrtb.so
vendor/lib/camera/components/com.qti.node.dummysat.so
vendor/lib/camera/components/com.qti.node.eisv2.so
vendor/lib/camera/components/com.qti.node.eisv3.so
vendor/lib/camera/components/com.qti.node.fcv.so
vendor/lib/camera/components/com.qti.node.formatconversion.so
vendor/lib/camera/components/com.qti.node.gme.so
vendor/lib/camera/components/com.qti.node.gpu.so
vendor/lib/camera/components/com.qti.node.gyrornn.so
vendor/lib/camera/components/com.qti.node.hdr10pgen.so
vendor/lib/camera/components/com.qti.node.hdr10phist.so
vendor/lib/camera/components/com.qti.node.memcpy.so
vendor/lib/camera/components/com.qti.node.ml.so
vendor/lib/camera/components/com.qti.node.mlinference.so
vendor/lib/camera/components/com.qti.node.muxer.so
vendor/lib/camera/components/com.qti.node.remosaic.so
vendor/lib/camera/components/com.qti.node.stich.so
vendor/lib/camera/components/com.qti.node.swaidenoiser.so
@@ -211,6 +176,7 @@ vendor/lib/camera/components/com.qti.node.swbestats.so
vendor/lib/camera/components/com.qti.node.swcac.so
vendor/lib/camera/components/com.qti.node.swec.so
vendor/lib/camera/components/com.qti.node.swfusion.so
vendor/lib/camera/components/com.qti.node.swhme.so
vendor/lib/camera/components/com.qti.node.swlsc.so
vendor/lib/camera/components/com.qti.node.swmctf.so
vendor/lib/camera/components/com.qti.node.swmfnr.so
@@ -229,9 +195,11 @@ vendor/lib/camera/components/com.qti.stats.awbwrapper.so
vendor/lib/camera/components/com.qti.stats.cnndriver.so
vendor/lib/camera/components/com.qti.stats.haf.so
vendor/lib/camera/components/com.qti.stats.hafoverride.so
vendor/lib/camera/components/com.qti.stats.localhistogram.so
vendor/lib/camera/components/com.qti.stats.pdlib.so
vendor/lib/camera/components/com.qti.stats.pdlibsony.so
vendor/lib/camera/components/com.qti.stats.pdlibwrapper.so
vendor/lib/camera/components/com.qti.stats.statsgenerator.so
vendor/lib/camera/components/com.qti.stats.tracker.so
vendor/lib/camera/components/com.qtistatic.stats.aec.so
vendor/lib/camera/components/com.qtistatic.stats.af.so
@@ -240,10 +208,11 @@ vendor/lib/camera/components/com.qtistatic.stats.pdlib.so
vendor/lib/camera/components/com.vidhance.node.ica.so
vendor/lib/camera/components/com.vidhance.node.processing.so
vendor/lib/camera/components/com.vidhance.stats.aec_dmbr.so
vendor/lib64/camera/components/com.arcsoft.node.dc_capture.so
vendor/lib64/camera/components/com.arcsoft.node.smooth_transition.so
vendor/lib64/camera/components/com.arcsoft.node.supernightraw.so
vendor/lib64/camera/components/com.bots.node.vendortagwrite.so
vendor/lib64/camera/components/com.mot.node.c2d.so
vendor/lib64/camera/components/com.mot.node.dc_capture.so
vendor/lib64/camera/components/com.mot.node.hdr.so
vendor/lib64/camera/components/com.mot.node.scene_detect.so
vendor/lib64/camera/components/com.qti.camx.chiiqutils.so
@@ -251,18 +220,27 @@ vendor/lib64/camera/components/com.qti.eisv2.so
vendor/lib64/camera/components/com.qti.eisv3.so
vendor/lib64/camera/components/com.qti.hvx.addconstant.so
vendor/lib64/camera/components/com.qti.hvx.binning.so
vendor/lib64/camera/components/com.qti.node.afbfusion.so
vendor/lib64/camera/components/com.qti.node.aon.so
vendor/lib64/camera/components/com.qti.node.customhwnode.so
vendor/lib64/camera/components/com.qti.node.depth.so
vendor/lib64/camera/components/com.qti.node.dewarp.so
vendor/lib64/camera/components/com.qti.node.dummydepth.so
vendor/lib64/camera/components/com.qti.node.dummyrtb.so
vendor/lib64/camera/components/com.qti.node.dummysat.so
vendor/lib64/camera/components/com.qti.node.eisv2.so
vendor/lib64/camera/components/com.qti.node.eisv3.so
vendor/lib64/camera/components/com.qti.node.fcv.so
vendor/lib64/camera/components/com.qti.node.formatconversion.so
vendor/lib64/camera/components/com.qti.node.gme.so
vendor/lib64/camera/components/com.qti.node.gpu.so
vendor/lib64/camera/components/com.qti.node.gyrornn.so
vendor/lib64/camera/components/com.qti.node.hdr10pgen.so
vendor/lib64/camera/components/com.qti.node.hdr10phist.so
vendor/lib64/camera/components/com.qti.node.memcpy.so
vendor/lib64/camera/components/com.qti.node.ml.so
vendor/lib64/camera/components/com.qti.node.mlinference.so
vendor/lib64/camera/components/com.qti.node.muxer.so
vendor/lib64/camera/components/com.qti.node.remosaic.so
vendor/lib64/camera/components/com.qti.node.stich.so
vendor/lib64/camera/components/com.qti.node.swaidenoiser.so
@@ -270,6 +248,7 @@ vendor/lib64/camera/components/com.qti.node.swbestats.so
vendor/lib64/camera/components/com.qti.node.swcac.so
vendor/lib64/camera/components/com.qti.node.swec.so
vendor/lib64/camera/components/com.qti.node.swfusion.so
vendor/lib64/camera/components/com.qti.node.swhme.so
vendor/lib64/camera/components/com.qti.node.swlsc.so
vendor/lib64/camera/components/com.qti.node.swmctf.so
vendor/lib64/camera/components/com.qti.node.swmfnr.so
@@ -288,9 +267,11 @@ vendor/lib64/camera/components/com.qti.stats.awbwrapper.so
vendor/lib64/camera/components/com.qti.stats.cnndriver.so
vendor/lib64/camera/components/com.qti.stats.haf.so
vendor/lib64/camera/components/com.qti.stats.hafoverride.so
vendor/lib64/camera/components/com.qti.stats.localhistogram.so
vendor/lib64/camera/components/com.qti.stats.pdlib.so
vendor/lib64/camera/components/com.qti.stats.pdlibsony.so
vendor/lib64/camera/components/com.qti.stats.pdlibwrapper.so
vendor/lib64/camera/components/com.qti.stats.statsgenerator.so
vendor/lib64/camera/components/com.qti.stats.tracker.so
vendor/lib64/camera/components/com.qtistatic.stats.aec.so
vendor/lib64/camera/components/com.qtistatic.stats.af.so
@@ -302,42 +283,42 @@ vendor/lib64/camera/components/com.vidhance.stats.aec_dmbr.so
vendor/lib64/camera/components/libdepthmapwrapper_secure.so
# Camera - eeprom
vendor/lib/camera/com.mot.eeprom.mot_dubai_gc02m1b_otp.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p128e_ov50a_eeprom.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p128e_imx663_eeprom.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p128e_s5khp1_eeprom.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p128e_s5kjn1_eeprom.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p64e_ov32b40_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_dubai_gc02m1b_otp.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p128e_ov50a_eeprom.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p64e_ov60a_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p128e_imx663_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p128e_s5khp1_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p128e_s5kjn1_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p64e_ov32b40_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p64e_ov60a_eeprom.so
# Camera - etc
vendor/etc/camera/aec_golden_depth.bin
vendor/etc/camera/aec_golden_tele.bin
vendor/etc/camera/aec_golden_wide.bin
vendor/etc/camera/arcsoft_calibration_u_dc.bin
vendor/etc/camera/dual_golden_depth.bin
vendor/etc/camera/dual_golden_tele.bin
vendor/etc/camera/dual_golden_wide.bin
vendor/etc/camera/mot_engine_config.bin
vendor/etc/camera/vidhance_calibration
# Camera - feature2
vendor/lib/com.qti.feature2.anchorsync.so
vendor/lib/com.qti.feature2.arcrawpro.so
vendor/lib/com.qti.feature2.demux.so
vendor/lib/com.qti.feature2.derivedoffline.so
vendor/lib/com.qti.feature2.frameselect.so
vendor/lib/com.qti.feature2.fusion.so
vendor/lib/com.qti.feature2.generic.so
vendor/lib/com.qti.feature2.gs.cedros.so
vendor/lib/com.qti.feature2.gs.kamorta.so
vendor/lib/com.qti.feature2.gs.kodiak.so
vendor/lib/com.qti.feature2.gs.mannar.so
vendor/lib/com.qti.feature2.gs.fillmore.so
vendor/lib/com.qti.feature2.gs.sdm865.so
vendor/lib/com.qti.feature2.gs.sm8350.so
vendor/lib/com.qti.feature2.gs.sm8450.so
vendor/lib/com.qti.feature2.hdr.so
vendor/lib/com.qti.feature2.mcreprocrt.so
vendor/lib/com.qti.feature2.memcpy.so
vendor/lib/com.qti.feature2.mfsr.netrani.so
vendor/lib/com.qti.feature2.mfsr.sm8450.so
vendor/lib/com.qti.feature2.mfsr.so
vendor/lib/com.qti.feature2.ml.fillmore.so
vendor/lib/com.qti.feature2.ml.so
vendor/lib/com.qti.feature2.mux.so
vendor/lib/com.qti.feature2.qcfa.so
@@ -357,15 +338,17 @@ vendor/lib64/com.qti.feature2.frameselect.so
vendor/lib64/com.qti.feature2.fusion.so
vendor/lib64/com.qti.feature2.generic.so
vendor/lib64/com.qti.feature2.gs.cedros.so
vendor/lib64/com.qti.feature2.gs.kamorta.so
vendor/lib64/com.qti.feature2.gs.kodiak.so
vendor/lib64/com.qti.feature2.gs.mannar.so
vendor/lib64/com.qti.feature2.gs.fillmore.so
vendor/lib64/com.qti.feature2.gs.sdm865.so
vendor/lib64/com.qti.feature2.gs.sm8350.so
vendor/lib64/com.qti.feature2.gs.sm8450.so
vendor/lib64/com.qti.feature2.hdr.so
vendor/lib64/com.qti.feature2.mcreprocrt.so
vendor/lib64/com.qti.feature2.memcpy.so
vendor/lib64/com.qti.feature2.mfsr.netrani.so
vendor/lib64/com.qti.feature2.mfsr.sm8450.so
vendor/lib64/com.qti.feature2.mfsr.so
vendor/lib64/com.qti.feature2.ml.fillmore.so
vendor/lib64/com.qti.feature2.ml.so
vendor/lib64/com.qti.feature2.mux.so
vendor/lib64/com.qti.feature2.qcfa.so
@@ -381,65 +364,63 @@ vendor/lib64/com.qti.feature2.swmf.so
# Camera - ICP
vendor/firmware/CAMERA_ICP.elf
vendor/firmware/CAMERA_ICP_170.elf
vendor/firmware/CAMERA_ICP_480.elf
# Camera - Motorola
vendor/bin/hw/motorola.hardware.camera.desktop@2.0-service
vendor/etc/init/motorola.hardware.camera.desktop@2.0-service.rc
vendor/etc/init/motorola.hardware.camera.imgtuner@1.0-service.rc
vendor/lib/motorola.hardware.camera.desktop@1.0.so
vendor/lib/motorola.hardware.camera.desktop@2.0.so
vendor/lib64/motorola.hardware.camera.desktop@1.0.so
vendor/lib64/motorola.hardware.camera.desktop@2.0.so
# Camera - OIS
vendor/firmware/mot_dw9781c.prog
vendor/firmware/mot_bu63169.coeff
vendor/firmware/mot_bu63169.prog
# Camera - sensor
vendor/lib/camera/com.qti.sensor.mot_gc02m1b.so
vendor/lib/camera/com.qti.sensor.mot_ov32b40.so
vendor/lib/camera/com.qti.sensor.mot_ov50a.so
vendor/lib/camera/com.qti.sensor.mot_imx663.so
vendor/lib/camera/com.qti.sensor.mot_ov60a.so
vendor/lib/camera/com.qti.sensor.mot_s5khp1.so
vendor/lib/camera/com.qti.sensor.mot_s5kjn1.so
vendor/lib/camera/com.qti.sensormodule.mot_dubai_gc02m1b_tsp.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_ov32b40_ofilm.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_ov50a_sunny.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_s5kjn1_qtech.bin
vendor/lib64/camera/com.qti.sensor.mot_gc02m1b.so
vendor/lib64/camera/com.qti.sensor.mot_ov32b40.so
vendor/lib64/camera/com.qti.sensor.mot_ov50a.so
vendor/lib64/camera/com.qti.sensor.mot_imx663.so
vendor/lib64/camera/com.qti.sensor.mot_ov60a.so
vendor/lib64/camera/com.qti.sensor.mot_s5khp1.so
vendor/lib64/camera/com.qti.sensor.mot_s5kjn1.so
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_gc02m1b_tsp.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_ov32b40_ofilm.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_ov50a_sunny.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_s5kjn1_qtech.bin
# Camera - sensormodule
vendor/lib/camera/com.qti.sensormodule.mot_dubai_gc02m1b_tsp.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_ov32b40_ofilm.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_ov50a_sunny.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_s5kjn1_qtech.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_gc02m1b_tsp.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_ov32b40_ofilm.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_ov50a_sunny.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_s5kjn1_qtech.bin
vendor/lib/camera/com.qti.sensormodule.mot_eqs_imx663_ofilm.bin
vendor/lib/camera/com.qti.sensormodule.mot_eqs_ov60a_qtech.bin
vendor/lib/camera/com.qti.sensormodule.mot_eqs_s5khp1_qtech.bin
vendor/lib/camera/com.qti.sensormodule.mot_eqs_s5kjn1_qtech.bin
vendor/lib64/camera/com.qti.sensormodule.mot_eqs_imx663_ofilm.bin
vendor/lib64/camera/com.qti.sensormodule.mot_eqs_ov60a_qtech.bin
vendor/lib64/camera/com.qti.sensormodule.mot_eqs_s5khp1_qtech.bin
vendor/lib64/camera/com.qti.sensormodule.mot_eqs_s5kjn1_qtech.bin
# Camera - tuned
vendor/lib/camera/com.qti.tuned.default.bin
vendor/lib/camera/com.qti.tuned.mot_dubai_gc02m1b.bin
vendor/lib/camera/com.qti.tuned.mot_dubai_ov32b40.bin
vendor/lib/camera/com.qti.tuned.mot_dubai_ov50a.bin
vendor/lib/camera/com.qti.tuned.mot_dubai_s5kjn1.bin
vendor/lib/camera/com.qti.tuned.mot_eqs_imx663.bin
vendor/lib/camera/com.qti.tuned.mot_eqs_ov60a.bin
vendor/lib/camera/com.qti.tuned.mot_eqs_s5khp1.bin
vendor/lib/camera/com.qti.tuned.mot_eqs_s5kjn1.bin
vendor/lib64/camera/com.qti.tuned.default.bin
vendor/lib64/camera/com.qti.tuned.mot_dubai_gc02m1b.bin
vendor/lib64/camera/com.qti.tuned.mot_dubai_ov32b40.bin
vendor/lib64/camera/com.qti.tuned.mot_dubai_ov50a.bin
vendor/lib64/camera/com.qti.tuned.mot_dubai_s5kjn1.bin
vendor/lib64/camera/com.qti.tuned.mot_eqs_imx663.bin
vendor/lib64/camera/com.qti.tuned.mot_eqs_ov60a.bin
vendor/lib64/camera/com.qti.tuned.mot_eqs_s5khp1.bin
vendor/lib64/camera/com.qti.tuned.mot_eqs_s5kjn1.bin
# Charger firmware
vendor/firmware/cps4035.bin
# Display calibration data
vendor/etc/qdcm_calib_data_mipi_mot_cmd_csot_1080p_dsc_655.xml
vendor/etc/qdcm_calib_data_mipi_mot_cmd_tm_1080p_dsc_655.xml
vendor/etc/qdcm_calib_data_nt36672e_60_Hz_fhd_plus_video_mode_panel_without_DSC.xml
vendor/etc/qdcm_calib_data_nt36672e_fhd_plus_120Hz_Video_panel.xml
vendor/etc/qdcm_calib_data_nt36672e_fhd_plus_144Hz_video_panel.xml
vendor/etc/display/qdcm_calib_data_mipi_mot_cmd_csot_1080p_dsc_667.json
vendor/etc/display/qdcm_calib_data_mipi_mot_cmd_csot_1080p_dsc_667_c6.json
vendor/etc/display/qdcm_calib_data_mipi_mot_cmd_csot_ili_1080p_dsc_667.json
vendor/etc/display/qdcm_calib_data_mipi_mot_cmd_tianma_1080p_667.json
vendor/etc/display/qdcm_calib_data_mipi_mot_video_dummy_qhd.json
vendor/etc/display/qdcm_calib_data_nt36672e_lcd_video_mode_dsi_novatek_panel_with_DSC.json
vendor/etc/display/qdcm_calib_data_nt36672e_lcd_video_mode_dsi_novatek_panel_without_DSC.json
# Fingerprint
vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-ets
@@ -454,6 +435,7 @@ vendor/bin/STFlashTool
# NFC - configs
vendor/etc/libnfc-hal-st.conf
vendor/etc/libnfc-hal-st54j.conf
vendor/etc/libnfc-nci-st.conf
vendor/etc/st21nfc_conf_ds.txt
vendor/etc/st21nfc_conf_ss.txt
@@ -461,6 +443,7 @@ vendor/etc/st21nfc_conf_ss.txt
# NFC firmware
vendor/firmware/st21nfc_fw.bin
vendor/firmware/st21nfc_fw7.bin
vendor/firmware/st54j_fw.bin
# OEM
vendor/etc/vhw.xml
@@ -470,26 +453,34 @@ vendor/lib64/sensors.moto.so
vendor/lib64/sensors.ssc.so
# Sensor - configs
vendor/etc/sensors/config/icm4x6xx.json
vendor/etc/sensors/config/kodiak_default_sensors.json
vendor/etc/sensors/config/kodiak_dynamic_sensors.json
vendor/etc/sensors/config/kodiak_irq.json
vendor/etc/sensors/config/kodiak_power_0.json
vendor/etc/sensors/config/lsm6dso_0.json
vendor/etc/sensors/config/mmc5603x_0.json
vendor/etc/sensors/als_comp_config.xml
vendor/etc/sensors/als_comp_tf_csotc4.config
vendor/etc/sensors/als_comp_tf_csotc6.config
vendor/etc/sensors/als_comp_tf_tianma.config
vendor/etc/sensors/config/icm4x6xx_0.json
vendor/etc/sensors/config/mot_camgest.json
vendor/etc/sensors/config/mot_devorient.json
vendor/etc/sensors/config/mot_chopchop.json
vendor/etc/sensors/config/mot_drop.json
vendor/etc/sensors/config/mot_ftm.json
vendor/etc/sensors/config/mot_ltv.json
vendor/etc/sensors/config/mot_tap.json
vendor/etc/sensors/config/mot_vsync_psd.json
vendor/etc/sensors/config/mxg4300_0.json
vendor/etc/sensors/config/qmc6308_0.json
vendor/etc/sensors/config/qsh_camera.json
vendor/etc/sensors/config/sns_amd.json
vendor/etc/sensors/config/sns_amd_sw_disabled.json
vendor/etc/sensors/config/sns_amd_sw_enabled.json
vendor/etc/sensors/config/sns_aont.json
vendor/etc/sensors/config/sns_basic_gestures.json
vendor/etc/sensors/config/sns_bring_to_ear.json
vendor/etc/sensors/config/sns_ccd.json
vendor/etc/sensors/config/sns_ccd_v2_walk.json
vendor/etc/sensors/config/sns_ccd_v1_0_amd.json
vendor/etc/sensors/config/sns_ccd_v1_0_ttw.json
vendor/etc/sensors/config/sns_ccd_v2_0_walk.json
vendor/etc/sensors/config/sns_ccd_v3_0_walk.json
vendor/etc/sensors/config/sns_ccd_v3_1_walk.json
vendor/etc/sensors/config/sns_ccd_v3_walk.json
vendor/etc/sensors/config/sns_ccd_v4_0_sensors.json
vendor/etc/sensors/config/sns_ccd_v4_0_te_cd_regs.json
vendor/etc/sensors/config/sns_cm.json
vendor/etc/sensors/config/sns_dae.json
vendor/etc/sensors/config/sns_device_orient.json
@@ -502,10 +493,8 @@ vendor/etc/sensors/config/sns_fmv.json
vendor/etc/sensors/config/sns_fmv_legacy.json
vendor/etc/sensors/config/sns_geomag_rv.json
vendor/etc/sensors/config/sns_gyro_cal.json
vendor/etc/sensors/config/sns_heart_rate.json
vendor/etc/sensors/config/sns_mag_cal.json
vendor/etc/sensors/config/sns_mag_cal_legacy.json
vendor/etc/sensors/config/sns_multishake.json
vendor/etc/sensors/config/sns_pedometer.json
vendor/etc/sensors/config/sns_rmd.json
vendor/etc/sensors/config/sns_rotv.json
@@ -514,165 +503,30 @@ vendor/etc/sensors/config/sns_tilt.json
vendor/etc/sensors/config/sns_tilt_sw_disabled.json
vendor/etc/sensors/config/sns_tilt_sw_enabled.json
vendor/etc/sensors/config/sns_tilt_to_wake.json
vendor/etc/sensors/config/sns_wrist_pedo.json
vendor/etc/sensors/config/stk3a5x_0.json
vendor/etc/sensors/proto/als_mastercal.proto
vendor/etc/sensors/proto/descriptor.proto
vendor/etc/sensors/proto/mot_barocal.proto
vendor/etc/sensors/proto/mot_camgest.proto
vendor/etc/sensors/proto/mot_chopchop.proto
vendor/etc/sensors/proto/mot_devorient.proto
vendor/etc/sensors/proto/mot_dsp_usound.proto
vendor/etc/sensors/proto/mot_flip.proto
vendor/etc/sensors/proto/mot_ftm.proto
vendor/etc/sensors/proto/mot_glance.proto
vendor/etc/sensors/proto/mot_log.proto
vendor/etc/sensors/proto/mot_lts.proto
vendor/etc/sensors/proto/mot_ltv.proto
vendor/etc/sensors/proto/mot_movement.proto
vendor/etc/sensors/proto/mot_offbody.proto
vendor/etc/sensors/proto/mot_probe.proto
vendor/etc/sensors/proto/mot_proxcal.proto
vendor/etc/sensors/proto/mot_stowed.proto
vendor/etc/sensors/proto/mot_tap.proto
vendor/etc/sensors/proto/mot_vsync.proto
vendor/etc/sensors/proto/nanopb.proto
vendor/etc/sensors/proto/sns_accel.proto
vendor/etc/sensors/proto/sns_accel_cal.proto
vendor/etc/sensors/proto/sns_activity_recognition.proto
vendor/etc/sensors/proto/sns_ambient_light.proto
vendor/etc/sensors/proto/sns_ambient_temperature.proto
vendor/etc/sensors/proto/sns_amd.proto
vendor/etc/sensors/proto/sns_aont.proto
vendor/etc/sensors/proto/sns_basic_gestures.proto
vendor/etc/sensors/proto/sns_bring_to_ear.proto
vendor/etc/sensors/proto/sns_cal.proto
vendor/etc/sensors/proto/sns_client.proto
vendor/etc/sensors/proto/sns_cmc.proto
vendor/etc/sensors/proto/sns_da_test.proto
vendor/etc/sensors/proto/sns_device_mode.proto
vendor/etc/sensors/proto/sns_device_orient.proto
vendor/etc/sensors/proto/sns_diag.proto
vendor/etc/sensors/proto/sns_diag_sensor.proto
vendor/etc/sensors/proto/sns_direct_channel.proto
vendor/etc/sensors/proto/sns_dpc.proto
vendor/etc/sensors/proto/sns_ext_svc.proto
vendor/etc/sensors/proto/sns_facing.proto
vendor/etc/sensors/proto/sns_fmv.proto
vendor/etc/sensors/proto/sns_formatter.proto
vendor/etc/sensors/proto/sns_fw.proto
vendor/etc/sensors/proto/sns_game_rv.proto
vendor/etc/sensors/proto/sns_geomag_rv.proto
vendor/etc/sensors/proto/sns_gravity.proto
vendor/etc/sensors/proto/sns_gyro.proto
vendor/etc/sensors/proto/sns_gyro_cal.proto
vendor/etc/sensors/proto/sns_gyro_rot_matrix.proto
vendor/etc/sensors/proto/sns_hall.proto
vendor/etc/sensors/proto/sns_heart_beat.proto
vendor/etc/sensors/proto/sns_heart_rate.proto
vendor/etc/sensors/proto/sns_hinge_angle.proto
vendor/etc/sensors/proto/sns_humidity.proto
vendor/etc/sensors/proto/sns_mag.proto
vendor/etc/sensors/proto/sns_mag_cal.proto
vendor/etc/sensors/proto/sns_mot_factory_cal.proto
vendor/etc/sensors/proto/sns_oem1.proto
vendor/etc/sensors/proto/sns_offbody_detect.proto
vendor/etc/sensors/proto/sns_panel_status.proto
vendor/etc/sensors/proto/sns_pedometer.proto
vendor/etc/sensors/proto/sns_pedometer_wrist.proto
vendor/etc/sensors/proto/sns_physical_sensor_test.proto
vendor/etc/sensors/proto/sns_pose_6dof.proto
vendor/etc/sensors/proto/sns_ppg.proto
vendor/etc/sensors/proto/sns_pressure.proto
vendor/etc/sensors/proto/sns_proximity.proto
vendor/etc/sensors/proto/sns_psmd.proto
vendor/etc/sensors/proto/sns_registry.proto
vendor/etc/sensors/proto/sns_resampler.proto
vendor/etc/sensors/proto/sns_rgb.proto
vendor/etc/sensors/proto/sns_rmd.proto
vendor/etc/sensors/proto/sns_rotv.proto
vendor/etc/sensors/proto/sns_sar.proto
vendor/etc/sensors/proto/sns_sensor_temperature.proto
vendor/etc/sensors/proto/sns_sig_motion.proto
vendor/etc/sensors/proto/sns_std.proto
vendor/etc/sensors/proto/sns_std_event_gated_sensor.proto
vendor/etc/sensors/proto/sns_std_sensor.proto
vendor/etc/sensors/proto/sns_std_type.proto
vendor/etc/sensors/proto/sns_step_detect.proto
vendor/etc/sensors/proto/sns_suid.proto
vendor/etc/sensors/proto/sns_thermopile.proto
vendor/etc/sensors/proto/sns_threshold.proto
vendor/etc/sensors/proto/sns_tilt.proto
vendor/etc/sensors/proto/sns_tilt_to_wake.proto
vendor/etc/sensors/proto/sns_trimag.proto
vendor/etc/sensors/proto/sns_ultra_violet.proto
vendor/etc/sensors/proto/sns_wrist_tilt_gesture.proto
vendor/etc/sensors/config/tcs3720_0.json
vendor/etc/sensors/config/tcs3720_0_csot_dvt2.json
vendor/etc/sensors/config/tcs3720_0_csotc4_always.json
vendor/etc/sensors/config/tcs3720_0_csotc4_pvt1.json
vendor/etc/sensors/config/tcs3720_0_csotc6_always.json
vendor/etc/sensors/config/tcs3720_0_csotc6_pvt1.json
vendor/etc/sensors/config/tcs3720_0_evt_dvt1.json
vendor/etc/sensors/config/tcs3720_0_tianma_always.json
vendor/etc/sensors/config/tcs3720_0_tianma_dvt2.json
vendor/etc/sensors/config/waipio_default_sensors.json
vendor/etc/sensors/config/waipio_dynamic_sensors.json
vendor/etc/sensors/config/waipio_irq.json
vendor/etc/sensors/config/waipio_power_0.json
vendor/etc/sensors/hals.conf
vendor/etc/sensors/sns_reg_config
# Thermal engine - configs
vendor/etc/thermal-engine-dubai.conf
vendor/etc/thermal-engine-eqs.conf
vendor/etc/thermal-engine.conf
# Touchscreen firmware
vendor/firmware/csot_goodix_cfg_group.bin
vendor/firmware/csot_goodix_test_limits_255.csv
vendor/firmware/goodix-csot-gt9916S-2202250f-62187be9-dubai.bin
vendor/firmware/goodix-tianma-gt9916S-2202250f-62187c3e-dubai.bin
vendor/firmware/goodix-csot-gt9916-2207161f-62de58cd-eqs.bin
vendor/firmware/goodix-tianma-gt9916-2207161f-62de5b51-eqs.bin
vendor/firmware/tianma_goodix_cfg_group.bin
vendor/firmware/tianma_goodix_test_limits_255.csv
# Vibration firmware
vendor/firmware/aw8622x_haptic.bin
vendor/firmware/aw8622x_osc_rtp_12K_10s.bin
vendor/firmware/aw8622x_rtp.bin
vendor/firmware/aw8622x_rtp_Argo_Navis.bin
vendor/firmware/aw8622x_rtp_Attentive.bin
vendor/firmware/aw8622x_rtp_Awake.bin
vendor/firmware/aw8622x_rtp_Bird_Loop.bin
vendor/firmware/aw8622x_rtp_Brilliant_Times.bin
vendor/firmware/aw8622x_rtp_Chimey_Phone.bin
vendor/firmware/aw8622x_rtp_City_Lights.bin
vendor/firmware/aw8622x_rtp_Complex.bin
vendor/firmware/aw8622x_rtp_Crazy_Dream.bin
vendor/firmware/aw8622x_rtp_Curve_Ball_Blend.bin
vendor/firmware/aw8622x_rtp_Digital_Phone.bin
vendor/firmware/aw8622x_rtp_Electrovision.bin
vendor/firmware/aw8622x_rtp_Ether_Shake.bin
vendor/firmware/aw8622x_rtp_Fateful_Words.bin
vendor/firmware/aw8622x_rtp_Firefly.bin
vendor/firmware/aw8622x_rtp_Flutey_Phone.bin
vendor/firmware/aw8622x_rtp_Future_Funk.bin
vendor/firmware/aw8622x_rtp_Future_Hi_Tech.bin
vendor/firmware/aw8622x_rtp_Girtab.bin
vendor/firmware/aw8622x_rtp_Hello.bin
vendor/firmware/aw8622x_rtp_Hexagon.bin
vendor/firmware/aw8622x_rtp_Hydra.bin
vendor/firmware/aw8622x_rtp_Insert_Coin.bin
vendor/firmware/aw8622x_rtp_Jumping_Dots.bin
vendor/firmware/aw8622x_rtp_Keys.bin
vendor/firmware/aw8622x_rtp_Loopy.bin
vendor/firmware/aw8622x_rtp_Loopy_Lounge.bin
vendor/firmware/aw8622x_rtp_Modular.bin
vendor/firmware/aw8622x_rtp_Momentum.bin
vendor/firmware/aw8622x_rtp_Morning.bin
vendor/firmware/aw8622x_rtp_Moto.bin
vendor/firmware/aw8622x_rtp_Moto_Original.bin
vendor/firmware/aw8622x_rtp_Moto_Retro.bin
vendor/firmware/aw8622x_rtp_Natural.bin
vendor/firmware/aw8622x_rtp_New_Player.bin
vendor/firmware/aw8622x_rtp_Now_or_Never.bin
vendor/firmware/aw8622x_rtp_Onward.bin
vendor/firmware/aw8622x_rtp_Organ_Dub.bin
vendor/firmware/aw8622x_rtp_Overclocked.bin
vendor/firmware/aw8622x_rtp_Pegasus.bin
vendor/firmware/aw8622x_rtp_Play.bin
vendor/firmware/aw8622x_rtp_Pyxis.bin
vendor/firmware/aw8622x_rtp_Regrade.bin
vendor/firmware/aw8622x_rtp_Scarabaeus.bin
vendor/firmware/aw8622x_rtp_Sceptrum.bin
vendor/firmware/aw8622x_rtp_Simple.bin
vendor/firmware/aw8622x_rtp_Solarium.bin
vendor/firmware/aw8622x_rtp_Sparse.bin
vendor/firmware/aw8622x_rtp_Terrabytes.bin
vendor/firmware/aw8622x_rtp_Verizon_Airwaves.bin
vendor/firmware/aw8622x_rtp_Zero_Hour.bin

View File

@@ -1,5 +1,5 @@
runtime_resource_overlay {
name: "SystemUIResDubai",
name: "FrameworksResEqs",
sdk_version: "current",
vendor: true
}

View File

@@ -4,6 +4,6 @@
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.overlay.dubai">
package="android.overlay.eqs">
<overlay android:targetPackage="android" android:isStatic="true" android:priority="600"/>
</manifest>

View File

@@ -4,6 +4,6 @@
//
runtime_resource_overlay {
name: "LineageSystemUIDubai",
name: "LineageSystemUIEqs",
vendor: true,
}

View File

@@ -4,7 +4,7 @@
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.systemui.dubai.lineage">
package="com.android.systemui.eqs.lineage">
<overlay
android:isStatic="true"

View File

@@ -1,5 +1,5 @@
runtime_resource_overlay {
name: "SettingsProviderResDubai",
name: "SettingsProviderResEqs",
sdk_version: "current",
vendor: true
}

View File

@@ -5,6 +5,6 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
coreApp="true"
package="com.android.providers.settings.overlay.dubai">
package="com.android.providers.settings.overlay.eqs">
<overlay android:targetPackage="com.android.providers.settings" android:isStatic="true" />
</manifest>

View File

@@ -1,5 +1,5 @@
runtime_resource_overlay {
name: "FrameworksResDubai",
name: "SystemUIResEqs",
sdk_version: "current",
vendor: true
}

View File

@@ -5,6 +5,6 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
coreApp="true"
package="com.android.systemui.overlay.dubai">
package="com.android.systemui.overlay.eqs">
<overlay android:targetPackage="com.android.systemui" android:isStatic="true" />
</manifest>

View File

@@ -1,11 +0,0 @@
BasedOnStyle: Google
AccessModifierOffset: -2
AllowShortFunctionsOnASingleLine: Inline
ColumnLimit: 100
CommentPragmas: NOLINT:.*
DerivePointerAlignment: false
IndentWidth: 4
PointerAlignment: Left
TabWidth: 4
UseTab: Never
PenaltyExcessCharacter: 32

View File

@@ -1,35 +0,0 @@
//
// Copyright (C) 2022 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
cc_library_shared {
name: "sensors.dubai",
defaults: ["hidl_defaults"],
srcs: [
"Sensor.cpp",
"SensorsSubHal.cpp",
],
shared_libs: [
"android.hardware.sensors@1.0",
"android.hardware.sensors@2.0",
"android.hardware.sensors@2.0-ScopedWakelock",
"android.hardware.sensors@2.1",
"libcutils",
"libfmq",
"libhardware",
"libhidlbase",
"liblog",
"libpower",
"libutils",
],
static_libs: [
"android.hardware.sensors@1.0-convert",
"android.hardware.sensors@2.X-multihal",
],
cflags: [
"-DLOG_TAG=\"sensors.dubai\"",
],
vendor: true,
}

View File

@@ -1,361 +0,0 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "Sensor.h"
#include <hardware/sensors.h>
#include <log/log.h>
#include <utils/SystemClock.h>
#include <cmath>
static bool readBool(int fd, bool seek) {
char c;
int rc;
if (seek) {
rc = lseek(fd, 0, SEEK_SET);
if (rc) {
ALOGE("failed to seek: %d", rc);
return false;
}
}
rc = read(fd, &c, sizeof(c));
if (rc != 1) {
ALOGE("failed to read bool: %d", rc);
return false;
}
return c != '0';
}
namespace android {
namespace hardware {
namespace sensors {
namespace V2_1 {
namespace subhal {
namespace implementation {
using ::android::hardware::sensors::V1_0::MetaDataEventType;
using ::android::hardware::sensors::V1_0::OperationMode;
using ::android::hardware::sensors::V1_0::Result;
using ::android::hardware::sensors::V1_0::SensorFlagBits;
using ::android::hardware::sensors::V1_0::SensorStatus;
using ::android::hardware::sensors::V2_1::Event;
using ::android::hardware::sensors::V2_1::SensorInfo;
using ::android::hardware::sensors::V2_1::SensorType;
Sensor::Sensor(int32_t sensorHandle, ISensorsEventCallback* callback)
: mIsEnabled(false),
mSamplingPeriodNs(0),
mLastSampleTimeNs(0),
mCallback(callback),
mMode(OperationMode::NORMAL) {
mSensorInfo.sensorHandle = sensorHandle;
mSensorInfo.vendor = "The LineageOS Project";
mSensorInfo.version = 1;
constexpr float kDefaultMaxDelayUs = 1000 * 1000;
mSensorInfo.maxDelay = kDefaultMaxDelayUs;
mSensorInfo.fifoReservedEventCount = 0;
mSensorInfo.fifoMaxEventCount = 0;
mSensorInfo.requiredPermission = "";
mSensorInfo.flags = 0;
mRunThread = std::thread(startThread, this);
}
Sensor::~Sensor() {
// Ensure that lock is unlocked before calling mRunThread.join() or a
// deadlock will occur.
{
std::unique_lock<std::mutex> lock(mRunMutex);
mStopThread = true;
mIsEnabled = false;
mWaitCV.notify_all();
}
mRunThread.join();
}
const SensorInfo& Sensor::getSensorInfo() const {
return mSensorInfo;
}
void Sensor::batch(int32_t samplingPeriodNs) {
samplingPeriodNs =
std::clamp(samplingPeriodNs, mSensorInfo.minDelay * 1000, mSensorInfo.maxDelay * 1000);
if (mSamplingPeriodNs != samplingPeriodNs) {
mSamplingPeriodNs = samplingPeriodNs;
// Wake up the 'run' thread to check if a new event should be generated now
mWaitCV.notify_all();
}
}
void Sensor::activate(bool enable) {
std::lock_guard<std::mutex> lock(mRunMutex);
if (mIsEnabled != enable) {
mIsEnabled = enable;
mWaitCV.notify_all();
}
}
Result Sensor::flush() {
// Only generate a flush complete event if the sensor is enabled and if the sensor is not a
// one-shot sensor.
if (!mIsEnabled) {
return Result::BAD_VALUE;
}
// Note: If a sensor supports batching, write all of the currently batched events for the sensor
// to the Event FMQ prior to writing the flush complete event.
Event ev;
ev.sensorHandle = mSensorInfo.sensorHandle;
ev.sensorType = SensorType::META_DATA;
ev.u.meta.what = MetaDataEventType::META_DATA_FLUSH_COMPLETE;
std::vector<Event> evs{ev};
mCallback->postEvents(evs, isWakeUpSensor());
return Result::OK;
}
void Sensor::startThread(Sensor* sensor) {
sensor->run();
}
void Sensor::run() {
std::unique_lock<std::mutex> runLock(mRunMutex);
constexpr int64_t kNanosecondsInSeconds = 1000 * 1000 * 1000;
while (!mStopThread) {
if (!mIsEnabled || mMode == OperationMode::DATA_INJECTION) {
mWaitCV.wait(runLock, [&] {
return ((mIsEnabled && mMode == OperationMode::NORMAL) || mStopThread);
});
} else {
timespec curTime;
clock_gettime(CLOCK_REALTIME, &curTime);
int64_t now = (curTime.tv_sec * kNanosecondsInSeconds) + curTime.tv_nsec;
int64_t nextSampleTime = mLastSampleTimeNs + mSamplingPeriodNs;
if (now >= nextSampleTime) {
mLastSampleTimeNs = now;
nextSampleTime = mLastSampleTimeNs + mSamplingPeriodNs;
mCallback->postEvents(readEvents(), isWakeUpSensor());
}
mWaitCV.wait_for(runLock, std::chrono::nanoseconds(nextSampleTime - now));
}
}
}
bool Sensor::isWakeUpSensor() {
return mSensorInfo.flags & static_cast<uint32_t>(SensorFlagBits::WAKE_UP);
}
std::vector<Event> Sensor::readEvents() {
std::vector<Event> events;
Event event;
event.sensorHandle = mSensorInfo.sensorHandle;
event.sensorType = mSensorInfo.type;
event.timestamp = ::android::elapsedRealtimeNano();
event.u.vec3.x = 0;
event.u.vec3.y = 0;
event.u.vec3.z = 0;
event.u.vec3.status = SensorStatus::ACCURACY_HIGH;
events.push_back(event);
return events;
}
void Sensor::setOperationMode(OperationMode mode) {
std::lock_guard<std::mutex> lock(mRunMutex);
if (mMode != mode) {
mMode = mode;
mWaitCV.notify_all();
}
}
bool Sensor::supportsDataInjection() const {
return mSensorInfo.flags & static_cast<uint32_t>(SensorFlagBits::DATA_INJECTION);
}
Result Sensor::injectEvent(const Event& event) {
Result result = Result::OK;
if (event.sensorType == SensorType::ADDITIONAL_INFO) {
// When in OperationMode::NORMAL, SensorType::ADDITIONAL_INFO is used to push operation
// environment data into the device.
} else if (!supportsDataInjection()) {
result = Result::INVALID_OPERATION;
} else if (mMode == OperationMode::DATA_INJECTION) {
mCallback->postEvents(std::vector<Event>{event}, isWakeUpSensor());
} else {
result = Result::BAD_VALUE;
}
return result;
}
OneShotSensor::OneShotSensor(int32_t sensorHandle, ISensorsEventCallback* callback)
: Sensor(sensorHandle, callback) {
mSensorInfo.minDelay = -1;
mSensorInfo.maxDelay = 0;
mSensorInfo.flags |= SensorFlagBits::ONE_SHOT_MODE;
}
SysfsPollingOneShotSensor::SysfsPollingOneShotSensor(
int32_t sensorHandle, ISensorsEventCallback* callback, const std::string& pollPath,
const std::string& enablePath, const std::string& name, const std::string& typeAsString,
SensorType type)
: OneShotSensor(sensorHandle, callback) {
mSensorInfo.name = name;
mSensorInfo.type = type;
mSensorInfo.typeAsString = typeAsString;
mSensorInfo.maxRange = 2048.0f;
mSensorInfo.resolution = 1.0f;
mSensorInfo.power = 0;
mSensorInfo.flags |= SensorFlagBits::WAKE_UP;
mEnableStream.open(enablePath);
int rc;
rc = pipe(mWaitPipeFd);
if (rc < 0) {
mWaitPipeFd[0] = -1;
mWaitPipeFd[1] = -1;
ALOGE("failed to open wait pipe: %d", rc);
}
mPollFd = open(pollPath.c_str(), O_RDONLY);
if (mPollFd < 0) {
ALOGE("failed to open poll fd: %d", mPollFd);
}
if (mWaitPipeFd[0] < 0 || mWaitPipeFd[1] < 0 || mPollFd < 0) {
mStopThread = true;
return;
}
mPolls[0] = {
.fd = mWaitPipeFd[0],
.events = POLLIN,
};
mPolls[1] = {
.fd = mPollFd,
.events = POLLERR | POLLPRI,
};
}
SysfsPollingOneShotSensor::~SysfsPollingOneShotSensor() {
interruptPoll();
}
void SysfsPollingOneShotSensor::writeEnable(bool enable) {
if (mEnableStream) {
mEnableStream << (enable ? '1' : '0') << std::flush;
}
}
void SysfsPollingOneShotSensor::activate(bool enable, bool notify, bool lock) {
std::unique_lock<std::mutex> runLock(mRunMutex, std::defer_lock);
if (lock) {
runLock.lock();
}
if (mIsEnabled != enable) {
writeEnable(enable);
mIsEnabled = enable;
if (notify) {
interruptPoll();
mWaitCV.notify_all();
}
}
if (lock) {
runLock.unlock();
}
}
void SysfsPollingOneShotSensor::activate(bool enable) {
activate(enable, true, true);
}
void SysfsPollingOneShotSensor::setOperationMode(OperationMode mode) {
Sensor::setOperationMode(mode);
interruptPoll();
}
void SysfsPollingOneShotSensor::run() {
std::unique_lock<std::mutex> runLock(mRunMutex);
while (!mStopThread) {
if (!mIsEnabled || mMode == OperationMode::DATA_INJECTION) {
mWaitCV.wait(runLock, [&] {
return ((mIsEnabled && mMode == OperationMode::NORMAL) || mStopThread);
});
} else {
// Cannot hold lock while polling.
runLock.unlock();
int rc = poll(mPolls, 2, -1);
runLock.lock();
if (rc < 0) {
ALOGE("failed to poll: %d", rc);
mStopThread = true;
continue;
}
if (mPolls[1].revents == mPolls[1].events && readBool(mPollFd, true /* seek */)) {
activate(false, false, false);
mCallback->postEvents(readEvents(), isWakeUpSensor());
} else if (mPolls[0].revents == mPolls[0].events) {
readBool(mWaitPipeFd[0], false /* seek */);
}
}
}
}
void SysfsPollingOneShotSensor::interruptPoll() {
if (mWaitPipeFd[1] < 0) return;
char c = '1';
write(mWaitPipeFd[1], &c, sizeof(c));
}
std::vector<Event> SysfsPollingOneShotSensor::readEvents() {
std::vector<Event> events;
Event event;
event.sensorHandle = mSensorInfo.sensorHandle;
event.sensorType = mSensorInfo.type;
event.timestamp = ::android::elapsedRealtimeNano();
fillEventData(event);
events.push_back(event);
return events;
}
void SysfsPollingOneShotSensor::fillEventData(Event& event) {
event.u.data[0] = 0;
event.u.data[1] = 0;
}
} // namespace implementation
} // namespace subhal
} // namespace V2_1
} // namespace sensors
} // namespace hardware
} // namespace android

View File

@@ -1,142 +0,0 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <android/hardware/sensors/2.1/types.h>
#include <fcntl.h>
#include <poll.h>
#include <unistd.h>
#include <condition_variable>
#include <fstream>
#include <memory>
#include <mutex>
#include <thread>
#include <vector>
using ::android::hardware::sensors::V1_0::OperationMode;
using ::android::hardware::sensors::V1_0::Result;
using ::android::hardware::sensors::V2_1::Event;
using ::android::hardware::sensors::V2_1::SensorInfo;
using ::android::hardware::sensors::V2_1::SensorType;
namespace android {
namespace hardware {
namespace sensors {
namespace V2_1 {
namespace subhal {
namespace implementation {
class ISensorsEventCallback {
public:
virtual ~ISensorsEventCallback(){};
virtual void postEvents(const std::vector<Event>& events, bool wakeup) = 0;
};
class Sensor {
public:
Sensor(int32_t sensorHandle, ISensorsEventCallback* callback);
virtual ~Sensor();
const SensorInfo& getSensorInfo() const;
virtual void batch(int32_t samplingPeriodNs);
virtual void activate(bool enable);
virtual Result flush();
virtual void setOperationMode(OperationMode mode);
bool supportsDataInjection() const;
Result injectEvent(const Event& event);
protected:
virtual void run();
virtual std::vector<Event> readEvents();
static void startThread(Sensor* sensor);
bool isWakeUpSensor();
bool mIsEnabled;
int64_t mSamplingPeriodNs;
int64_t mLastSampleTimeNs;
SensorInfo mSensorInfo;
std::atomic_bool mStopThread;
std::condition_variable mWaitCV;
std::mutex mRunMutex;
std::thread mRunThread;
ISensorsEventCallback* mCallback;
OperationMode mMode;
};
class OneShotSensor : public Sensor {
public:
OneShotSensor(int32_t sensorHandle, ISensorsEventCallback* callback);
virtual void batch(int32_t /* samplingPeriodNs */) override {}
virtual Result flush() override { return Result::BAD_VALUE; }
};
class SysfsPollingOneShotSensor : public OneShotSensor {
public:
SysfsPollingOneShotSensor(int32_t sensorHandle, ISensorsEventCallback* callback,
const std::string& pollPath, const std::string& enablePath,
const std::string& name, const std::string& typeAsString,
SensorType type);
virtual ~SysfsPollingOneShotSensor() override;
virtual void activate(bool enable) override;
virtual void activate(bool enable, bool notify, bool lock);
virtual void writeEnable(bool enable);
virtual void setOperationMode(OperationMode mode) override;
virtual std::vector<Event> readEvents() override;
virtual void fillEventData(Event& event);
protected:
virtual void run() override;
std::ofstream mEnableStream;
private:
void interruptPoll();
struct pollfd mPolls[2];
int mWaitPipeFd[2];
int mPollFd;
};
const std::string kTsPath = "/sys/devices/platform/soc/a94000.spi/spi_master/spi0/spi0.0/touchscreen/primary/";
const std::string kTsDoubleTapPressedPath = kTsPath + "double_tap_pressed";
const std::string kTsDoubleTapEnabledPath = kTsPath + "double_tap_enabled";
class DoubleTapSensor : public SysfsPollingOneShotSensor {
public:
DoubleTapSensor(int32_t sensorHandle, ISensorsEventCallback* callback)
: SysfsPollingOneShotSensor(
sensorHandle, callback, kTsDoubleTapPressedPath, kTsDoubleTapEnabledPath,
"Double Tap Sensor", "org.lineageos.sensor.double_tap",
static_cast<SensorType>(static_cast<int32_t>(SensorType::DEVICE_PRIVATE_BASE) + 1)) {}
};
} // namespace implementation
} // namespace subhal
} // namespace V2_1
} // namespace sensors
} // namespace hardware
} // namespace android

View File

@@ -1,162 +0,0 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "SensorsSubHal.h"
#include <android/hardware/sensors/2.1/types.h>
#include <log/log.h>
using ::android::hardware::sensors::V2_1::implementation::ISensorsSubHal;
using ::android::hardware::sensors::V2_1::subhal::implementation::SensorsSubHal;
namespace android {
namespace hardware {
namespace sensors {
namespace V2_1 {
namespace subhal {
namespace implementation {
using ::android::hardware::Void;
using ::android::hardware::sensors::V2_0::implementation::ScopedWakelock;
SensorsSubHal::SensorsSubHal() : mCallback(nullptr), mNextHandle(1) {
AddSensor<DoubleTapSensor>();
}
Return<void> SensorsSubHal::getSensorsList_2_1(ISensors::getSensorsList_2_1_cb _hidl_cb) {
std::vector<SensorInfo> sensors;
for (const auto& sensor : mSensors) {
sensors.push_back(sensor.second->getSensorInfo());
}
_hidl_cb(sensors);
return Void();
}
Return<Result> SensorsSubHal::setOperationMode(OperationMode mode) {
for (auto sensor : mSensors) {
sensor.second->setOperationMode(mode);
}
mCurrentOperationMode = mode;
return Result::OK;
}
Return<Result> SensorsSubHal::activate(int32_t sensorHandle, bool enabled) {
auto sensor = mSensors.find(sensorHandle);
if (sensor != mSensors.end()) {
sensor->second->activate(enabled);
return Result::OK;
}
return Result::BAD_VALUE;
}
Return<Result> SensorsSubHal::batch(int32_t sensorHandle, int64_t samplingPeriodNs,
int64_t /* maxReportLatencyNs */) {
auto sensor = mSensors.find(sensorHandle);
if (sensor != mSensors.end()) {
sensor->second->batch(samplingPeriodNs);
return Result::OK;
}
return Result::BAD_VALUE;
}
Return<Result> SensorsSubHal::flush(int32_t sensorHandle) {
auto sensor = mSensors.find(sensorHandle);
if (sensor != mSensors.end()) {
return sensor->second->flush();
}
return Result::BAD_VALUE;
}
Return<Result> SensorsSubHal::injectSensorData_2_1(const Event& event) {
auto sensor = mSensors.find(event.sensorHandle);
if (sensor != mSensors.end()) {
return sensor->second->injectEvent(event);
}
return Result::BAD_VALUE;
}
Return<void> SensorsSubHal::registerDirectChannel(const SharedMemInfo& /* mem */,
ISensors::registerDirectChannel_cb _hidl_cb) {
_hidl_cb(Result::INVALID_OPERATION, -1 /* channelHandle */);
return Return<void>();
}
Return<Result> SensorsSubHal::unregisterDirectChannel(int32_t /* channelHandle */) {
return Result::INVALID_OPERATION;
}
Return<void> SensorsSubHal::configDirectReport(int32_t /* sensorHandle */,
int32_t /* channelHandle */, RateLevel /* rate */,
ISensors::configDirectReport_cb _hidl_cb) {
_hidl_cb(Result::INVALID_OPERATION, 0 /* reportToken */);
return Return<void>();
}
Return<void> SensorsSubHal::debug(const hidl_handle& fd, const hidl_vec<hidl_string>& args) {
if (fd.getNativeHandle() == nullptr || fd->numFds < 1) {
ALOGE("%s: missing fd for writing", __FUNCTION__);
return Void();
}
FILE* out = fdopen(dup(fd->data[0]), "w");
if (args.size() != 0) {
fprintf(out,
"Note: sub-HAL %s currently does not support args. Input arguments are "
"ignored.\n",
getName().c_str());
}
std::ostringstream stream;
stream << "Available sensors:" << std::endl;
for (auto sensor : mSensors) {
SensorInfo info = sensor.second->getSensorInfo();
stream << "Name: " << info.name << std::endl;
stream << "Min delay: " << info.minDelay << std::endl;
stream << "Flags: " << info.flags << std::endl;
}
stream << std::endl;
fprintf(out, "%s", stream.str().c_str());
fclose(out);
return Return<void>();
}
Return<Result> SensorsSubHal::initialize(const sp<IHalProxyCallback>& halProxyCallback) {
mCallback = halProxyCallback;
setOperationMode(OperationMode::NORMAL);
return Result::OK;
}
void SensorsSubHal::postEvents(const std::vector<Event>& events, bool wakeup) {
ScopedWakelock wakelock = mCallback->createScopedWakelock(wakeup);
mCallback->postEvents(events, std::move(wakelock));
}
} // namespace implementation
} // namespace subhal
} // namespace V2_1
} // namespace sensors
} // namespace hardware
} // namespace android
ISensorsSubHal* sensorsHalGetSubHal_2_1(uint32_t* version) {
static SensorsSubHal subHal;
*version = SUB_HAL_2_1_VERSION;
return &subHal;
}

View File

@@ -1,94 +0,0 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <vector>
#include "Sensor.h"
#include "V2_1/SubHal.h"
namespace android {
namespace hardware {
namespace sensors {
namespace V2_1 {
namespace subhal {
namespace implementation {
using ::android::hardware::sensors::V1_0::OperationMode;
using ::android::hardware::sensors::V1_0::RateLevel;
using ::android::hardware::sensors::V1_0::Result;
using ::android::hardware::sensors::V1_0::SharedMemInfo;
using ::android::hardware::sensors::V2_1::Event;
using ::android::hardware::sensors::V2_1::implementation::IHalProxyCallback;
using ::android::hardware::sensors::V2_1::implementation::ISensorsSubHal;
class SensorsSubHal : public ISensorsSubHal, public ISensorsEventCallback {
public:
SensorsSubHal();
Return<void> getSensorsList_2_1(ISensors::getSensorsList_2_1_cb _hidl_cb);
Return<Result> injectSensorData_2_1(const Event& event);
Return<Result> initialize(const sp<IHalProxyCallback>& halProxyCallback);
virtual Return<Result> setOperationMode(OperationMode mode);
OperationMode getOperationMode() const { return mCurrentOperationMode; }
Return<Result> activate(int32_t sensorHandle, bool enabled);
Return<Result> batch(int32_t sensorHandle, int64_t samplingPeriodNs, int64_t maxReportLatencyNs);
Return<Result> flush(int32_t sensorHandle);
Return<void> registerDirectChannel(const SharedMemInfo& mem,
ISensors::registerDirectChannel_cb _hidl_cb);
Return<Result> unregisterDirectChannel(int32_t channelHandle);
Return<void> configDirectReport(int32_t sensorHandle, int32_t channelHandle, RateLevel rate,
ISensors::configDirectReport_cb _hidl_cb);
Return<void> debug(const hidl_handle& fd, const hidl_vec<hidl_string>& args);
const std::string getName() { return "FakeSubHal"; }
void postEvents(const std::vector<Event>& events, bool wakeup) override;
protected:
template <class SensorType>
void AddSensor() {
std::shared_ptr<SensorType> sensor =
std::make_shared<SensorType>(mNextHandle++ /* sensorHandle */, this /* callback */);
mSensors[sensor->getSensorInfo().sensorHandle] = sensor;
}
std::map<int32_t, std::shared_ptr<Sensor>> mSensors;
sp<IHalProxyCallback> mCallback;
private:
OperationMode mCurrentOperationMode = OperationMode::NORMAL;
int32_t mNextHandle;
};
} // namespace implementation
} // namespace subhal
} // namespace V2_1
} // namespace sensors
} // namespace hardware
} // namespace android

View File

@@ -1,3 +0,0 @@
sensors.ssc.so
sensors.moto.so
sensors.dubai.so

View File

@@ -8,8 +8,8 @@
set -e
export DEVICE=dubai
export DEVICE_COMMON=sm7325-common
export DEVICE=eqs
export DEVICE_COMMON=sm8475-common
export VENDOR=motorola
"./../../${VENDOR}/${DEVICE_COMMON}/setup-makefiles.sh" "$@"

View File

@@ -1,3 +1,3 @@
# Google
ro.opa.device_model_id=motorola-dubai
ro.opa.device_model_id=motorola-eqs
ro.opa.eligible_device=true

View File

@@ -1,5 +1,5 @@
# Bluetooth
bluetooth.device.default_name=motorola edge 30
bluetooth.device.default_name=motorola edge 30 ultra
# Camera
persist.vendor.camera.physical.num=4