exynos9610: import configuration files
authorJan Altensen <info@stricted.net>
Fri, 15 May 2020 11:01:14 +0000 (13:01 +0200)
committerJan Altensen <info@stricted.net>
Sat, 17 Oct 2020 14:30:52 +0000 (16:30 +0200)
Change-Id: Iaab7347758ebfef6cb325828d8d2cb6831edd6a6

36 files changed:
common.mk
configs/audio/a2dp_audio_policy_configuration.xml [new file with mode: 0644]
configs/audio/aov_ec_mixer_paths.xml [new file with mode: 0644]
configs/audio/audio_effects.xml [new file with mode: 0644]
configs/audio/audio_ext_spkr.conf [new file with mode: 0644]
configs/audio/audio_platform_info.xml [new file with mode: 0644]
configs/audio/audio_policy_configuration.xml [new file with mode: 0644]
configs/audio/audio_policy_volumes.xml [new file with mode: 0644]
configs/audio/mixer_paths.retin.xml [new file with mode: 0644]
configs/audio/mixer_paths.xml [new file with mode: 0644]
configs/audio/r_submix_audio_policy_configuration.xml [new file with mode: 0644]
configs/audio/usb_audio_policy_configuration.xml [new file with mode: 0644]
configs/gps/gps.cfg [new file with mode: 0644]
configs/media/media_codecs.xml [new file with mode: 0644]
configs/media/media_codecs_dolby_audio.xml [new file with mode: 0644]
configs/media/media_codecs_google_audio.xml [new file with mode: 0644]
configs/media/media_codecs_google_telephony.xml [new file with mode: 0644]
configs/media/media_codecs_google_video.xml [new file with mode: 0644]
configs/media/media_codecs_performance.xml [new file with mode: 0644]
configs/media/media_profiles_V1_0.xml [new file with mode: 0644]
configs/media/media_profiles_vendor.xml [new file with mode: 0644]
configs/media/media_profiles_vendor_V1.xml [new file with mode: 0644]
configs/nfc/libnfc-nci.conf [new file with mode: 0644]
configs/nfc/libnfc-sec-vendor.conf [new file with mode: 0644]
configs/public.libraries.txt [new file with mode: 0644]
configs/seccomp/configstore@1.1.policy [new file with mode: 0644]
configs/seccomp/mediacodec.policy [new file with mode: 0644]
configs/sensors/hals.conf [new file with mode: 0644]
configs/sensors/mot_sensor_settings.json [new file with mode: 0644]
configs/thermal/exynos-thermal-kane-retin.conf [new file with mode: 0644]
configs/thermal/exynos-thermal-kane.conf [new file with mode: 0644]
configs/thermal/exynos-thermal-troika.conf [new file with mode: 0644]
configs/thermal/exynos-thermal.conf [new file with mode: 0644]
configs/thermal/exynos-thermal.env [new file with mode: 0644]
configs/wifi/p2p_supplicant.conf [new file with mode: 0644]
configs/wifi/wpa_supplicant.conf [new file with mode: 0644]

index 89ab916af577b7b5dc7834b44de002f8562d8762..3d4fe74670cfba7133f93b14502991c8143901db 100644 (file)
--- a/common.mk
+++ b/common.mk
@@ -39,6 +39,22 @@ AB_OTA_POSTINSTALL_CONFIG += \
     FILESYSTEM_TYPE_system=ext4 \
     POSTINSTALL_OPTIONAL_system=true
 
+
+# Audio
+PRODUCT_COPY_FILES += \
+    frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
+    $(COMMON_PATH)/configs/audio/aov_ec_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/aov_ec_mixer_paths.xml \
+    $(COMMON_PATH)/configs/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
+    $(COMMON_PATH)/configs/audio/audio_ext_spkr.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_ext_spkr.conf \
+    $(COMMON_PATH)/configs/audio/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
+    $(COMMON_PATH)/configs/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
+    $(COMMON_PATH)/configs/audio/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
+    $(COMMON_PATH)/configs/audio/mixer_paths.retin.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.retin.xml \
+    $(COMMON_PATH)/configs/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
+    frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
+    frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
+    frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+
 # Update engine
 PRODUCT_PACKAGES += \
     update_engine \
@@ -59,6 +75,11 @@ PRODUCT_PACKAGES += \
     FMRadio \
     libfmjni
 
+# GPS
+PRODUCT_COPY_FILES += \
+    $(COMMON_PATH)/configs/gps/gps.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.cfg
+
+
 # Graphics
 # Device uses high-density artwork where available
 PRODUCT_AAPT_CONFIG := xlarge
@@ -74,6 +95,18 @@ PRODUCT_COPY_FILES += \
 PRODUCT_COPY_FILES += \
     $(COMMON_PATH)/configs/init/init.recovery.exynos9610.rc:$(TARGET_COPY_OUT_ROOT)/init.recovery.exynos9610.rc
 
+# Media
+PRODUCT_COPY_FILES += \
+    $(COMMON_PATH)/configs/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
+    $(COMMON_PATH)/configs/media/media_codecs_dolby_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_dolby_audio.xml \
+    $(COMMON_PATH)/configs/media/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
+    $(COMMON_PATH)/configs/media/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
+    $(COMMON_PATH)/configs/media/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
+    $(COMMON_PATH)/configs/media/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
+    $(COMMON_PATH)/configs/media/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \
+    $(COMMON_PATH)/configs/media/media_profiles_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \
+    $(COMMON_PATH)/configs/media/media_profiles_vendor_V1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor_V1.xml
+
 # NFC
 PRODUCT_PACKAGES += \
     NfcNci \
@@ -81,6 +114,10 @@ PRODUCT_PACKAGES += \
     SecureElement \
     com.android.nfc_extras
 
+PRODUCT_COPY_FILES += \
+    $(COMMON_PATH)/configs/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nci.conf \
+    $(COMMON_PATH)/configs/nfc/libnfc-sec-vendor.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-sec-vendor.conf
+
 # Permissions
 PRODUCT_COPY_FILES += \
     frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
@@ -122,6 +159,32 @@ PRODUCT_COPY_FILES += \
     frameworks/native/data/etc/android.hardware.nfc.hce.xml:system/etc/permissions/android.hardware.nfc.hce.xml \
     frameworks/native/data/etc/android.hardware.nfc.hce.xml:system/etc/permissions/android.hardware.nfc.hcef.xml
 
+# Public Libraries
+PRODUCT_COPY_FILES += \
+    $(COMMON_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt
+
+# Recovery
+PRODUCT_PACKAGES += \
+    android.hardware.boot@1.0-impl.exynos.recovery
+
+# Seccomp
+PRODUCT_COPY_FILES += \
+    $(COMMON_PATH)/configs/seccomp/configstore@1.1.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/configstore@1.1.policy \
+    $(COMMON_PATH)/configs/seccomp/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy
+
+# Sensors
+PRODUCT_COPY_FILES += \
+    $(COMMON_PATH)/configs/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf \
+    $(COMMON_PATH)/configs/sensors/mot_sensor_settings.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/mot_sensor_settings.json
+
+# Thermal
+PRODUCT_COPY_FILES += \
+    $(COMMON_PATH)/configs/thermal/exynos-thermal.conf:$(TARGET_COPY_OUT_VENDOR)/exynos-thermal.conf \
+    $(COMMON_PATH)/configs/thermal/exynos-thermal.env:$(TARGET_COPY_OUT_VENDOR)/exynos-thermal.env \
+    $(COMMON_PATH)/configs/thermal/exynos-thermal-kane.conf:$(TARGET_COPY_OUT_VENDOR)/exynos-thermal-kane.conf \
+    $(COMMON_PATH)/configs/thermal/exynos-thermal-kane-retin.conf:$(TARGET_COPY_OUT_VENDOR)/exynos-thermal-kane-retin.conf \
+    $(COMMON_PATH)/configs/thermal/exynos-thermal-troika.conf:$(TARGET_COPY_OUT_VENDOR)/exynos-thermal-troika.conf
+
 # WiFi
 PRODUCT_PACKAGES += \
     android.hardware.wifi@1.0-service \
@@ -132,3 +195,8 @@ PRODUCT_PACKAGES += \
     libwpa_client \
     wpa_supplicant \
     wpa_supplicant.conf \
+
+PRODUCT_COPY_FILES += \
+    $(COMMON_PATH)/configs/wifi/p2p_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant.conf \
+    $(COMMON_PATH)/configs/wifi/wpa_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf
+
diff --git a/configs/audio/a2dp_audio_policy_configuration.xml b/configs/audio/a2dp_audio_policy_configuration.xml
new file mode 100644 (file)
index 0000000..7bcab5c
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- A2dp Audio HAL Audio Policy Configuration file -->
+<module name="a2dp" halVersion="2.0">
+    <mixPorts>
+        <mixPort name="a2dp output" role="source"/>
+        <mixPort name="a2dp input" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100,48000"
+                     channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+        </mixPort>
+    </mixPorts>
+    <devicePorts>
+        <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </devicePort>
+        <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </devicePort>
+        <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </devicePort>
+        <devicePort tagName="BT A2DP In" type="AUDIO_DEVICE_IN_BLUETOOTH_A2DP" role="source">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100,48000"
+                     channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+        </devicePort>
+    </devicePorts>
+    <routes>
+        <route type="mix" sink="BT A2DP Out"
+               sources="a2dp output"/>
+        <route type="mix" sink="BT A2DP Headphones"
+               sources="a2dp output"/>
+        <route type="mix" sink="BT A2DP Speaker"
+               sources="a2dp output"/>
+        <route type="mix" sink="a2dp input"
+               sources="BT A2DP In"/>
+    </routes>
+</module>
diff --git a/configs/audio/aov_ec_mixer_paths.xml b/configs/audio/aov_ec_mixer_paths.xml
new file mode 100644 (file)
index 0000000..cebc69f
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<mixer>
+       <!-- These are the initial mixer settings -->
+       <!-- AOV default EC REF settings -->
+       <ctl name="ISRC1DEC4 Input 1" value="None" />
+       <ctl name="DSP2 Aux 6" value="None" />
+       <!-- AOV default EC REF settings end -->
+
+       <path name="aov-ec-ref-spkr">
+               <ctl name="ISRC1DEC4 Input 1" value="AIF1RX1" />
+               <ctl name="DSP2 Aux 6" value="ISRC1DEC4" />
+       </path>
+</mixer>
diff --git a/configs/audio/audio_effects.xml b/configs/audio/audio_effects.xml
new file mode 100644 (file)
index 0000000..b988a7c
--- /dev/null
@@ -0,0 +1,53 @@
+<?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="bundle" path="libbundlewrapper.so"/>
+        <library name="reverb" path="libreverbwrapper.so"/>
+        <library name="visualizer" path="libvisualizer.so"/>
+        <library name="downmix" path="libdownmix.so"/>
+        <library name="loudness_enhancer" path="libldnhncr.so"/>
+        <library name="dynamics_processing" path="libdynproc.so"/>
+        <library name="dap" path="libswdap.so"/>
+        <library name="proxy" path="libeffectproxy.so"/>
+        <library name="mot_speaker_helper" path="libspeakerbundle.so"/>
+    </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="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="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
+        <effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
+        <effect name="dap" library="dap" uuid="9d4921da-8225-4f29-aefa-39537a04bcaa"/>
+        <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"/>
+    </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>
+</audio_effects_conf>
diff --git a/configs/audio/audio_ext_spkr.conf b/configs/audio/audio_ext_spkr.conf
new file mode 100644 (file)
index 0000000..8f7dd2b
--- /dev/null
@@ -0,0 +1,27 @@
+global_config {
+    name Kane
+}
+
+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 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+    knee_step 16
+}
+
+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 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+    knee_step 17
+}
+
+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 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+    knee_step 16
+}
diff --git a/configs/audio/audio_platform_info.xml b/configs/audio/audio_platform_info.xml
new file mode 100644 (file)
index 0000000..16cd6a5
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<audio_platform_info>
+
+<pcm_ids>
+       <usecase name="USECASE_MOTVR_COMMAND" type="in" id="23" />
+       <usecase name="USECASE_MOTVR_TRACE" type="in" id="24" />
+       <usecase name="USECASE_ADSPD_DSP1_TEXT" type="in" id="27" />
+       <usecase name="USECASE_ADSPD_DSP2_TEXT" type="in" id="25" />
+       <usecase name="USECASE_ADSPD_DSP3_TEXT" type="in" id="26" />
+</pcm_ids>
+
+</audio_platform_info>
diff --git a/configs/audio/audio_policy_configuration.xml b/configs/audio/audio_policy_configuration.xml
new file mode 100644 (file)
index 0000000..446698a
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!-- Copyright (C) 2016 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="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
+    <globalConfiguration speaker_drc_enabled="false"/>
+
+    <modules>
+        <!-- Primary Audio HAL -->
+        <module name="primary" halVersion="2.0">
+            <attachedDevices>
+                <item>Speaker</item>
+                <item>Earpiece</item>
+                <item>Telephony Tx</item>
+                <item>Built-In Mic</item>
+                <item>Built-In Back Mic</item>
+                <item>FM Tuner</item>
+                <item>Call Recording</item>
+            </attachedDevices>
+            <defaultOutputDevice>Speaker</defaultOutputDevice>
+            <mixPorts>
+                <!-- Playback(Output) Streams -->
+                <mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY">
+                    <profile name="primary_out" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
+
+                <mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
+
+                <mixPort name="deep_buffer" role="source" flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
+                    <profile name="deep_out" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="8000,16000,32000,44100,48000"
+                             channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
+
+                <mixPort name="aux output" role="source" flags="AUDIO_OUTPUT_FLAG_NONE">
+                    <profile name="aux_out" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000" channelMasks="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"
+                             channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
+
+                <!-- Capture(Input) Streams -->
+                <mixPort name="primary input" role="sink">
+                    <profile name="primary_in" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="8000,16000,32000,48000"
+                             channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
+                </mixPort>
+
+                <mixPort name="fm input" role="sink">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="8000,16000,32000,48000"
+                             channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
+                </mixPort>
+
+                <mixPort name="fast input" role="sink" flags="AUDIO_INPUT_FLAG_FAST">
+                    <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
+                             samplingRates="48000"
+                             channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
+                </mixPort>
+
+                <mixPort name="mmap_no_irq_in" role="sink" flags="AUDIO_INPUT_FLAG_MMAP_NOIRQ">
+                    <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_INDEX_MASK_3"/>
+                </mixPort>
+            </mixPorts>
+
+            <devicePorts>
+                <devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink">
+                </devicePort>
+                <devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
+                </devicePort>
+                <devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
+                </devicePort>
+                <devicePort tagName="Wired Headphone" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
+                </devicePort>
+                <devicePort tagName="Line Out" type="AUDIO_DEVICE_OUT_LINE" role="sink">
+                </devicePort>
+
+                <devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
+                </devicePort>
+                <devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
+                </devicePort>
+                <devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
+                </devicePort>
+
+                <devicePort tagName="AUX DIGITAL" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
+                </devicePort>
+
+                <devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
+                </devicePort>
+                <devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
+                </devicePort>
+                <devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
+                </devicePort>
+
+                <devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
+                </devicePort>
+                <devicePort tagName="FM Tuner" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
+                </devicePort>
+                <devicePort tagName="Call Recording" type="AUDIO_DEVICE_IN_VOICE_CALL" role="source"/>
+                <devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink"/>
+            </devicePorts>
+
+            <routes>
+                <route type="mix" sink="Earpiece"
+                       sources="primary output,deep_buffer,mmap_no_irq_out"/>
+                <route type="mix" sink="Speaker"
+                       sources="primary output,deep_buffer,mmap_no_irq_out"/>
+                <route type="mix" sink="Wired Headset"
+                       sources="primary output,deep_buffer,mmap_no_irq_out"/>
+                <route type="mix" sink="Wired Headphone"
+                       sources="primary output,deep_buffer,mmap_no_irq_out"/>
+                <route type="mix" sink="Line Out"
+                       sources="primary output,deep_buffer,mmap_no_irq_out"/>
+
+                <route type="mix" sink="BT SCO"
+                       sources="primary output,deep_buffer"/>
+                <route type="mix" sink="BT SCO Headset"
+                       sources="primary output,deep_buffer"/>
+                <route type="mix" sink="BT SCO Car Kit"
+                       sources="primary output,deep_buffer"/>
+
+                <route type="mix" sink="AUX DIGITAL"
+                       sources="aux output"/>
+                <route type="mix" sink="Telephony Tx"
+                       sources="incall_music_uplink"/>
+
+                <route type="mix" sink="primary input"
+                       sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,Call Recording"/>
+                <route type="mix" sink="fm input" sources="FM Tuner"/>
+                <route type="mix" sink="fast input"
+                       sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
+                <route type="mix" sink="mmap_no_irq_in"
+                       sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
+            </routes>
+
+        </module>
+
+        <module name="vx_motvr" halVersion="3.0">
+            <mixPorts>
+                <mixPort name="primary 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="trigger" role="sink" flags="AUDIO_INPUT_FLAG_HW_HOTWORD|AUDIO_INPUT_FLAG_CAPTURE_TRIGGER_AUDIO">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="16000"
+                             channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+                </mixPort>
+            </mixPorts>
+            <devicePorts>
+                <devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source" address="bottom">
+                </devicePort>
+                <devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
+                </devicePort>
+            </devicePorts>
+            <routes>
+                <route type="mix" sink="primary input"
+                       sources="Built-In Mic,Wired Headset Mic"/>
+                <route type="mix" sink="trigger"
+                       sources="Built-In Mic,Wired Headset Mic"/>
+            </routes>
+        </module>
+
+        <!-- USB Audio HAL -->
+        <xi:include href="usb_audio_policy_configuration.xml"/>
+
+        <!-- A2dp Audio HAL -->
+        <xi:include href="a2dp_audio_policy_configuration.xml"/>
+
+        <!-- Remote Submix Audio HAL -->
+        <xi:include href="r_submix_audio_policy_configuration.xml"/>
+
+    </modules>
+
+    <!-- Volume section -->
+    <xi:include href="audio_policy_volumes.xml"/>
+    <xi:include href="default_volume_tables.xml"/>
+
+</audioPolicyConfiguration>
diff --git a/configs/audio/audio_policy_volumes.xml b/configs/audio/audio_policy_volumes.xml
new file mode 100644 (file)
index 0000000..6ac2593
--- /dev/null
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+-->
+<!-- Volume section defines a volume curve for a given use case and device category.
+It contains a list of points of this curve expressing the attenuation in Millibels for a given
+volume index from 0 to 100.
+<volume stream=”AUDIO_STREAM_MUSIC” deviceCategory=””>
+<point>0,-9600</point>
+<point>100,0</point>
+</volume>
+-->
+
+<volumes>
+    <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_HEADSET">
+        <point>0,-2700</point>
+        <point>33,-1800</point>
+        <point>66,-900</point>
+        <point>100,0</point>
+    </volume>
+    <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_SPEAKER">
+        <point>0,-2400</point>
+        <point>33,-1600</point>
+        <point>66,-800</point>
+        <point>100,0</point>
+    </volume>
+    <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EARPIECE">
+        <point>0,-2400</point>
+        <point>33,-1600</point>
+        <point>66,-800</point>
+        <point>100,0</point>
+    </volume>
+    <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_HEARING_AID_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_SYSTEM" 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_SYSTEM" deviceCategory="DEVICE_CATEGORY_SPEAKER"
+                                         ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_EARPIECE"
+                                         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">
+        <point>1,-3570</point>
+        <point>33,-2010</point>
+        <point>66,-1020</point>
+        <point>100,0</point>
+    </volume>
+    <volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_EARPIECE"
+                                       ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
+                                       ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
+    <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_NON_MUTABLE_HEADSET_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_SPEAKER">
+        <point>1,-2970</point>
+        <point>33,-2010</point>
+        <point>66,-1020</point>
+        <point>100,0</point>
+    </volume>
+    <volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_EARPIECE"
+                                        ref="DEFAULT_NON_MUTABLE_EARPIECE_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
+                                        ref="DEFAULT_NON_MUTABLE_EXT_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">
+        <point>1,-3370</point>
+        <point>33,-2210</point>
+        <point>66,-1420</point>
+        <point>100,-400</point>
+    </volume>
+    <volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_EARPIECE"
+                                               ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
+                                               ref="DEFAULT_DEVICE_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">
+        <point>0,-4200</point>
+        <point>33,-2800</point>
+        <point>66,-1400</point>
+        <point>100,0</point>
+    </volume>
+    <volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_SPEAKER">
+        <point>0,-2400</point>
+        <point>33,-1600</point>
+        <point>66,-800</point>
+        <point>100,0</point>
+    </volume>
+    <volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_EARPIECE">
+        <point>0,-4200</point>
+        <point>33,-2800</point>
+        <point>66,-1400</point>
+        <point>100,0</point>
+    </volume>
+    <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">
+        <point>1,-3000</point>
+        <point>33,-2600</point>
+        <point>66,-2200</point>
+        <point>100,-1800</point>
+    </volume>
+    <volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_SPEAKER"
+                                                   ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_EARPIECE"
+                                                   ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
+                                                   ref="DEFAULT_DEVICE_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"
+                                       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"
+                                      ref="FULL_SCALE_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_EARPIECE"
+                                      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_NON_MUTABLE_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_SPEAKER"
+                                                ref="DEFAULT_NON_MUTABLE_SPEAKER_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_EARPIECE"
+                                                ref="DEFAULT_NON_MUTABLE_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
+                                                ref="DEFAULT_NON_MUTABLE_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"
+                                            ref="FULL_SCALE_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_EARPIECE"
+                                            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"
+                                        ref="FULL_SCALE_VOLUME_CURVE"/>
+    <volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_EARPIECE"
+                                        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>
+
diff --git a/configs/audio/mixer_paths.retin.xml b/configs/audio/mixer_paths.retin.xml
new file mode 100644 (file)
index 0000000..c2cdb8f
--- /dev/null
@@ -0,0 +1,2807 @@
+<mixer>
+  <!-- These paths are for ERD with Exynos9610 -->
+
+  <!-- Board Device Connections -->
+  <!-- UAIF0 - CODEC for normal Playback and Capture -->
+  <!-- UAIF1 - None -->
+  <!-- UAIF2 - Echo Reference from Codec -->
+  <!-- UAIF3 - None -->
+  <!-- UAIF4 - Loopback -->
+  <!-- SPDY  - FM Radio -->
+
+  <!-- Exynos A-Box Term -->
+  <!-- SIFS0 : Mixer for Playback -->
+  <!-- SIFS1 : Mux1 for Playback -->
+  <!-- SIFS2 : Mux2 for Playback -->
+  <!-- RSRC0 : Recording Source 0 -->
+  <!-- RSRC1 : Recording Source 1 -->
+  <!-- NSRC0 : Capture Source 0 -->
+  <!-- NSRC1 : Capture Source 1 -->
+  <!-- NSRC2 : Capture Source 2 -->
+  <!-- NSRC3 : Capture Source 3 -->
+
+  <!-- Initial Mixer control configurations -->
+    <ctl name="ABOX Sampling Rate Mixer" value="48000" />
+    <ctl name="ABOX Sampling Rate Out1" value="48000" />
+    <ctl name="ABOX Sampling Rate Out2" value="48000" />
+
+    <ctl name="ABOX SPUS ASRC0" value="On" />
+    <ctl name="ABOX SPUS ASRC1" value="On" />
+    <ctl name="ABOX SPUS ASRC2" value="On" />
+    <ctl name="ABOX SPUS ASRC3" value="On" />
+    <ctl name="ABOX SPUS ASRC4" value="On" />
+    <ctl name="ABOX SPUS ASRC5" value="On" />
+    <ctl name="ABOX SPUS ASRC6" value="On" />
+    <ctl name="ABOX SPUS ASRC7" value="On" />
+
+    <ctl name="ABOX SPUS OUT0" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT1" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT2" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT3" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT4" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT5" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT6" value="SIFS2" />
+    <ctl name="ABOX SPUS OUT7" value="SIFS1" />
+
+    <ctl name="ABOX SIFS1" value="SPUS OUT7" />
+    <ctl name="ABOX SIFS2" value="SPUS OUT6" />
+
+    <ctl name="ABOX UAIF1 SPK" value="SIFS2" />
+
+    <ctl name="ABOX Sampling Rate Recp" value="48000" />
+    <ctl name="ABOX Sampling Rate Inmux0" value="48000" />
+    <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+    <ctl name="ABOX Sampling Rate Inmux2" value="48000" />
+    <ctl name="ABOX Sampling Rate Inmux3" value="48000" />
+    <ctl name="ABOX Sampling Rate Inmux4" value="48000" />
+
+    <ctl name="ABOX SPUM ASRC0" value="On" />
+    <ctl name="ABOX SPUM ASRC1" value="On" />
+    <ctl name="ABOX SPUM ASRC2" value="On" />
+    <ctl name="ABOX SPUM ASRC3" value="On" />
+    <ctl name="ABOX RECP PIFS0" value="0" />
+    <ctl name="ABOX RECP PIFS1" value="0" />
+
+    <ctl name="ABOX SIFM0" value="WDMA" />
+    <ctl name="ABOX SIFM1" value="WDMA" />
+    <ctl name="ABOX SIFM2" value="WDMA" />
+    <ctl name="ABOX SIFM3" value="WDMA" />
+
+    <ctl name="ABOX NSRC0" value="RESERVED" />
+    <ctl name="ABOX NSRC1" value="RESERVED" />
+    <ctl name="ABOX NSRC2" value="RESERVED" />
+    <ctl name="ABOX NSRC3" value="RESERVED" />
+
+    <ctl name="ABOX ERAP info FM Radio On" value="0" />
+    <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+    <ctl name="ABOX ERAP info ICM On" value="0" />
+
+  <!-- Initial Codec control configurations -->
+    <ctl name="IN1L Mux" value="A" />
+    <ctl name="IN1R Mux" value="B" />
+    <ctl name="IN1L Volume" value="18" />
+    <ctl name="IN1R Volume" value="18" />
+    <ctl name="IN2L Volume" value="18" />
+    <ctl name="IN2R Volume" value="18" />
+    <ctl name="IN1L Digital Volume" value="128" />
+    <ctl name="IN1R Digital Volume" value="128" />
+    <ctl name="IN2L Digital Volume" value="128" />
+    <ctl name="IN2R Digital Volume" value="128" />
+    <ctl name="IN HPF Cutoff Frequency" value="40Hz" />
+    <ctl name="IN1L HPF Switch" value="1" />
+    <ctl name="IN1R HPF Switch" value="1" />
+    <ctl name="IN2L HPF Switch" value="1" />
+    <ctl name="IN2R HPF Switch" value="1" />
+    <ctl name="SLIMTX1 Input 1" value="None" />
+    <ctl name="SLIMTX2 Input 1" value="None" />
+    <ctl name="SLIMTX3 Input 1" value="None" />
+    <ctl name="SLIMTX5 Input 1" value="None" />
+    <ctl name="SLIMTX6 Input 1" value="None" />
+    <ctl name="Input Ramp Up" value="8ms/6dB" />
+    <ctl name="Input Ramp Down" value="8ms/6dB" />
+    <ctl name="AIF1TX1 Input 1" value="None" />
+    <ctl name="AIF1TX1 Input 2" value="None" />
+    <ctl name="AIF1TX1 Input 3" value="None" />
+    <ctl name="AIF1TX1 Input 1 Volume" value="32" />
+    <ctl name="AIF1TX1 Input 2 Volume" value="32" />
+    <ctl name="AIF1TX1 Input 3 Volume" value="32" />
+    <ctl name="AIF1TX2 Input 1" value="None" />
+    <ctl name="AIF1TX2 Input 2" value="None" />
+    <ctl name="AIF1TX2 Input 3" value="None" />
+    <ctl name="AIF1TX2 Input 1 Volume" value="32" />
+    <ctl name="AIF1TX2 Input 2 Volume" value="32" />
+    <ctl name="AIF1TX2 Input 3 Volume" value="32" />
+    <ctl name="HPOUT1L Input 1" value="None" />
+    <ctl name="HPOUT1R Input 1" value="None" />
+    <ctl name="HPOUT1 Digital Volume" id="0" value="0" />
+    <ctl name="HPOUT1 Digital Volume" id="1" value="0" />
+    <ctl name="HPOUT1 Digital Switch" id="0" value="0" />
+    <ctl name="HPOUT1 Digital Switch" id="1" value="0" />
+    <ctl name="DSP2 Firmware" value="frontend" />
+    <ctl name="DSP3 Firmware" value="aov" />
+    <ctl name="Sample Rate 2" value="16kHz" />
+    <ctl name="Sample Rate 3" value="48kHz" />
+    <ctl name="In Rate" value="SYNCCLK rate 3" />
+    <ctl name="FX Rate" value="SYNCCLK rate 2" />
+    <ctl name="ISRC1 FSH" value="SYNCCLK rate 3" />
+    <ctl name="ISRC1 FSL" value="SYNCCLK rate 2" />
+    <ctl name="LHPF1 Input 1" value="None" />
+    <ctl name="LHPF1 Mode" value="High-pass" />
+    <ctl name="LHPF1 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF1 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2L Input 1" value="LHPF1" />
+    <ctl name="DSP2L Input 1 Volume" value="48" />
+    <ctl name="LHPF2 Input 1" value="None" />
+    <ctl name="LHPF2 Mode" value="High-pass" />
+    <ctl name="LHPF2 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF2 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2 Aux 1" value="LHPF2" />
+    <ctl name="LHPF3 Input 1" value="None" />
+    <ctl name="LHPF3 Mode" value="High-pass" />
+    <ctl name="LHPF3 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF3 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2R Input 1" value="LHPF3" />
+    <ctl name="DSP2R Input 1 Volume" value="48" />
+    <ctl name="LHPF4 Input 1" value="None" />
+    <ctl name="LHPF4 Mode" value="High-pass" />
+    <ctl name="LHPF4 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF4 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2 Aux 2" value="LHPF4" />
+    <ctl name="DSP2 Aux 5" value="None" />
+    <ctl name="LHPF1 Input 1" value="ISRC1DEC1" />
+    <ctl name="LHPF2 Input 1" value="ISRC1DEC2" />
+    <ctl name="LHPF3 Input 1" value="ISRC1DEC3" />
+    <ctl name="DRC1R Input 1" value="None" />
+    <ctl name="DRC1L Input 1" value="None" />
+    <ctl name="DRC1" id="0" value="0x01" />
+    <ctl name="DRC1" id="1" value="0x78" />
+    <ctl name="DRC1" id="2" value="0x07" />
+    <ctl name="DRC1" id="3" value="0x30" />
+    <ctl name="DRC1" id="4" value="0x08" />
+    <ctl name="DRC1" id="5" value="0x20" />
+    <ctl name="DRC1" id="6" value="0x00" />
+    <ctl name="DRC1" id="7" value="0xc2" />
+    <ctl name="DRC1" id="8" value="0x01" />
+    <ctl name="DRC1" id="9" value="0x6d" />
+    <ctl name="HPOUT1L Input 2" value="None" />
+    <ctl name="HPOUT1R Input 2" value="None" />
+    <ctl name="HPOUT1 Demux" value="HPOUT" />
+    <ctl name="EQ1 Input 1" value="None" />
+    <ctl name="HPOUT1L Input 2 Volume" value="32" />
+    <ctl name="HPOUT1R Input 2 Volume" value="32" />
+    <ctl name="DSP3L Input 1" value="None" />
+    <ctl name="DSP3R Input 1" value="None" />
+    <ctl name="DSP3 Aux 5" value="None" />
+    <ctl name="DSP3 Aux 6" value="None" />
+    <ctl name="DRC2R Input 1" value="None" />
+    <ctl name="DRC2L Input 1" value="None" />
+    <ctl name="DRC2" id="0" value="0x01" />
+    <ctl name="DRC2" id="1" value="0x78" />
+    <ctl name="DRC2" id="2" value="0x09" />
+    <ctl name="DRC2" id="3" value="0x30" />
+    <ctl name="DRC2" id="4" value="0x08" />
+    <ctl name="DRC2" id="5" value="0x28" />
+    <ctl name="DRC2" id="6" value="0x00" />
+    <ctl name="DRC2" id="7" value="0x42" />
+    <ctl name="DRC2" id="8" value="0x01" />
+    <ctl name="DRC2" id="9" value="0xbf" />
+    <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+    <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+
+    <!-- AOV default settings -->
+    <!-- AOV default sample rate settings -->
+    <ctl name="Sample Rate 2" value="16kHz" />
+    <ctl name="Sample Rate 3" value="48kHz" />
+    <ctl name="In Rate" value="SYNCCLK rate 2" />
+    <ctl name="FX Rate" value="SYNCCLK rate 2" />
+    <ctl name="ISRC1 FSH" value="SYNCCLK rate 3" />
+    <ctl name="ISRC1 FSL" value="SYNCCLK rate 2" />
+    <ctl name="ISRC2 FSH" value="SYNCCLK rate 3" />
+    <ctl name="ISRC2 FSL" value="SYNCCLK rate 2" />
+    <!-- AOV default microphone 1 settings -->
+    <ctl name="LHPF1 Input 1" value="None" />
+    <ctl name="LHPF1 Mode" value="High-pass" />
+    <ctl name="LHPF1 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF1 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2L Input 1" value="LHPF1" />
+    <ctl name="DSP2L Input 1 Volume" value="48" />
+    <!-- AOV default microphone 2 settings -->
+    <ctl name="LHPF2 Input 1" value="None" />
+    <ctl name="LHPF2 Mode" value="High-pass" />
+    <ctl name="LHPF2 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF2 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2 Aux 1" value="LHPF2" />
+    <!-- AOV default headset microphone settings -->
+    <ctl name="DSP2 Aux 5" value="None" />
+    <!-- AOV default settings end -->
+
+    <ctl name="SPK AMP PCM Gain" value="0" />
+    <ctl name="SPK PCM Soft Ramp" value="4ms" />
+    <ctl name="SPK AMP Enable Switch" value="0" />
+    <ctl name="SPK PCM Source" value="ASP" />
+
+        <!-- DRC1 Parameters for Mono and Stereo input -->
+    <path name="drc1-mono">
+        <ctl name="DRC1" id="0" value="0x01" />
+        <ctl name="DRC1" id="1" value="0x2A" />
+        <ctl name="DRC1" id="2" value="0x0A" />
+        <ctl name="DRC1" id="3" value="0xE5" />
+        <ctl name="DRC1" id="4" value="0x75" />
+        <ctl name="DRC1" id="5" value="0x52" />
+        <ctl name="DRC1" id="6" value="0x01" />
+        <ctl name="DRC1" id="7" value="0x88" />
+        <ctl name="DRC1" id="8" value="0x02" />
+        <ctl name="DRC1" id="9" value="0x4A" />
+    </path>
+
+    <path name="drc1-stereo">
+        <ctl name="DRC1" id="0" value="0x01" />
+        <ctl name="DRC1" id="1" value="0x2B" />
+        <ctl name="DRC1" id="2" value="0x0A" />
+        <ctl name="DRC1" id="3" value="0xE5" />
+        <ctl name="DRC1" id="4" value="0x75" />
+        <ctl name="DRC1" id="5" value="0x52" />
+        <ctl name="DRC1" id="6" value="0x01" />
+        <ctl name="DRC1" id="7" value="0x88" />
+        <ctl name="DRC1" id="8" value="0x02" />
+        <ctl name="DRC1" id="9" value="0x4A" />
+    </path>
+
+  <!-- Common control configurations -->
+    <path name="route-playback">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX UAIF0 SPK" value="SIFS0" />
+    </path>
+
+    <path name="route-spkamp-playback">
+    </path>
+
+    <path name="route-incall-reference">
+        <ctl name="ABOX NSRC2" value="UAIF2" />
+        <ctl name="ABOX SIFM2" value="WDMA" />
+    </path>
+
+    <path name="route-incall-bt-sco-reference">
+        <ctl name="ABOX NSRC2" value="UAIF4" />
+        <ctl name="ABOX SIFM2" value="WDMA" />
+    </path>
+
+    <path name="route-feedback">
+        <ctl name="ABOX NSRC2" value="UAIF2" />
+        <ctl name="ABOX SIFM2" value="WDMA" />
+    </path>
+
+    <path name="route-bt-sco-playback">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX RECP PIFS0" value="1" />
+        <ctl name="ABOX RSRC0" value="SIFS0" />
+        <ctl name="ABOX RECP PIFS1" value="0" />
+        <ctl name="ABOX RSRC1" value="RESERVED" />
+        <ctl name="BT SCO SPK Enable" value="1" />
+    </path>
+
+    <path name="route-ap-record">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX NSRC0" value="UAIF0" />
+    </path>
+
+    <path name="route-cp-tx">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX NSRC1" value="UAIF0" />
+    </path>
+
+    <path name="route-ap-bt-sco-record">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX NSRC0" value="SIFS2" />
+    </path>
+
+    <path name="route-cp-bt-sco-tx">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX NSRC1" value="SIFS2" />
+    </path>
+
+    <path name="route-loop-record">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+    </path>
+
+    <path name="route-bt-sco-tx">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX SPUS OUT6" value="SIFS2" />
+        <ctl name="ABOX SIFS2" value="SPUS OUT6" />
+        <ctl name="BT SCO MIC Enable" value="1" />
+    </path>
+
+    <path name="route-ap-music-to-cp-tx">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX SPUS OUT7" value="SIFS1" />
+        <ctl name="ABOX SIFS1" value="SPUS OUT7" />
+        <ctl name="ABOX NSRC3" value="SIFS1" />
+        <ctl name="ABOX SIFM3" value="WDMA" />
+    </path>
+
+    <path name="route-codec-handset">
+        <!-- Cirrus Logic CS47L3 RCV path control -->
+        <ctl name="HPOUT1L Input 1" value="AIF1RX1" />
+        <ctl name="HPOUT1R Input 1" value="AIF1RX2" />
+        <ctl name="Noise Gate Switch" value="0" />
+        <ctl name="HPOUT1 Digital Volume" id="0" value="118" />
+        <ctl name="HPOUT1 Digital Volume" id="1" value="118" />
+        <ctl name="HPOUT1 Digital Switch" id="0" value="1" />
+        <ctl name="HPOUT1 Digital Switch" id="1" value="1" />
+        <ctl name="HPOUT1 Demux" value="EPOUT" />
+        <ctl name="HPOUT1 Mono Switch" value="1" />
+    </path>
+
+    <path name="route-codec-speaker">
+        <!-- Cirrus Logic CS47L3 Speaker path control -->
+        <ctl name="AIF2TX1 Input 1" value="AIF1RX1" />
+        <ctl name="AIF2TX2 Input 1" value="AIF1RX2" />
+    </path>
+
+    <path name="route-codec-headset">
+        <!-- Cirrus Logic CS47L3 HP path control -->
+        <ctl name="HPOUT1L Input 1" value="AIF1RX1" />
+        <ctl name="HPOUT1R Input 1" value="AIF1RX2" />
+        <ctl name="HPOUT1 Digital Volume" id="0" value="116" />
+        <ctl name="HPOUT1 Digital Volume" id="1" value="116" />
+        <ctl name="HPOUT1 Digital Switch" id="0" value="1" />
+        <ctl name="HPOUT1 Digital Switch" id="1" value="1" />
+        <ctl name="HPOUT1 Demux" value="HPOUT" />
+        <ctl name="HPOUT1 Mono Switch" value="0" />
+    </path>
+
+    <path name="route-codec-handset-feedback">
+        <!-- Cirrus Logic CS47L3 RCV path control -->
+        <ctl name="AIF3TX1 Input 1" value="AIF1RX1" />
+    </path>
+
+    <path name="route-codec-speaker-feedback">
+        <!-- Cirrus Logic CS47L3 RCV path control -->
+        <ctl name="AIF3TX1 Input 1" value="AIF1RX1" />
+    </path>
+
+    <path name="route-codec-headset-feedback">
+        <!-- Cirrus Logic CS47L3 RCV path control -->
+        <ctl name="AIF3TX1 Input 1" value="AIF1RX1" />
+    </path>
+
+    <path name="AOV">
+        <!-- Set ADC sample rate to 48kHz -->
+        <ctl name="In Rate" value="SYNCCLK rate 3" />
+        <!-- Microphone 1 settings -->
+        <ctl name="LHPF1 Input 1" value="ISRC1DEC1" />
+        <!-- Microphone 2 settings -->
+        <ctl name="LHPF2 Input 1" value="ISRC1DEC2" />
+        <!-- AOV default headset microphone settings -->
+        <ctl name="DSP2 Aux 5" value="ISRC2DEC1" />
+    </path>
+
+    <path name="route-codec-main-mic">
+        <!-- Cirrus Logic CS47L3 Main MIC path control -->
+        <ctl name="AIF1TX1 Input 1" value="IN1L" />
+    </path>
+
+    <path name="route-codec-main-mic-L">
+        <ctl name="AIF1TX1 Input 1" value="IN1L" />
+    </path>
+    <path name="route-codec-main-mic-R">
+        <ctl name="AIF1TX2 Input 1" value="IN1L" />
+    </path>
+    <path name="route-codec-sub-mic">
+        <!-- Cirrus Logic CS47L3 Sub MIC path control -->
+        <ctl name="AIF1TX1 Input 1" value="IN2L" />
+    </path>
+
+    <path name="route-codec-sub-mic-L">
+        <ctl name="AIF1TX1 Input 1" value="IN2L" />
+    </path>
+
+    <path name="route-codec-sub-mic-R">
+        <ctl name="AIF1TX2 Input 1" value="IN2L" />
+    </path>
+    <path name="route-codec-sub-mic-R-channel">
+        <!-- Cirrus Logic CS47L3 Sub MIC path control -->
+        <ctl name="AIF1TX2 Input 1" value="IN2L" />
+    </path>
+
+    <path name="route-codec-headset-mic">
+        <!-- Cirrus Logic CS47L3 HeadSet MIC path control -->
+        <ctl name="AIF1TX1 Input 1" value="IN1R" />
+    </path>
+
+    <path name="route-fm">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX ERAP info FM Radio On" value="1" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="1" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="40000" />
+        <ctl name="ABOX NSRC1" value="SPDY" />
+    </path>
+
+  <!-- BT SCO Sampling Rate Settings -->
+    <path name="set-bt-sco-rx-rate-nb">
+    </path>
+
+    <path name="set-bt-sco-tx-rate-nb">
+    </path>
+
+    <path name="set-bt-sco-rx-rate-wb">
+    </path>
+
+    <path name="set-bt-sco-tx-rate-wb">
+    </path>
+
+  <!-- Output mixer settings -->
+    <!-- Playback paths -->
+    <path name="media-handset">
+        <path name="route-playback" />
+        <path name="route-codec-handset" />
+    </path>
+
+    <path name="media-speaker0">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+    </path>
+
+    <path name="media-speaker1">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+    </path>
+
+    <path name="media-headset">
+        <path name="route-playback" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-headphone">
+        <path name="media-headset" />
+    </path>
+
+    <!-- Lineout path routing is similar to Headphone-->
+    <path name="media-lineout">
+        <path name="route-playback" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-speaker0-headset">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-speaker1-headset">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-speaker0-headphone">
+        <path name="media-speaker0-headset" />
+    </path>
+
+    <path name="media-speaker1-headphone">
+        <path name="media-speaker1-headset" />
+    </path>
+
+    <path name="media-speaker0-lineout">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-speaker1-lineout">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-bt-sco-playback" />
+    </path>
+
+    <path name="fm_radio-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-bt-sco-playback" />
+    </path>
+
+    <path name="media-speaker0-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-bt-sco-playback" />
+    </path>
+
+    <path name="media-speaker1-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-bt-sco-playback" />
+    </path>
+
+    <path name="media_ringtone-handset">
+        <path name="media-handset" />
+    </path>
+
+    <path name="media_ringtone-speaker0">
+        <path name="media-speaker0" />
+    </path>
+
+    <path name="media_ringtone-speaker1">
+        <path name="media-speaker1" />
+    </path>
+
+    <path name="media_ringtone-headset">
+        <path name="media-headset" />
+    </path>
+
+    <path name="media_ringtone-headphone">
+        <path name="media-headphone" />
+    </path>
+
+    <path name="media_ringtone-lineout">
+        <path name="media-lineout" />
+    </path>
+
+    <path name="media_ringtone-speaker0-headset">
+        <path name="media-speaker0-headset" />
+    </path>
+
+    <path name="media_ringtone-speaker1-headset">
+        <path name="media-speaker1-headset" />
+    </path>
+
+    <path name="media_ringtone-speaker0-headphone">
+        <path name="media-speaker0-headphone" />
+    </path>
+
+    <path name="media_ringtone-speaker1-headphone">
+        <path name="media-speaker1-headphone" />
+    </path>
+
+    <path name="media_ringtone-bt-sco-headset">
+        <path name="media-bt-sco-headset" />
+    </path>
+
+    <path name="media_ringtone-speaker0-bt-sco-headset">
+        <path name="media-speaker0-bt-sco-headset" />
+    </path>
+
+    <path name="media_ringtone-speaker1-bt-sco-headset">
+        <path name="media-speaker1-bt-sco-headset" />
+    </path>
+
+    <path name="media_ringtone-speaker0-lineout">
+        <path name="media-speaker0-lineout" />
+    </path>
+
+    <path name="media_ringtone-speaker1-lineout">
+        <path name="media-speaker1-lineout" />
+    </path>
+
+    <path name="media_notification-handset">
+        <path name="media-handset" />
+    </path>
+
+    <path name="media_notification-speaker0">
+        <path name="media-speaker0" />
+    </path>
+
+    <path name="media_notification-speaker1">
+        <path name="media-speaker1" />
+    </path>
+
+    <path name="media_notification-headset">
+        <path name="media-headset" />
+    </path>
+
+    <path name="media_notification-headphone">
+        <path name="media-headphone" />
+    </path>
+
+    <path name="media_notification-lineout">
+        <path name="media-lineout" />
+    </path>
+
+    <path name="media_notification-speaker0-headset">
+        <path name="media-speaker0-headset" />
+    </path>
+
+    <path name="media_notification-speaker1-headset">
+        <path name="media-speaker1-headset" />
+    </path>
+
+    <path name="media_notification-speaker0-headphone">
+        <path name="media-speaker0-headphone" />
+    </path>
+
+    <path name="media_notification-speaker1-headphone">
+        <path name="media-speaker1-headphone" />
+    </path>
+
+    <path name="media_notification-bt-sco-headset">
+        <path name="media-bt-sco-headset" />
+    </path>
+
+    <path name="media_notification-speaker0-bt-sco-headset">
+        <path name="media-speaker0-bt-sco-headset" />
+    </path>
+
+    <path name="media_notification-speaker1-bt-sco-headset">
+        <path name="media-speaker1-bt-sco-headset" />
+    </path>
+
+    <path name="media_notification-speaker0-lineout">
+        <path name="media-speaker0-lineout" />
+    </path>
+
+    <path name="media_notification-speaker1-lineout">
+        <path name="media-speaker1-lineout" />
+    </path>
+
+    <!-- VoiceCall paths -->
+    <path name="incall_nb-handset">
+        <path name="route-playback" />
+        <path name="route-codec-handset" />
+        <path name="route-codec-handset-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="VOICE" />
+    </path>
+
+    <path name="incall_nb_hac-handset">
+        <path name="incall_nb-handset" />
+    </path>
+
+    <path name="incall_nb-speaker0">
+        <path name="route-playback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="SPEAKER" />
+    </path>
+
+    <path name="incall_nb-speaker1">
+        <path name="route-playback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="SPEAKER" />
+    </path>
+
+    <path name="incall_nb_hac-speaker0">
+        <path name="incall_nb-speaker0" />
+    </path>
+
+    <path name="incall_nb_hac-speaker1">
+        <path name="incall_nb-speaker1" />
+    </path>
+
+    <path name="incall_nb-headset">
+        <path name="route-playback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="HEADSET" />
+    </path>
+
+    <path name="incall_nb_hac-headset">
+        <path name="incall_nb-headset" />
+    </path>
+
+    <path name="incall_nb-headphone">
+        <path name="incall_nb-headset" />
+    </path>
+
+    <path name="incall_nb_hac-headphone">
+        <path name="incall_nb-headset" />
+    </path>
+
+    <path name="incall_nb-lineout">
+        <path name="route-playback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="LINEOUT" />
+    </path>
+
+    <path name="incall_nb_hac-lineout">
+        <path name="incall_nb-lineout" />
+    </path>
+
+    <path name="incall_nb-bt-sco-headset">
+        <path name="route-playback" />
+        <path name="route-bt-sco-playback" />
+        <path name="route-incall-bt-sco-reference" />
+        <ctl name="ABOX Sound Type" value="BTVOICE" />
+    </path>
+
+    <path name="incall_nb_hac-bt-sco-headset">
+        <path name="incall_nb-bt-sco-headset" />
+    </path>
+
+    <path name="incall_wb-handset">
+        <path name="incall_nb-handset" />
+    </path>
+
+    <path name="incall_wb_hac-handset">
+        <path name="incall_wb-handset" />
+    </path>
+
+    <path name="incall_wb-speaker0">
+        <path name="incall_nb-speaker0" />
+    </path>
+
+    <path name="incall_wb-speaker1">
+        <path name="incall_nb-speaker1" />
+    </path>
+
+    <path name="incall_wb_hac-speaker0">
+        <path name="incall_wb-speaker0" />
+    </path>
+
+    <path name="incall_wb_hac-speaker1">
+        <path name="incall_wb-speaker1" />
+    </path>
+
+    <path name="incall_wb-headset">
+        <path name="incall_nb-headset" />
+    </path>
+
+    <path name="incall_wb_hac-headset">
+        <path name="incall_wb-headset" />
+    </path>
+
+    <path name="incall_wb-headphone">
+        <path name="incall_wb-headset" />
+    </path>
+
+    <path name="incall_wb_hac-headphone">
+        <path name="incall_wb-headset" />
+    </path>
+
+    <path name="incall_wb-lineout">
+        <path name="incall_nb-lineout" />
+    </path>
+
+    <path name="incall_wb_hac-lineout">
+        <path name="incall_nb-lineout" />
+    </path>
+
+    <path name="incall_wb-bt-sco-headset">
+        <path name="incall_nb-bt-sco-headset" />
+    </path>
+
+    <path name="incall_wb_hac-bt-sco-headset">
+        <path name="incall_wb-bt-sco-headset" />
+    </path>
+
+    <!-- Incall Music path -->
+    <path name="incall_music-handset">
+        <path name="incall_nb-handset" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music_hac-handset">
+        <path name="incall_music-handset" />
+    </path>
+
+    <path name="incall_music-speaker0">
+        <path name="incall_nb-speaker0" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music-speaker1">
+        <path name="incall_nb-speaker1" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music_hac-speaker0">
+        <path name="incall_music-speaker0" />
+    </path>
+
+    <path name="incall_music_hac-speaker1">
+        <path name="incall_music-speaker1" />
+    </path>
+
+    <path name="incall_music-headset">
+        <path name="incall_nb-headset" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music_hac-headset">
+        <path name="incall_music-headset" />
+    </path>
+    <path name="incall_music-headphone">
+        <path name="incall_music-headset" />
+    </path>
+
+    <path name="incall_music_hac-headphone">
+        <path name="incall_music-headset" />
+    </path>
+
+    <path name="incall_music-lineout">
+        <path name="incall_nb-lineout" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music_hac-lineout">
+        <path name="incall_music-lineout" />
+    </path>
+
+    <path name="incall_music-bt-sco-headset">
+        <path name="incall_nb-bt-sco-headset" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music_hac-bt-sco-headset">
+        <path name="incall_music-bt-sco-headset" />
+    </path>
+
+    <!-- Communication Playback paths -->
+    <path name="communication-handset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-handset" />
+        <path name="route-codec-handset-feedback" />
+        <ctl name="ABOX Speech Param" value="8" />
+    </path>
+
+    <path name="communication-speaker0">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="communication-speaker1">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="communication-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="communication-headphone">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="10" />
+    </path>
+
+    <path name="communication-lineout">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="12" />
+    </path>
+
+    <path name="communication-speaker0-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="communication-speaker1-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="communication-speaker0-headphone">
+        <path name="communication-speaker0-headset" />
+    </path>
+
+    <path name="communication-speaker1-headphone">
+        <path name="communication-speaker1-headset" />
+    </path>
+
+    <path name="communication-speaker0-lineout">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="communication-speaker1-lineout">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="communication-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-bt-sco-playback" />
+       <ctl name="ABOX Speech Param" value="6" />
+    </path>
+
+    <!-- voip Playback paths -->
+    <path name="voip-handset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-handset" />
+        <path name="route-codec-handset-feedback" />
+        <ctl name="ABOX Speech Param" value="8" />
+    </path>
+
+    <path name="voip-speaker0">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="voip-speaker1">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="voip-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="voip-headphone">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="10" />
+    </path>
+
+    <path name="voip-lineout">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="12" />
+    </path>
+
+    <path name="voip-speaker0-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="voip-speaker1-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="voip-speaker0-headphone">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="10" />
+    </path>
+
+    <path name="voip-speaker1-headphone">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="10" />
+    </path>
+
+    <path name="voip-speaker0-lineout">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="voip-speaker1-lineout">
+        <path name="voip-speaker0-lineout" />
+    </path>
+    <path name="voip-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-bt-sco-playback" />
+       <ctl name="ABOX Speech Param" value="6" />
+    </path>
+
+    <!-- FM Radio Playback paths -->
+    <path name="fm_radio-speaker0">
+        <path name="media-speaker0" />
+    </path>
+
+    <path name="fm_radio-speaker1">
+        <path name="media-speaker1" />
+    </path>
+
+    <path name="fm_radio-headphone">
+        <path name="media-headphone" />
+    </path>
+
+    <path name="fm_radio-headset">
+        <path name="media-headset" />
+    </path>
+
+    <path name="fm_radio-lineout">
+        <path name="media-lineout" />
+    </path>
+
+  <!-- Input mixer settings -->
+    <!-- Capture paths -->
+    <path name="media-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-L" />
+    </path>
+
+    <path name="media-headset-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-headset-mic" />
+    </path>
+
+    <path name="recording-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="AIF1TX1 Input 1" value="IN1L" />
+        <ctl name="AIF1TX2 Input 1" value="IN2L" />
+    </path>
+
+    <path name="recording-mic1">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+       <ctl name="AIF1TX1 Input 1" value="IN1L" />
+    </path>
+
+    <path name="recording-mic2">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="AIF1TX1 Input 1" value="IN2L" />
+    </path>
+
+    <path name="media-2nd-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="recording-2nd-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="AIF1TX1 Input 1" value="IN2L" />
+    </path>
+
+    <path name="camcorder-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="ISRC2DEC1 Input 1" value="IN1L" />
+        <ctl name="DRC1L Input 1" value="ISRC2DEC1" />
+        <ctl name="ISRC2INT1 Input 1" value="DRC1L" />
+        <path name="drc1-mono" />
+        <ctl name="AIF1TX1 Input 1" value="ISRC2INT1" />
+    </path>
+
+    <path name="camcorder-2nd-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="ISRC2DEC1 Input 1" value="IN2L" />
+        <ctl name="DRC1L Input 1" value="ISRC2DEC1" />
+        <ctl name="ISRC2INT1 Input 1" value="DRC1L" />
+        <path name="drc1-mono" />
+        <ctl name="AIF1TX1 Input 1" value="ISRC2INT1" />
+    </path>
+
+    <path name="camcorder-dualmic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="AIF1TX1 Input 1" value="IN2L" />
+        <ctl name="AIF1TX2 Input 1" value="IN1L" />
+    </path>
+
+    <path name="recording-headset-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="AIF1TX1 Input 1" value="IN1R" />
+        <ctl name="AIF1TX2 Input 1" value="IN1R" />
+    </path>
+
+    <path name="media-bt-sco-mic">
+        <path name="route-bt-sco-tx" />
+        <path name="route-ap-bt-sco-record" />
+    </path>
+
+    <path name="recording-bt-sco-headset-in">
+        <path name="media-bt-sco-mic" />
+    </path>
+
+    <!-- Recognition Input paths -->
+    <path name="recognition-mic">
+        <path name="media-mic" />
+    </path>
+
+    <path name="recognition-2nd-mic">
+        <path name="media-2nd-mic" />
+    </path>
+
+    <path name="recognition-headset-mic">
+        <path name="recording-headset-mic" />
+    </path>
+
+    <path name="recognition-headphone-mic">
+        <path name="recognition-mic" />
+    </path>
+
+    <path name="recognition-lineout-mic">
+        <path name="recognition-mic" />
+    </path>
+
+    <path name="recognition-bt-sco-headset-in">
+        <path name="media-bt-sco-mic" />
+    </path>
+
+    <!-- VoiceCall paths -->
+    <path name="incall_nb-handset-mic">
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="route-codec-main-mic-L" />
+        <path name="route-codec-sub-mic-R" />
+    </path>
+
+    <path name="incall_nb_hac-handset-mic">
+        <path name="incall_nb-handset-mic" />
+    </path>
+
+    <path name="incall_nb-speaker0-mic">
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="incall_nb-speaker1-mic">
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="incall_nb-headphone-mic">
+        <path name="incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="incall_nb_hac-headphone-mic">
+        <path name="incall_nb_hac-speaker0-mic" />
+    </path>
+
+    <path name="incall_nb-lineout-mic">
+        <path name="incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="incall_nb_hac-lineout-mic">
+        <path name="incall_nb_hac-speaker0-mic" />
+    </path>
+
+    <path name="incall_nb_hac-speaker0-mic">
+        <path name="incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="incall_nb_hac-speaker1-mic">
+        <path name="incall_nb-speaker1-mic" />
+    </path>
+
+    <path name="incall_nb-headset-mic">
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="route-codec-headset-mic" />
+    </path>
+
+    <path name="incall_nb_hac-headset-mic">
+        <path name="incall_nb-headset-mic" />
+    </path>
+
+    <path name="incall_nb-bt-sco-headset-in">
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+        <path name="route-bt-sco-tx" />
+        <path name="route-cp-bt-sco-tx" />
+    </path>
+
+    <path name="incall_nb_hac-bt-sco-headset-in">
+        <path name="incall_nb-bt-sco-headset-in" />
+    </path>
+
+    <!-- Incall Music Mic path -->
+    <path name="route-incall-music-uplink">
+        <!-- CP Rx to AP Tx routing-->
+        <path name="route-ap-music-to-cp-tx" />
+    </path>
+
+    <path name="incall_music-handset-mic">
+        <path name="incall_nb-handset-mic" />
+        <path name="route-incall-music-uplink" />
+    </path>
+
+    <path name="incall_music_hac-handset-mic">
+        <path name="incall_music-handset-mic" />
+    </path>
+
+    <path name="incall_music-headphone-mic">
+        <path name="incall_music-handset-mic" />
+    </path>
+
+    <path name="incall_music_hac-headphone-mic">
+        <path name="incall_music-handset-mic" />
+    </path>
+
+    <path name="incall_music-lineout-mic">
+        <path name="incall_music-handset-mic" />
+    </path>
+
+    <path name="incall_music_hac-lineout-mic">
+        <path name="incall_music-handset-mic" />
+    </path>
+
+    <path name="incall_music-speaker0-mic">
+        <path name="incall_nb-speaker0-mic" />
+        <path name="route-incall-music-uplink" />
+    </path>
+
+    <path name="incall_music-speaker1-mic">
+        <path name="incall_nb-speaker1-mic" />
+        <path name="route-incall-music-uplink" />
+    </path>
+
+    <path name="incall_music_hac-speaker0-mic">
+        <path name="incall_music-speaker0-mic" />
+    </path>
+
+    <path name="incall_music_hac-speaker1-mic">
+        <path name="incall_music-speaker1-mic" />
+    </path>
+
+    <path name="incall_music-headset-mic">
+        <path name="incall_nb-headset-mic" />
+        <path name="route-incall-music-uplink" />
+    </path>
+
+    <path name="incall_music_hac-headset-mic">
+        <path name="incall_music-headset-mic" />
+    </path>
+
+    <path name="incall_music-bt-sco-headset-in">
+        <path name="incall_nb-bt-sco-headset-in" />
+        <path name="route-incall-music-uplink" />
+    </path>
+
+    <path name="incall_music_hac-bt-sco-headset-in">
+        <path name="incall_music-bt-sco-headset-in" />
+    </path>
+
+    <!-- Communication Capture paths -->
+
+    <path name="communication-handset-mic">
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="8" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="8" />
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-L" />
+        <path name="route-codec-sub-mic-R" />
+    </path>
+
+    <path name="communication-headphone-mic">
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="10" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="10" />
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="communication-lineout-mic">
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="12" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="12" />
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="communication-2nd-mic">
+        <path name="media-2nd-mic" />
+    </path>
+
+    <path name="communication-headset-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-headset-mic" />
+              <ctl name="ABOX OEM AP Call BW" value="0x010101" />
+              <ctl name="ABOX OEM AP Call type" value="11" />
+              <ctl name="ABOX OEM NXP Mode" value="1" />
+              <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="communication-speaker0-mic">
+        <ctl name="ABOX OEM AP Call BW" value="0x020201" />
+        <ctl name="ABOX OEM AP Call type" value="9" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="9" />
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="communication-speaker1-mic">
+        <ctl name="ABOX OEM AP Call BW" value="0x020201" />
+        <ctl name="ABOX OEM AP Call type" value="9" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="9" />
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="communication-bt-sco-headset-in">
+        <path name="route-bt-sco-tx" />
+        <path name="route-ap-bt-sco-record" />
+        <ctl name="ABOX OEM AP Call BW" value="0x030101" />
+        <ctl name="ABOX OEM AP Call type" value="6" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="6" />
+    </path>
+
+    <!-- voip Capture paths -->
+    <path name="voip-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-L" />
+        <path name="route-codec-sub-mic-R" />
+    </path>
+
+    <path name="voip-handset-mic">
+        <path name="voip-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="8" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="8" />
+    </path>
+
+    <path name="voip-headphone-mic">
+        <path name="voip-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="10" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="10" />
+    </path>
+
+    <path name="voip-lineout-mic">
+        <path name="voip-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="12" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="12" />
+    </path>
+    <path name="voip-2nd-mic">
+        <path name="media-2nd-mic" />
+    </path>
+
+    <path name="voip-headset-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-headset-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x010101" />
+        <ctl name="ABOX OEM AP Call type" value="11" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="voip-speaker0-mic">
+        <path name="voip-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x020201" />
+        <ctl name="ABOX OEM AP Call type" value="9" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="voip-speaker1-mic">
+        <path name="voip-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x020201" />
+        <ctl name="ABOX OEM AP Call type" value="9" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="voip-bt-sco-headset-in">
+        <path name="route-bt-sco-tx" />
+        <path name="route-ap-bt-sco-record" />
+        <ctl name="ABOX OEM AP Call BW" value="0x030101" />
+        <ctl name="ABOX OEM AP Call type" value="6" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="6" />
+    </path>
+    <!-- FM Radio Capture paths -->
+    <path name="fm_radio-fm-tuner">
+        <path name="route-fm" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-L" />
+    </path>
+
+    <path name="recording-fm-tuner">
+        <path name="route-fm" />
+        <!-- headset Mic path -->
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-L" />
+    </path>
+
+    <!-- TTY mode paths -->
+    <path name="tty_mode-headset">
+        <!-- TTY mode VCO & FULL mode Playback paths -->
+        <path name="route-playback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="HEADSET" />
+    </path>
+
+    <path name="tty_mode-handset">
+        <!-- TTY mode HCO mode Playback paths -->
+        <path name="route-playback" />
+        <path name="route-codec-handset" />
+        <path name="route-codec-handset-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="VOICE" />
+    </path>
+
+    <path name="tty_mode-speaker0">
+        <path name="incall_nb-speaker0" />
+    </path>
+
+    <path name="tty_mode-speaker1">
+        <path name="incall_nb-speaker1" />
+    </path>
+
+    <path name="tty_mode-full-mic">
+        <!-- TTY mode FULL mode MIC -->
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="AOV" />
+        <path name="route-codec-headset-mic" />
+    </path>
+
+    <path name="tty_mode-handset-mic">
+        <!-- TTY mode HCO MIC paths -->
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="AOV" />
+        <path name="route-codec-headset-mic" />
+    </path>
+
+    <path name="tty_mode-hco-mic">
+        <path name="tty_mode-handset-mic" />
+    </path>
+
+    <path name="tty_mode-vco-mic">
+        <!-- TTY mode VCO MIC paths -->
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="AOV" />
+        <path name="route-codec-main-mic-L" />
+    </path>
+
+  <!-- media gain controls for each path -->
+    <!-- Play paths gain controls -->
+    <path name="gain-media-handset">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-media-speaker0">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_indmusic_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media-speaker1">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_indmusic_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media-headset">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="104 104" />
+    </path>
+
+    <path name="gain-media-headset-fm">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="113 113" />
+    </path>
+
+    <path name="gain-media-speaker0-headset">
+        <path name="gain-media-speaker0" />
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media-speaker1-headset">
+        <path name="gain-media-speaker1" />
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media-bt-sco-headset">
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media-headphone">
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media-lineout">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="124 124" />
+    </path>
+
+    <path name="gain-media-speaker0-headphone">
+        <path name="gain-media-headset" />
+        <path name="gain-media-speaker0" />
+    </path>
+
+    <path name="gain-media-speaker1-headphone">
+        <path name="gain-media-headset" />
+        <path name="gain-media-speaker1" />
+    </path>
+
+    <path name="gain-media-speaker0-lineout">
+        <path name="gain-media-lineout" />
+        <path name="gain-media-speaker0" />
+    </path>
+
+    <path name="gain-media-speaker1-lineout">
+        <path name="gain-media-lineout" />
+        <path name="gain-media-speaker1" />
+    </path>
+
+    <path name="gain-media-speaker0-bt-sco-headset">
+        <path name="gain-media-speaker0" />
+    </path>
+
+    <path name="gain-media-speaker1-bt-sco-headset">
+        <path name="gain-media-speaker1" />
+    </path>
+
+    <path name="gain-media_ringtone-handset">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker0">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_ringtone_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker1">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_ringtone_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media_ringtone-headset">
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker0-headset">
+        <path name="gain-media_ringtone-headset" />
+        <path name="gain-media_ringtone-speaker0" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker1-headset">
+        <path name="gain-media_ringtone-headset" />
+        <path name="gain-media_ringtone-speaker1" />
+    </path>
+
+    <path name="gain-media_ringtone-bt-sco-headset">
+    </path>
+
+    <path name="gain-media_ringtone-headphone">
+        <path name="gain-media_ringtone-headset" />
+    </path>
+
+    <path name="gain-media_ringtone-lineout">
+        <path name="gain-media-lineout" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker0-headphone">
+        <path name="gain-media_ringtone-headset" />
+        <path name="gain-media_ringtone-speaker0" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker1-headphone">
+        <path name="gain-media_ringtone-headset" />
+        <path name="gain-media_ringtone-speaker1" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker0-bt-sco-headset">
+        <path name="gain-media_ringtone-speaker0" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker1-bt-sco-headset">
+        <path name="gain-media_ringtone-speaker1" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker0-lineout">
+        <path name="gain-media_ringtone-lineout" />
+        <path name="gain-media_ringtone-speaker0" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker1-lineout">
+        <path name="gain-media_ringtone-lineout" />
+        <path name="gain-media_ringtone-speaker1" />
+    </path>
+
+    <path name="gain-media_notification-handset">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-media_notification-speaker0">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_notification_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media_notification-speaker1">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_notification_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media_notification-headset">
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media_notification-speaker0-headset">
+        <path name="gain-media_notification-headset" />
+        <path name="gain-media_notification-speaker0" />
+    </path>
+
+    <path name="gain-media_notification-speaker1-headset">
+        <path name="gain-media_notification-headset" />
+        <path name="gain-media_notification-speaker1" />
+    </path>
+
+    <path name="gain-media_notification-bt-sco-headset">
+        <path name="gain-media_notification-headset" />
+    </path>
+
+    <path name="gain-media_notification-headphone">
+        <path name="gain-media_notification-headset" />
+    </path>
+
+    <path name="gain-media_notification-lineout">
+        <path name="gain-media-lineout" />
+    </path>
+
+    <path name="gain-media_notification-speaker0-headphone">
+        <path name="gain-media_notification-headset" />
+        <path name="gain-media_notification-speaker0" />
+    </path>
+
+    <path name="gain-media_notification-speaker1-headphone">
+        <path name="gain-media_notification-speaker1" />
+    </path>
+
+    <path name="gain-media_notification-speaker0-bt-sco-headset">
+        <path name="gain-media_notification-speaker0" />
+    </path>
+
+    <path name="gain-media_notification-speaker1-bt-sco-headset">
+        <path name="gain-media_notification-speaker1" />
+    </path>
+
+    <path name="gain-media_notification-speaker0-lineout">
+        <path name="gain-media_notification-lineout" />
+        <path name="gain-media_notification-speaker0" />
+    </path>
+
+    <path name="gain-media_notification-speaker1-lineout">
+        <path name="gain-media_notification-lineout" />
+        <path name="gain-media_notification-speaker1" />
+    </path>
+
+    <!-- Capture paths gain controls -->
+    <path name="gain-media-main-mic">
+        <ctl name="IN1L Volume" value="31" />
+        <ctl name="IN1R Volume" value="31" />
+        <ctl name="IN2L Volume" value="31" />
+        <ctl name="IN2R Volume" value="31" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-media-sub-mic">
+        <ctl name="IN1L Volume" value="31" />
+        <ctl name="IN1R Volume" value="31" />
+        <ctl name="IN2L Volume" value="31" />
+        <ctl name="IN2R Volume" value="31" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-media-headset-mic">
+        <ctl name="IN1L Volume" value="31" />
+        <ctl name="IN1R Volume" value="31" />
+        <ctl name="IN2L Volume" value="31" />
+        <ctl name="IN2R Volume" value="31" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-recording-mic">
+        <ctl name="IN1L Volume" value="31"/>
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN2L Volume" value="31"/>
+        <ctl name="IN2L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-recording-mic1">
+        <ctl name="IN1L Volume" value="31"/>
+        <ctl name="IN1L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-recording-mic2">
+        <ctl name="IN2L Volume" value="31"/>
+        <ctl name="IN2L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-recording-2nd-mic">
+        <ctl name="IN2L Volume" value="31"/>
+        <ctl name="IN2L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-camcorder-mic">
+        <ctl name="IN1L Volume" value="12"/>
+        <ctl name="IN1L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-camcorder-2nd-mic">
+        <ctl name="IN2L Volume" value="12"/>
+        <ctl name="IN2L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-media-bt-sco-mic">
+    </path>
+
+    <path name="gain-media-headphone-mic">
+       <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-media-lineout-mic">
+       <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-recording-headset-mic">
+        <ctl name="IN1R Volume" value="31"/>
+        <ctl name="IN1R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-recording-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-camcorder-dualmic">
+        <ctl name="IN1L Volume" value="9" />
+        <ctl name="IN2L Volume" value="9" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+    </path>
+
+    <!-- recognition input volume -->
+    <path name="gain-recognition-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-recognition-2nd-mic">
+        <path name="gain-media-sub-mic" />
+    </path>
+
+    <path name="gain-recognition-headset-mic">
+        <path name="gain-media-headset-mic" />
+    </path>
+
+    <path name="gain-recognition-headphone-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-recognition-lineout-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-recognition-bt-sco-headset-in">
+    </path>
+
+    <!-- Communication gain controls for each path -->
+    <!-- Play paths gain controls -->
+    <path name="gain-communication-handset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-communication-speaker0">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-speaker1">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-headset">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+    <path name="gain-communication-headphone">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-communication-lineout">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+    </path>
+
+    <path name="gain-communication-speaker0-headset">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-speaker1-headset">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-speaker0-lineout">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-speaker1-lineout">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-bt-sco-headset">
+    </path>
+
+    <!-- Capture paths gain controls -->
+
+
+    <path name="gain-communication-headset-mic">
+        <ctl name="IN1L Volume" value="21" />
+        <ctl name="IN1R Volume" value="21" />
+        <ctl name="IN2L Volume" value="21" />
+        <ctl name="IN2R Volume" value="21" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+    <path name="gain-communication-headphone-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+
+    <path name="gain-communication-lineout-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-communication-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-communication-handset-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="134" />
+        <ctl name="IN2R Digital Volume" value="134" />
+    </path>
+
+    <path name="gain-communication-speaker0-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-communication-speaker1-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <!-- voip gain controls for each path -->
+    <!-- Play paths gain controls -->
+    <path name="gain-voip-handset">
+        <path name="gain-media-handset" />
+    </path>
+
+    <path name="gain-voip-speaker0">
+        <path name="gain-media-speaker0" />
+    </path>
+
+    <path name="gain-voip-speaker1">
+        <path name="gain-media-speaker1" />
+    </path>
+
+    <path name="gain-voip-headset">
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-voip-speaker0-headset">
+        <path name="gain-media-speaker0" />
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-voip-speaker1-headset">
+        <path name="gain-media-speaker1" />
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-voip-bt-sco-headset">
+    </path>
+
+    <!-- Capture paths gain controls -->
+    <path name="gain-voip-main-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-voip-sub-mic">
+        <path name="gain-media-sub-mic" />
+    </path>
+
+    <path name="gain-voip-headset-mic">
+        <path name="gain-media-headset-mic" />
+    </path>
+
+    <path name="gain-voip-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-voip-handset-mic">
+        <ctl name="IN1L Volume" value="32" />
+        <ctl name="IN1R Volume" value="32" />
+        <ctl name="IN2L Volume" value="32" />
+        <ctl name="IN2R Volume" value="32" />
+        <ctl name="IN1L Digital Volume" value="124" />
+        <ctl name="IN1R Digital Volume" value="124" />
+        <ctl name="IN2L Digital Volume" value="124" />
+        <ctl name="IN2R Digital Volume" value="124" />
+    </path>
+
+    <path name="gain-voip-speaker0-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-voip-speaker1-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+  <!-- Voice Call gain controls for each path -->
+    <!-- Play paths gain controls -->
+    <path name="gain-incall_nb-handset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="136 136" />
+    </path>
+
+    <path name="gain-incall_nb_hac-handset">
+        <!-- Rx paths gain controls -->
+        <path name="gain-incall_nb-handset" />
+    </path>
+
+    <path name="gain-incall_music-handset">
+        <!-- Rx paths gain controls -->
+        <path name="gain-incall_nb-handset" />
+    </path>
+
+    <path name="gain-incall_nb-handset-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-incall_nb_hac-handset-mic">
+        <path name="gain-incall_nb-handset-mic" />
+    </path>
+
+    <path name="gain-incall_music-handset-mic">
+    </path>
+
+    <path name="gain-incall_nb-headset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-incall_nb_hac-headset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+    </path>
+
+    <path name="gain-incall_nb-headset-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="140" />
+        <ctl name="IN1R Digital Volume" value="140" />
+        <ctl name="IN2L Digital Volume" value="140" />
+        <ctl name="IN2R Digital Volume" value="140" />
+    </path>
+
+    <path name="gain-incall_nb_hac-headset-mic">
+        <path name="gain-incall_nb-headset-mic" />
+    </path>
+
+    <path name="gain-incall_nb-headphone">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-incall_nb_hac-headphone">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+    </path>
+
+    <path name="gain-incall_nb-lineout">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+    </path>
+
+    <path name="gain-incall_nb_hac-lineout">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+    </path>
+
+    <path name="gain-incall_nb-headphone-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-incall_nb_hac-headphone-mic">
+        <path name="gain-incall_nb-headphone-mic" />
+    </path>
+
+    <path name="gain-incall_nb-lineout-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-incall_nb_hac-lineout-mic">
+        <path name="gain-incall_nb-lineout-mic" />
+    </path>
+
+    <path name="gain-incall_nb-bt-sco-headset">
+    </path>
+
+    <path name="gain-incall_nb_hac-bt-sco-headset">
+    </path>
+
+    <path name="gain-incall_nb-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-incall_nb_hac-bt-sco-headset-in">
+    </path>
+
+
+    <path name="gain-incall_nb-speaker0">
+        <!-- Tx paths gain controls -->
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+        <!-- Rx paths gain controls -->
+    </path>
+
+    <path name="gain-incall_nb-speaker1">
+        <!-- Rx paths gain controls -->
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-incall_nb_hac-speaker0">
+        <path name="gain-incall_nb-speaker0" />
+    </path>
+
+    <path name="gain-incall_nb_hac-speaker1">
+        <path name="gain-incall_nb-speaker1" />
+    </path>
+
+    <path name="gain-incall_nb-speaker0-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-incall_nb-speaker1-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-incall_nb_hac-speaker0-mic">
+        <path name="gain-incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="gain-incall_nb_hac-speaker1-mic">
+        <path name="gain-incall_nb-speaker1-mic" />
+    </path>
+
+    <path name="gain-incall_wb-handset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="124 124" />
+    </path>
+
+    <path name="gain-incall_wb_hac-handset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="124 124" />
+    </path>
+
+    <path name="gain-incall_wb-handset-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-incall_wb_hac-handset-mic">
+        <path name="gain-incall_wb-handset-mic" />
+    </path>
+
+    <path name="gain-incall_wb-headset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb_hac-headset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb-headset-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-incall_wb_hac-headset-mic">
+        <path name="gain-incall_wb-headset-mic" />
+    </path>
+
+    <path name="gain-incall_wb-headphone">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb_hac-headphone">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb-lineout">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb_hac-lineout">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb-headphone-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-incall_wb_hac-headphone-mic">
+        <path name="gain-incall_wb-headphone-mic" />
+    </path>
+
+    <path name="gain-incall_wb-lineout-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-incall_wb_hac-lineout-mic">
+        <path name="gain-incall_wb-lineout-mic" />
+    </path>
+
+    <path name="gain-incall_wb-bt-sco-headset">
+    </path>
+
+    <path name="gain-incall_wb_hac-bt-sco-headset">
+    </path>
+
+    <path name="gain-incall_wb-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-incall_wb_hac-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-incall_wb-speaker0">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+        <!-- Rx paths gain controls -->
+    </path>
+
+    <path name="gain-incall_wb-speaker1">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="31" />
+        <ctl name="IN1R Volume" value="31" />
+        <ctl name="IN2L Volume" value="31" />
+        <ctl name="IN2R Volume" value="31" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+        <!-- Rx paths gain controls -->
+    </path>
+
+    <path name="gain-incall_wb_hac-speaker0">
+        <path name="gain-incall_wb-speaker0" />
+    </path>
+
+    <path name="gain-incall_wb_hac-speaker1">
+        <path name="gain-incall_wb-speaker1" />
+    </path>
+
+    <path name="gain-incall_wb-speaker0-mic">
+        <path name="gain-incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="gain-incall_wb-speaker1-mic">
+        <path name="gain-incall_nb-speaker1-mic" />
+    </path>
+
+    <path name="gain-incall_wb_hac-speaker0-mic">
+        <path name="gain-incall_nb_hac-speaker0-mic" />
+    </path>
+
+    <path name="gain-incall_wb_hac-speaker1-mic">
+        <path name="gain-incall_nb_hac-speaker1-mic" />
+    </path>
+
+    <!-- tty paths gain controls -->
+    <path name="gain-tty_mode-headset">
+        <!-- TTY mode VCO & FULL mode Playback paths -->
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="25" />
+        <ctl name="IN1R Volume" value="25" />
+        <ctl name="IN2L Volume" value="25" />
+        <ctl name="IN2R Volume" value="25" />
+        <ctl name="IN1L Digital Volume" value="104" />
+        <ctl name="IN1R Digital Volume" value="104" />
+        <ctl name="IN2L Digital Volume" value="104" />
+        <ctl name="IN2R Digital Volume" value="104" />
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="25" />
+        <ctl name="HPOUT1R Input 1 Volume" value="25" />
+        <ctl name="HPOUT1 Digital Volume" value="110 110" />
+    </path>
+
+    <!-- FM Radio Playback paths gain control -->
+    <path name="gain-fm_radio-speaker0">
+        <path name="gain-media-speaker0" />
+    </path>
+
+    <path name="gain-fm_radio-speaker1">
+        <path name="gain-media-speaker1" />
+    </path>
+
+    <path name="gain-fm_radio-headphone">
+        <path name="gain-media-headset-fm" />
+    </path>
+
+    <path name="gain-fm_radio-headset">
+        <path name="gain-media-headset-fm" />
+    </path>
+
+    <path name="gain-fm_radio-lineout">
+        <path name="gain-media-lineout" />
+    </path>
+
+    <path name="gain-tty_mode-full-mic">
+        <!-- TTY mode FULL mode MIC -->
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="25" />
+        <ctl name="IN1R Volume" value="25" />
+        <ctl name="IN2L Volume" value="25" />
+        <ctl name="IN2R Volume" value="25" />
+        <ctl name="IN1L Digital Volume" value="104" />
+        <ctl name="IN1R Digital Volume" value="104" />
+        <ctl name="IN2L Digital Volume" value="104" />
+        <ctl name="IN2R Digital Volume" value="104" />
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="25" />
+        <ctl name="HPOUT1R Input 1 Volume" value="25" />
+        <ctl name="HPOUT1 Digital Volume" value="110 110" />
+    </path>
+
+    <path name="gain-tty_mode-handset">
+        <!-- TTY mode HCO mode Playback paths -->
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="25" />
+        <ctl name="IN1R Volume" value="25" />
+        <ctl name="IN2L Volume" value="25" />
+        <ctl name="IN2R Volume" value="25" />
+        <ctl name="IN1L Digital Volume" value="104" />
+        <ctl name="IN1R Digital Volume" value="104" />
+        <ctl name="IN2L Digital Volume" value="104" />
+        <ctl name="IN2R Digital Volume" value="104" />
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="110 110" />
+    </path>
+
+    <path name="gain-tty_mode-speaker0">
+        <path name="gain-incall_nb-speaker0" />
+    </path>
+
+    <path name="gain-tty_mode-speaker1">
+        <path name="gain-incall_nb-speaker1" />
+    </path>
+
+    <path name="gain-tty_mode-handset-mic">
+        <!-- TTY mode HCO MIC paths -->
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="25" />
+        <ctl name="IN1R Volume" value="25" />
+        <ctl name="IN2L Volume" value="25" />
+        <ctl name="IN2R Volume" value="25" />
+        <ctl name="IN1L Digital Volume" value="104" />
+        <ctl name="IN1R Digital Volume" value="104" />
+        <ctl name="IN2L Digital Volume" value="104" />
+        <ctl name="IN2R Digital Volume" value="104" />
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="110 110" />
+    </path>
+
+    <path name="gain-tty_mode-hco-mic">
+        <path name="gain-tty_mode-handset-mic" />
+    </path>
+
+    <path name="gain-tty_mode-vco-mic">
+        <!-- TTY mode VCO MIC paths -->
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="25" />
+        <ctl name="IN1R Volume" value="25" />
+        <ctl name="IN2L Volume" value="25" />
+        <ctl name="IN2R Volume" value="25" />
+        <ctl name="IN1L Digital Volume" value="104" />
+        <ctl name="IN1R Digital Volume" value="104" />
+        <ctl name="IN2L Digital Volume" value="104" />
+        <ctl name="IN2R Digital Volume" value="104" />
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="110 110" />
+    </path>
+
+    <path name="gain-incall_music-handset">
+        <path name="gain-incall_nb-handset" />
+    </path>
+
+    <path name="gain-incall_music_hac-handset">
+        <path name="gain-incall_music-handset" />
+    </path>
+
+    <path name="gain-incall_music-speaker0">
+        <path name="gain-incall_nb-speaker0" />
+    </path>
+
+    <path name="gain-incall_music-speaker1">
+        <path name="gain-incall_nb-speaker1" />
+    </path>
+
+    <path name="gain-incall_music_hac-speaker0">
+        <path name="gain-incall_music-speaker0" />
+    </path>
+
+    <path name="gain-incall_music_hac-speaker1">
+        <path name="gain-incall_music-speaker1" />
+    </path>
+
+    <path name="gain-incall_music-headset">
+        <path name="gain-incall_nb-headset" />
+    </path>
+
+    <path name="gain-incall_music_hac-headset">
+        <path name="gain-incall_music-headset" />
+    </path>
+
+    <path name="gain-incall_music-headphone">
+        <path name="gain-incall_music-headset" />
+    </path>
+
+    <path name="gain-incall_music_hac-headphone">
+        <path name="gain-incall_music-headset" />
+    </path>
+
+    <path name="gain-incall_music-lineout">
+        <path name="gain-incall_nb-lineout" />
+    </path>
+
+    <path name="gain-incall_music_hac-lineout">
+        <path name="gain-incall_music-lineout" />
+    </path>
+
+    <path name="gain-incall_music-bt-sco-headset">
+        <path name="gain-incall_nb-bt-sco-headset" />
+    </path>
+
+    <path name="gain-incall_music_hac-bt-sco-headset">
+        <path name="gain-incall_music-bt-sco-headset" />
+    </path>
+
+    <path name="gain-incall_music-handset-mic">
+        <path name="gain-incall_nb-handset-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-handset-mic">
+        <path name="gain-incall_music-handset-mic" />
+    </path>
+
+    <path name="gain-incall_music-headphone-mic">
+        <path name="gain-incall_nb-headphone-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-headphone-mic">
+        <path name="gain-incall_music-headphone-mic" />
+    </path>
+
+    <path name="gain-incall_music-lineout-mic">
+        <path name="gain-incall_nb-lineout-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-lineout-mic">
+        <path name="gain-incall_music-lineout-mic" />
+    </path>
+
+    <path name="gain-incall_music-speaker0-mic">
+        <path name="gain-incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="gain-incall_music-speaker1-mic">
+        <path name="gain-incall_nb-speaker1-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-speaker0-mic">
+        <path name="gain-incall_music-speaker0-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-speaker1-mic">
+        <path name="gain-incall_music-speaker1-mic" />
+    </path>
+
+    <path name="gain-incall_music-headset-mic">
+        <path name="gain-incall_nb-headset-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-headset-mic">
+        <path name="gain-incall_music-headset-mic" />
+    </path>
+
+    <path name="gain-incall_music-bt-sco-headset-in">
+        <path name="gain-incall_nb-bt-sco-headset-in" />
+    </path>
+
+    <path name="gain-incall_music_hac-bt-sco-headset-in">
+        <path name="gain-incall_music-bt-sco-headset-in" />
+    </path>
+
+    <path name="media-speaker-ar">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+    </path>
+
+    <path name="media_ringtone-speaker-ar">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+    </path>
+
+    <path name="gain-media-speaker-ar">
+        <ctl name="SPK PCM Source" value="ASP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker-ar">
+        <ctl name="SPK PCM Source" value="ASP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+</mixer>
diff --git a/configs/audio/mixer_paths.xml b/configs/audio/mixer_paths.xml
new file mode 100644 (file)
index 0000000..90671e8
--- /dev/null
@@ -0,0 +1,2808 @@
+<mixer>
+  <!-- These paths are for ERD with Exynos9610 -->
+
+  <!-- Board Device Connections -->
+  <!-- UAIF0 - CODEC for normal Playback and Capture -->
+  <!-- UAIF1 - None -->
+  <!-- UAIF2 - Echo Reference from Codec -->
+  <!-- UAIF3 - None -->
+  <!-- UAIF4 - Loopback -->
+  <!-- SPDY  - FM Radio -->
+
+  <!-- Exynos A-Box Term -->
+  <!-- SIFS0 : Mixer for Playback -->
+  <!-- SIFS1 : Mux1 for Playback -->
+  <!-- SIFS2 : Mux2 for Playback -->
+  <!-- RSRC0 : Recording Source 0 -->
+  <!-- RSRC1 : Recording Source 1 -->
+  <!-- NSRC0 : Capture Source 0 -->
+  <!-- NSRC1 : Capture Source 1 -->
+  <!-- NSRC2 : Capture Source 2 -->
+  <!-- NSRC3 : Capture Source 3 -->
+
+  <!-- Initial Mixer control configurations -->
+    <ctl name="ABOX Sampling Rate Mixer" value="48000" />
+    <ctl name="ABOX Sampling Rate Out1" value="48000" />
+    <ctl name="ABOX Sampling Rate Out2" value="48000" />
+
+    <ctl name="ABOX SPUS ASRC0" value="On" />
+    <ctl name="ABOX SPUS ASRC1" value="On" />
+    <ctl name="ABOX SPUS ASRC2" value="On" />
+    <ctl name="ABOX SPUS ASRC3" value="On" />
+    <ctl name="ABOX SPUS ASRC4" value="On" />
+    <ctl name="ABOX SPUS ASRC5" value="On" />
+    <ctl name="ABOX SPUS ASRC6" value="On" />
+    <ctl name="ABOX SPUS ASRC7" value="On" />
+
+    <ctl name="ABOX SPUS OUT0" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT1" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT2" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT3" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT4" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT5" value="SIFS0" />
+    <ctl name="ABOX SPUS OUT6" value="SIFS2" />
+    <ctl name="ABOX SPUS OUT7" value="SIFS1" />
+
+    <ctl name="ABOX SIFS1" value="SPUS OUT7" />
+    <ctl name="ABOX SIFS2" value="SPUS OUT6" />
+
+    <ctl name="ABOX UAIF1 SPK" value="SIFS2" />
+
+    <ctl name="ABOX Sampling Rate Recp" value="48000" />
+    <ctl name="ABOX Sampling Rate Inmux0" value="48000" />
+    <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+    <ctl name="ABOX Sampling Rate Inmux2" value="48000" />
+    <ctl name="ABOX Sampling Rate Inmux3" value="48000" />
+    <ctl name="ABOX Sampling Rate Inmux4" value="48000" />
+
+    <ctl name="ABOX SPUM ASRC0" value="On" />
+    <ctl name="ABOX SPUM ASRC1" value="On" />
+    <ctl name="ABOX SPUM ASRC2" value="On" />
+    <ctl name="ABOX SPUM ASRC3" value="On" />
+    <ctl name="ABOX RECP PIFS0" value="0" />
+    <ctl name="ABOX RECP PIFS1" value="0" />
+
+    <ctl name="ABOX SIFM0" value="WDMA" />
+    <ctl name="ABOX SIFM1" value="WDMA" />
+    <ctl name="ABOX SIFM2" value="WDMA" />
+    <ctl name="ABOX SIFM3" value="WDMA" />
+
+    <ctl name="ABOX NSRC0" value="RESERVED" />
+    <ctl name="ABOX NSRC1" value="RESERVED" />
+    <ctl name="ABOX NSRC2" value="RESERVED" />
+    <ctl name="ABOX NSRC3" value="RESERVED" />
+
+    <ctl name="ABOX ERAP info FM Radio On" value="0" />
+    <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+    <!-- Callscreen mic+music data mixing enabling control -->
+    <ctl name="ABOX ERAP info ICM On" value="0" />
+
+  <!-- Initial Codec control configurations -->
+    <ctl name="IN1L Mux" value="A" />
+    <ctl name="IN1R Mux" value="B" />
+    <ctl name="IN1L Volume" value="18" />
+    <ctl name="IN1R Volume" value="18" />
+    <ctl name="IN2L Volume" value="18" />
+    <ctl name="IN2R Volume" value="18" />
+    <ctl name="IN1L Digital Volume" value="128" />
+    <ctl name="IN1R Digital Volume" value="128" />
+    <ctl name="IN2L Digital Volume" value="128" />
+    <ctl name="IN2R Digital Volume" value="128" />
+    <ctl name="IN HPF Cutoff Frequency" value="40Hz" />
+    <ctl name="IN1L HPF Switch" value="1" />
+    <ctl name="IN1R HPF Switch" value="1" />
+    <ctl name="IN2L HPF Switch" value="1" />
+    <ctl name="IN2R HPF Switch" value="1" />
+    <ctl name="SLIMTX1 Input 1" value="None" />
+    <ctl name="SLIMTX2 Input 1" value="None" />
+    <ctl name="SLIMTX3 Input 1" value="None" />
+    <ctl name="SLIMTX5 Input 1" value="None" />
+    <ctl name="SLIMTX6 Input 1" value="None" />
+    <ctl name="Input Ramp Up" value="8ms/6dB" />
+    <ctl name="Input Ramp Down" value="8ms/6dB" />
+    <ctl name="AIF1TX1 Input 1" value="None" />
+    <ctl name="AIF1TX1 Input 2" value="None" />
+    <ctl name="AIF1TX1 Input 3" value="None" />
+    <ctl name="AIF1TX1 Input 1 Volume" value="32" />
+    <ctl name="AIF1TX1 Input 2 Volume" value="32" />
+    <ctl name="AIF1TX1 Input 3 Volume" value="32" />
+    <ctl name="AIF1TX2 Input 1" value="None" />
+    <ctl name="AIF1TX2 Input 2" value="None" />
+    <ctl name="AIF1TX2 Input 3" value="None" />
+    <ctl name="AIF1TX2 Input 1 Volume" value="32" />
+    <ctl name="AIF1TX2 Input 2 Volume" value="32" />
+    <ctl name="AIF1TX2 Input 3 Volume" value="32" />
+    <ctl name="HPOUT1L Input 1" value="None" />
+    <ctl name="HPOUT1R Input 1" value="None" />
+    <ctl name="HPOUT1 Digital Volume" id="0" value="0" />
+    <ctl name="HPOUT1 Digital Volume" id="1" value="0" />
+    <ctl name="HPOUT1 Digital Switch" id="0" value="0" />
+    <ctl name="HPOUT1 Digital Switch" id="1" value="0" />
+    <ctl name="DSP2 Firmware" value="frontend" />
+    <ctl name="DSP3 Firmware" value="aov" />
+    <ctl name="Sample Rate 2" value="16kHz" />
+    <ctl name="Sample Rate 3" value="48kHz" />
+    <ctl name="In Rate" value="SYNCCLK rate 3" />
+    <ctl name="FX Rate" value="SYNCCLK rate 2" />
+    <ctl name="ISRC1 FSH" value="SYNCCLK rate 3" />
+    <ctl name="ISRC1 FSL" value="SYNCCLK rate 2" />
+    <ctl name="LHPF1 Input 1" value="None" />
+    <ctl name="LHPF1 Mode" value="High-pass" />
+    <ctl name="LHPF1 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF1 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2L Input 1" value="LHPF1" />
+    <ctl name="DSP2L Input 1 Volume" value="48" />
+    <ctl name="LHPF2 Input 1" value="None" />
+    <ctl name="LHPF2 Mode" value="High-pass" />
+    <ctl name="LHPF2 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF2 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2 Aux 1" value="LHPF2" />
+    <ctl name="LHPF3 Input 1" value="None" />
+    <ctl name="LHPF3 Mode" value="High-pass" />
+    <ctl name="LHPF3 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF3 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2R Input 1" value="LHPF3" />
+    <ctl name="DSP2R Input 1 Volume" value="48" />
+    <ctl name="LHPF4 Input 1" value="None" />
+    <ctl name="LHPF4 Mode" value="High-pass" />
+    <ctl name="LHPF4 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF4 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2 Aux 2" value="LHPF4" />
+    <ctl name="DSP2 Aux 5" value="None" />
+    <ctl name="LHPF1 Input 1" value="ISRC1DEC1" />
+    <ctl name="LHPF2 Input 1" value="ISRC1DEC2" />
+    <ctl name="LHPF3 Input 1" value="ISRC1DEC3" />
+    <ctl name="DRC1R Input 1" value="None" />
+    <ctl name="DRC1L Input 1" value="None" />
+    <ctl name="DRC1" id="0" value="0x01" />
+    <ctl name="DRC1" id="1" value="0x78" />
+    <ctl name="DRC1" id="2" value="0x07" />
+    <ctl name="DRC1" id="3" value="0x30" />
+    <ctl name="DRC1" id="4" value="0x08" />
+    <ctl name="DRC1" id="5" value="0x20" />
+    <ctl name="DRC1" id="6" value="0x00" />
+    <ctl name="DRC1" id="7" value="0xc2" />
+    <ctl name="DRC1" id="8" value="0x01" />
+    <ctl name="DRC1" id="9" value="0x6d" />
+    <ctl name="HPOUT1L Input 2" value="None" />
+    <ctl name="HPOUT1R Input 2" value="None" />
+    <ctl name="HPOUT1 Demux" value="HPOUT" />
+    <ctl name="EQ1 Input 1" value="None" />
+    <ctl name="HPOUT1L Input 2 Volume" value="32" />
+    <ctl name="HPOUT1R Input 2 Volume" value="32" />
+    <ctl name="DSP3L Input 1" value="None" />
+    <ctl name="DSP3R Input 1" value="None" />
+    <ctl name="DSP3 Aux 5" value="None" />
+    <ctl name="DSP3 Aux 6" value="None" />
+    <ctl name="DRC2R Input 1" value="None" />
+    <ctl name="DRC2L Input 1" value="None" />
+    <ctl name="DRC2" id="0" value="0x01" />
+    <ctl name="DRC2" id="1" value="0x78" />
+    <ctl name="DRC2" id="2" value="0x09" />
+    <ctl name="DRC2" id="3" value="0x30" />
+    <ctl name="DRC2" id="4" value="0x08" />
+    <ctl name="DRC2" id="5" value="0x28" />
+    <ctl name="DRC2" id="6" value="0x00" />
+    <ctl name="DRC2" id="7" value="0x42" />
+    <ctl name="DRC2" id="8" value="0x01" />
+    <ctl name="DRC2" id="9" value="0xbf" />
+    <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+    <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+
+    <!-- AOV default settings -->
+    <!-- AOV default sample rate settings -->
+    <ctl name="Sample Rate 2" value="16kHz" />
+    <ctl name="Sample Rate 3" value="48kHz" />
+    <ctl name="In Rate" value="SYNCCLK rate 2" />
+    <ctl name="FX Rate" value="SYNCCLK rate 2" />
+    <ctl name="ISRC1 FSH" value="SYNCCLK rate 3" />
+    <ctl name="ISRC1 FSL" value="SYNCCLK rate 2" />
+    <ctl name="ISRC2 FSH" value="SYNCCLK rate 3" />
+    <ctl name="ISRC2 FSL" value="SYNCCLK rate 2" />
+    <!-- AOV default microphone 1 settings -->
+    <ctl name="LHPF1 Input 1" value="None" />
+    <ctl name="LHPF1 Mode" value="High-pass" />
+    <ctl name="LHPF1 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF1 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2L Input 1" value="LHPF1" />
+    <ctl name="DSP2L Input 1 Volume" value="48" />
+    <!-- AOV default microphone 2 settings -->
+    <ctl name="LHPF2 Input 1" value="None" />
+    <ctl name="LHPF2 Mode" value="High-pass" />
+    <ctl name="LHPF2 Coefficients" id="0" value="0xF0" />
+    <ctl name="LHPF2 Coefficients" id="1" value="0xC4" />
+    <ctl name="DSP2 Aux 1" value="LHPF2" />
+    <!-- AOV default headset microphone settings -->
+    <ctl name="DSP2 Aux 5" value="None" />
+    <!-- AOV default settings end -->
+
+    <ctl name="SPK AMP PCM Gain" value="7" />
+    <ctl name="SPK PCM Soft Ramp" value="2ms" />
+    <ctl name="SPK AMP Enable Switch" value="0" />
+    <ctl name="SPK PCM Source" value="ASP" />
+
+        <!-- DRC1 Parameters for Mono and Stereo input -->
+    <path name="drc1-mono">
+        <ctl name="DRC1" id="0" value="0x01" />
+        <ctl name="DRC1" id="1" value="0x2A" />
+        <ctl name="DRC1" id="2" value="0x0A" />
+        <ctl name="DRC1" id="3" value="0xE5" />
+        <ctl name="DRC1" id="4" value="0x75" />
+        <ctl name="DRC1" id="5" value="0x52" />
+        <ctl name="DRC1" id="6" value="0x01" />
+        <ctl name="DRC1" id="7" value="0x88" />
+        <ctl name="DRC1" id="8" value="0x02" />
+        <ctl name="DRC1" id="9" value="0x4A" />
+    </path>
+
+    <path name="drc1-stereo">
+        <ctl name="DRC1" id="0" value="0x01" />
+        <ctl name="DRC1" id="1" value="0x2B" />
+        <ctl name="DRC1" id="2" value="0x0A" />
+        <ctl name="DRC1" id="3" value="0xE5" />
+        <ctl name="DRC1" id="4" value="0x75" />
+        <ctl name="DRC1" id="5" value="0x52" />
+        <ctl name="DRC1" id="6" value="0x01" />
+        <ctl name="DRC1" id="7" value="0x88" />
+        <ctl name="DRC1" id="8" value="0x02" />
+        <ctl name="DRC1" id="9" value="0x4A" />
+    </path>
+
+  <!-- Common control configurations -->
+    <path name="route-playback">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX UAIF0 SPK" value="SIFS0" />
+    </path>
+
+    <path name="route-spkamp-playback">
+    </path>
+
+    <path name="route-incall-reference">
+        <ctl name="ABOX NSRC2" value="UAIF2" />
+        <ctl name="ABOX SIFM2" value="WDMA" />
+    </path>
+
+    <path name="route-incall-bt-sco-reference">
+        <ctl name="ABOX NSRC2" value="UAIF4" />
+        <ctl name="ABOX SIFM2" value="WDMA" />
+    </path>
+
+    <path name="route-feedback">
+        <ctl name="ABOX NSRC2" value="UAIF2" />
+        <ctl name="ABOX SIFM2" value="WDMA" />
+    </path>
+
+    <path name="route-bt-sco-playback">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX RECP PIFS0" value="1" />
+        <ctl name="ABOX RSRC0" value="SIFS0" />
+        <ctl name="ABOX RECP PIFS1" value="0" />
+        <ctl name="ABOX RSRC1" value="RESERVED" />
+        <ctl name="BT SCO SPK Enable" value="1" />
+    </path>
+
+    <path name="route-ap-record">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX NSRC0" value="UAIF0" />
+    </path>
+
+    <path name="route-cp-tx">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX NSRC1" value="UAIF0" />
+    </path>
+
+    <path name="route-ap-bt-sco-record">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX NSRC0" value="SIFS2" />
+    </path>
+
+    <path name="route-cp-bt-sco-tx">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX NSRC1" value="SIFS2" />
+    </path>
+
+    <path name="route-loop-record">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+    </path>
+
+    <path name="route-bt-sco-tx">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX SPUS OUT6" value="SIFS2" />
+        <ctl name="ABOX SIFS2" value="SPUS OUT6" />
+        <ctl name="BT SCO MIC Enable" value="1" />
+    </path>
+
+    <path name="route-ap-music-to-cp-tx">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX SPUS OUT7" value="SIFS1" />
+        <ctl name="ABOX SIFS1" value="SPUS OUT7" />
+        <ctl name="ABOX NSRC3" value="SIFS1" />
+        <ctl name="ABOX SIFM3" value="WDMA" />
+    </path>
+
+    <path name="route-codec-handset">
+        <!-- Cirrus Logic CS47L3 RCV path control -->
+        <ctl name="HPOUT1L Input 1" value="AIF1RX1" />
+        <ctl name="HPOUT1R Input 1" value="AIF1RX2" />
+        <ctl name="Noise Gate Switch" value="0" />
+        <ctl name="HPOUT1 Digital Volume" id="0" value="118" />
+        <ctl name="HPOUT1 Digital Volume" id="1" value="118" />
+        <ctl name="HPOUT1 Digital Switch" id="0" value="1" />
+        <ctl name="HPOUT1 Digital Switch" id="1" value="1" />
+        <ctl name="HPOUT1 Demux" value="EPOUT" />
+        <ctl name="HPOUT1 Mono Switch" value="1" />
+    </path>
+
+    <path name="route-codec-speaker">
+        <!-- Cirrus Logic CS47L3 Speaker path control -->
+        <ctl name="AIF2TX1 Input 1" value="AIF1RX1" />
+        <ctl name="AIF2TX2 Input 1" value="AIF1RX2" />
+    </path>
+
+    <path name="route-codec-headset">
+        <!-- Cirrus Logic CS47L3 HP path control -->
+        <ctl name="HPOUT1L Input 1" value="AIF1RX1" />
+        <ctl name="HPOUT1R Input 1" value="AIF1RX2" />
+        <ctl name="HPOUT1 Digital Volume" id="0" value="116" />
+        <ctl name="HPOUT1 Digital Volume" id="1" value="116" />
+        <ctl name="HPOUT1 Digital Switch" id="0" value="1" />
+        <ctl name="HPOUT1 Digital Switch" id="1" value="1" />
+        <ctl name="HPOUT1 Demux" value="HPOUT" />
+        <ctl name="HPOUT1 Mono Switch" value="0" />
+    </path>
+
+    <path name="route-codec-handset-feedback">
+        <!-- Cirrus Logic CS47L3 RCV path control -->
+        <ctl name="AIF3TX1 Input 1" value="AIF1RX1" />
+    </path>
+
+    <path name="route-codec-speaker-feedback">
+        <!-- Cirrus Logic CS47L3 RCV path control -->
+        <ctl name="AIF3TX1 Input 1" value="AIF1RX1" />
+    </path>
+
+    <path name="route-codec-headset-feedback">
+        <!-- Cirrus Logic CS47L3 RCV path control -->
+        <ctl name="AIF3TX1 Input 1" value="AIF1RX1" />
+    </path>
+
+    <path name="AOV">
+        <!-- Set ADC sample rate to 48kHz -->
+        <ctl name="In Rate" value="SYNCCLK rate 3" />
+        <!-- Microphone 1 settings -->
+        <ctl name="LHPF1 Input 1" value="ISRC1DEC1" />
+        <!-- Microphone 2 settings -->
+        <ctl name="LHPF2 Input 1" value="ISRC1DEC2" />
+        <!-- AOV default headset microphone settings -->
+        <ctl name="DSP2 Aux 5" value="ISRC2DEC1" />
+    </path>
+
+    <path name="route-codec-main-mic">
+        <!-- Cirrus Logic CS47L3 Main MIC path control -->
+        <ctl name="AIF1TX1 Input 1" value="IN1L" />
+    </path>
+
+    <path name="route-codec-main-mic-L">
+        <ctl name="AIF1TX1 Input 1" value="IN1L" />
+    </path>
+    <path name="route-codec-main-mic-R">
+        <ctl name="AIF1TX2 Input 1" value="IN1L" />
+    </path>
+    <path name="route-codec-sub-mic">
+        <!-- Cirrus Logic CS47L3 Sub MIC path control -->
+        <ctl name="AIF1TX1 Input 1" value="IN2L" />
+    </path>
+
+    <path name="route-codec-sub-mic-L">
+        <ctl name="AIF1TX1 Input 1" value="IN2L" />
+    </path>
+
+    <path name="route-codec-sub-mic-R">
+        <ctl name="AIF1TX2 Input 1" value="IN2L" />
+    </path>
+    <path name="route-codec-sub-mic-R-channel">
+        <!-- Cirrus Logic CS47L3 Sub MIC path control -->
+        <ctl name="AIF1TX2 Input 1" value="IN2L" />
+    </path>
+
+    <path name="route-codec-headset-mic">
+        <!-- Cirrus Logic CS47L3 HeadSet MIC path control -->
+        <ctl name="AIF1TX1 Input 1" value="IN1R" />
+    </path>
+
+    <path name="route-fm">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <ctl name="ABOX ERAP info FM Radio On" value="1" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="1" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="40000" />
+        <ctl name="ABOX NSRC1" value="SPDY" />
+    </path>
+
+  <!-- BT SCO Sampling Rate Settings -->
+    <path name="set-bt-sco-rx-rate-nb">
+    </path>
+
+    <path name="set-bt-sco-tx-rate-nb">
+    </path>
+
+    <path name="set-bt-sco-rx-rate-wb">
+    </path>
+
+    <path name="set-bt-sco-tx-rate-wb">
+    </path>
+
+  <!-- Output mixer settings -->
+    <!-- Playback paths -->
+    <path name="media-handset">
+        <path name="route-playback" />
+        <path name="route-codec-handset" />
+    </path>
+
+    <path name="media-speaker0">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+    </path>
+
+    <path name="media-speaker1">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+    </path>
+
+    <path name="media-headset">
+        <path name="route-playback" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-headphone">
+        <path name="media-headset" />
+    </path>
+
+    <!-- Lineout path routing is similar to Headphone-->
+    <path name="media-lineout">
+        <path name="route-playback" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-speaker0-headset">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-speaker1-headset">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-speaker0-headphone">
+        <path name="media-speaker0-headset" />
+    </path>
+
+    <path name="media-speaker1-headphone">
+        <path name="media-speaker1-headset" />
+    </path>
+
+    <path name="media-speaker0-lineout">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-speaker1-lineout">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="media-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-bt-sco-playback" />
+    </path>
+
+    <path name="fm_radio-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-bt-sco-playback" />
+    </path>
+
+    <path name="media-speaker0-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-bt-sco-playback" />
+    </path>
+
+    <path name="media-speaker1-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-bt-sco-playback" />
+    </path>
+
+    <path name="media_ringtone-handset">
+        <path name="media-handset" />
+    </path>
+
+    <path name="media_ringtone-speaker0">
+        <path name="media-speaker0" />
+    </path>
+
+    <path name="media_ringtone-speaker1">
+        <path name="media-speaker1" />
+    </path>
+
+    <path name="media_ringtone-headset">
+        <path name="media-headset" />
+    </path>
+
+    <path name="media_ringtone-headphone">
+        <path name="media-headphone" />
+    </path>
+
+    <path name="media_ringtone-lineout">
+        <path name="media-lineout" />
+    </path>
+
+    <path name="media_ringtone-speaker0-headset">
+        <path name="media-speaker0-headset" />
+    </path>
+
+    <path name="media_ringtone-speaker1-headset">
+        <path name="media-speaker1-headset" />
+    </path>
+
+    <path name="media_ringtone-speaker0-headphone">
+        <path name="media-speaker0-headphone" />
+    </path>
+
+    <path name="media_ringtone-speaker1-headphone">
+        <path name="media-speaker1-headphone" />
+    </path>
+
+    <path name="media_ringtone-bt-sco-headset">
+        <path name="media-bt-sco-headset" />
+    </path>
+
+    <path name="media_ringtone-speaker0-bt-sco-headset">
+        <path name="media-speaker0-bt-sco-headset" />
+    </path>
+
+    <path name="media_ringtone-speaker1-bt-sco-headset">
+        <path name="media-speaker1-bt-sco-headset" />
+    </path>
+
+    <path name="media_ringtone-speaker0-lineout">
+        <path name="media-speaker0-lineout" />
+    </path>
+
+    <path name="media_ringtone-speaker1-lineout">
+        <path name="media-speaker1-lineout" />
+    </path>
+
+    <path name="media_notification-handset">
+        <path name="media-handset" />
+    </path>
+
+    <path name="media_notification-speaker0">
+        <path name="media-speaker0" />
+    </path>
+
+    <path name="media_notification-speaker1">
+        <path name="media-speaker1" />
+    </path>
+
+    <path name="media_notification-headset">
+        <path name="media-headset" />
+    </path>
+
+    <path name="media_notification-headphone">
+        <path name="media-headphone" />
+    </path>
+
+    <path name="media_notification-lineout">
+        <path name="media-lineout" />
+    </path>
+
+    <path name="media_notification-speaker0-headset">
+        <path name="media-speaker0-headset" />
+    </path>
+
+    <path name="media_notification-speaker1-headset">
+        <path name="media-speaker1-headset" />
+    </path>
+
+    <path name="media_notification-speaker0-headphone">
+        <path name="media-speaker0-headphone" />
+    </path>
+
+    <path name="media_notification-speaker1-headphone">
+        <path name="media-speaker1-headphone" />
+    </path>
+
+    <path name="media_notification-bt-sco-headset">
+        <path name="media-bt-sco-headset" />
+    </path>
+
+    <path name="media_notification-speaker0-bt-sco-headset">
+        <path name="media-speaker0-bt-sco-headset" />
+    </path>
+
+    <path name="media_notification-speaker1-bt-sco-headset">
+        <path name="media-speaker1-bt-sco-headset" />
+    </path>
+
+    <path name="media_notification-speaker0-lineout">
+        <path name="media-speaker0-lineout" />
+    </path>
+
+    <path name="media_notification-speaker1-lineout">
+        <path name="media-speaker1-lineout" />
+    </path>
+
+    <!-- VoiceCall paths -->
+    <path name="incall_nb-handset">
+        <path name="route-playback" />
+        <path name="route-codec-handset" />
+        <path name="route-codec-handset-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="VOICE" />
+    </path>
+
+    <path name="incall_nb_hac-handset">
+        <path name="incall_nb-handset" />
+    </path>
+
+    <path name="incall_nb-speaker0">
+        <path name="route-playback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="SPEAKER" />
+    </path>
+
+    <path name="incall_nb-speaker1">
+        <path name="route-playback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="SPEAKER" />
+    </path>
+
+    <path name="incall_nb_hac-speaker0">
+        <path name="incall_nb-speaker0" />
+    </path>
+
+    <path name="incall_nb_hac-speaker1">
+        <path name="incall_nb-speaker1" />
+    </path>
+
+    <path name="incall_nb-headset">
+        <path name="route-playback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="HEADSET" />
+    </path>
+
+    <path name="incall_nb_hac-headset">
+        <path name="incall_nb-headset" />
+    </path>
+
+    <path name="incall_nb-headphone">
+        <path name="incall_nb-headset" />
+    </path>
+
+    <path name="incall_nb_hac-headphone">
+        <path name="incall_nb-headset" />
+    </path>
+
+    <path name="incall_nb-lineout">
+        <path name="route-playback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="LINEOUT" />
+    </path>
+
+    <path name="incall_nb_hac-lineout">
+        <path name="incall_nb-lineout" />
+    </path>
+
+    <path name="incall_nb-bt-sco-headset">
+        <path name="route-playback" />
+        <path name="route-bt-sco-playback" />
+        <path name="route-incall-bt-sco-reference" />
+        <ctl name="ABOX Sound Type" value="BTVOICE" />
+    </path>
+
+    <path name="incall_nb_hac-bt-sco-headset">
+        <path name="incall_nb-bt-sco-headset" />
+    </path>
+
+    <path name="incall_wb-handset">
+        <path name="incall_nb-handset" />
+    </path>
+
+    <path name="incall_wb_hac-handset">
+        <path name="incall_wb-handset" />
+    </path>
+
+    <path name="incall_wb-speaker0">
+        <path name="incall_nb-speaker0" />
+    </path>
+
+    <path name="incall_wb-speaker1">
+        <path name="incall_nb-speaker1" />
+    </path>
+
+    <path name="incall_wb_hac-speaker0">
+        <path name="incall_wb-speaker0" />
+    </path>
+
+    <path name="incall_wb_hac-speaker1">
+        <path name="incall_wb-speaker1" />
+    </path>
+
+    <path name="incall_wb-headset">
+        <path name="incall_nb-headset" />
+    </path>
+
+    <path name="incall_wb_hac-headset">
+        <path name="incall_wb-headset" />
+    </path>
+
+    <path name="incall_wb-headphone">
+        <path name="incall_wb-headset" />
+    </path>
+
+    <path name="incall_wb_hac-headphone">
+        <path name="incall_wb-headset" />
+    </path>
+
+    <path name="incall_wb-lineout">
+        <path name="incall_nb-lineout" />
+    </path>
+
+    <path name="incall_wb_hac-lineout">
+        <path name="incall_nb-lineout" />
+    </path>
+
+    <path name="incall_wb-bt-sco-headset">
+        <path name="incall_nb-bt-sco-headset" />
+    </path>
+
+    <path name="incall_wb_hac-bt-sco-headset">
+        <path name="incall_wb-bt-sco-headset" />
+    </path>
+
+    <!-- Incall Music path -->
+    <path name="incall_music-handset">
+        <path name="incall_nb-handset" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music_hac-handset">
+        <path name="incall_music-handset" />
+    </path>
+
+    <path name="incall_music-speaker0">
+        <path name="incall_nb-speaker0" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music-speaker1">
+        <path name="incall_nb-speaker1" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music_hac-speaker0">
+        <path name="incall_music-speaker0" />
+    </path>
+
+    <path name="incall_music_hac-speaker1">
+        <path name="incall_music-speaker1" />
+    </path>
+
+    <path name="incall_music-headset">
+        <path name="incall_nb-headset" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music_hac-headset">
+        <path name="incall_music-headset" />
+    </path>
+    <path name="incall_music-headphone">
+        <path name="incall_music-headset" />
+    </path>
+
+    <path name="incall_music_hac-headphone">
+        <path name="incall_music-headset" />
+    </path>
+
+    <path name="incall_music-lineout">
+        <path name="incall_nb-lineout" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music_hac-lineout">
+        <path name="incall_music-lineout" />
+    </path>
+
+    <path name="incall_music-bt-sco-headset">
+        <path name="incall_nb-bt-sco-headset" />
+        <ctl name="ABOX ERAP info ICM On" value="1" />
+    </path>
+
+    <path name="incall_music_hac-bt-sco-headset">
+        <path name="incall_music-bt-sco-headset" />
+    </path>
+
+    <!-- Communication Playback paths -->
+    <path name="communication-handset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-handset" />
+        <path name="route-codec-handset-feedback" />
+        <ctl name="ABOX Speech Param" value="8" />
+    </path>
+
+    <path name="communication-speaker0">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="communication-speaker1">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="communication-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="communication-headphone">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="10" />
+    </path>
+
+    <path name="communication-lineout">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="12" />
+    </path>
+
+    <path name="communication-speaker0-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="communication-speaker1-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="communication-speaker0-headphone">
+        <path name="communication-speaker0-headset" />
+    </path>
+
+    <path name="communication-speaker1-headphone">
+        <path name="communication-speaker1-headset" />
+    </path>
+
+    <path name="communication-speaker0-lineout">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="communication-speaker1-lineout">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="communication-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-bt-sco-playback" />
+       <ctl name="ABOX Speech Param" value="6" />
+    </path>
+
+    <!-- voip Playback paths -->
+    <path name="voip-handset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-handset" />
+        <path name="route-codec-handset-feedback" />
+        <ctl name="ABOX Speech Param" value="8" />
+    </path>
+
+    <path name="voip-speaker0">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="voip-speaker1">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="voip-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="voip-headphone">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="10" />
+    </path>
+
+    <path name="voip-lineout">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <ctl name="ABOX Speech Param" value="12" />
+    </path>
+
+    <path name="voip-speaker0-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="voip-speaker1-headset">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="voip-speaker0-headphone">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="10" />
+    </path>
+
+    <path name="voip-speaker1-headphone">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+        <ctl name="ABOX Speech Param" value="10" />
+    </path>
+
+    <path name="voip-speaker0-lineout">
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-spkamp-playback" />
+        <path name="route-codec-speaker" />
+        <path name="route-codec-speaker-feedback" />
+        <path name="route-codec-headset" />
+    </path>
+
+    <path name="voip-speaker1-lineout">
+        <path name="voip-speaker0-lineout" />
+    </path>
+    <path name="voip-bt-sco-headset">
+        <!-- Calliope Mixer controls-->
+        <!-- Calliope Routing Matrix controls-->
+        <path name="route-playback" />
+        <path name="route-feedback" />
+        <path name="route-bt-sco-playback" />
+       <ctl name="ABOX Speech Param" value="6" />
+    </path>
+
+    <!-- FM Radio Playback paths -->
+    <path name="fm_radio-speaker0">
+        <path name="media-speaker0" />
+    </path>
+
+    <path name="fm_radio-speaker1">
+        <path name="media-speaker1" />
+    </path>
+
+    <path name="fm_radio-headphone">
+        <path name="media-headphone" />
+    </path>
+
+    <path name="fm_radio-headset">
+        <path name="media-headset" />
+    </path>
+
+    <path name="fm_radio-lineout">
+        <path name="media-lineout" />
+    </path>
+
+  <!-- Input mixer settings -->
+    <!-- Capture paths -->
+    <path name="media-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-L" />
+    </path>
+
+    <path name="media-headset-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-headset-mic" />
+    </path>
+
+    <path name="recording-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="AIF1TX1 Input 1" value="IN1L" />
+        <ctl name="AIF1TX2 Input 1" value="IN2L" />
+    </path>
+
+    <path name="recording-mic1">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+       <ctl name="AIF1TX1 Input 1" value="IN1L" />
+    </path>
+
+    <path name="recording-mic2">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="AIF1TX1 Input 1" value="IN2L" />
+    </path>
+
+    <path name="media-2nd-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="recording-2nd-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="AIF1TX1 Input 1" value="IN2L" />
+    </path>
+
+    <path name="camcorder-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="ISRC2DEC1 Input 1" value="IN1L" />
+        <ctl name="DRC1L Input 1" value="ISRC2DEC1" />
+        <ctl name="ISRC2INT1 Input 1" value="DRC1L" />
+        <path name="drc1-mono" />
+        <ctl name="AIF1TX1 Input 1" value="ISRC2INT1" />
+    </path>
+
+    <path name="camcorder-2nd-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="ISRC2DEC1 Input 1" value="IN2L" />
+        <ctl name="DRC1L Input 1" value="ISRC2DEC1" />
+        <ctl name="ISRC2INT1 Input 1" value="DRC1L" />
+        <path name="drc1-mono" />
+        <ctl name="AIF1TX1 Input 1" value="ISRC2INT1" />
+    </path>
+
+    <path name="camcorder-dualmic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="AIF1TX1 Input 1" value="IN2L" />
+        <ctl name="AIF1TX2 Input 1" value="IN1L" />
+    </path>
+
+    <path name="recording-headset-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <ctl name="AIF1TX1 Input 1" value="IN1R" />
+        <ctl name="AIF1TX2 Input 1" value="IN1R" />
+    </path>
+
+    <path name="media-bt-sco-mic">
+        <path name="route-bt-sco-tx" />
+        <path name="route-ap-bt-sco-record" />
+    </path>
+
+    <path name="recording-bt-sco-headset-in">
+        <path name="media-bt-sco-mic" />
+    </path>
+
+    <!-- Recognition Input paths -->
+    <path name="recognition-mic">
+        <path name="media-mic" />
+    </path>
+
+    <path name="recognition-2nd-mic">
+        <path name="media-2nd-mic" />
+    </path>
+
+    <path name="recognition-headset-mic">
+        <path name="recording-headset-mic" />
+    </path>
+
+    <path name="recognition-headphone-mic">
+        <path name="recognition-mic" />
+    </path>
+
+    <path name="recognition-lineout-mic">
+        <path name="recognition-mic" />
+    </path>
+
+    <path name="recognition-bt-sco-headset-in">
+        <path name="media-bt-sco-mic" />
+    </path>
+
+    <!-- VoiceCall paths -->
+    <path name="incall_nb-handset-mic">
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="route-codec-main-mic-L" />
+        <path name="route-codec-sub-mic-R" />
+    </path>
+
+    <path name="incall_nb_hac-handset-mic">
+        <path name="incall_nb-handset-mic" />
+    </path>
+
+    <path name="incall_nb-speaker0-mic">
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="incall_nb-speaker1-mic">
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="incall_nb-headphone-mic">
+        <path name="incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="incall_nb_hac-headphone-mic">
+        <path name="incall_nb_hac-speaker0-mic" />
+    </path>
+
+    <path name="incall_nb-lineout-mic">
+        <path name="incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="incall_nb_hac-lineout-mic">
+        <path name="incall_nb_hac-speaker0-mic" />
+    </path>
+
+    <path name="incall_nb_hac-speaker0-mic">
+        <path name="incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="incall_nb_hac-speaker1-mic">
+        <path name="incall_nb-speaker1-mic" />
+    </path>
+
+    <path name="incall_nb-headset-mic">
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="route-codec-headset-mic" />
+    </path>
+
+    <path name="incall_nb_hac-headset-mic">
+        <path name="incall_nb-headset-mic" />
+    </path>
+
+    <path name="incall_nb-bt-sco-headset-in">
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <ctl name="ABOX Sampling Rate Inmux1" value="48000" />
+        <path name="route-bt-sco-tx" />
+        <path name="route-cp-bt-sco-tx" />
+    </path>
+
+    <path name="incall_nb_hac-bt-sco-headset-in">
+        <path name="incall_nb-bt-sco-headset-in" />
+    </path>
+
+    <!-- Incall Music Mic path -->
+    <path name="route-incall-music-uplink">
+        <!-- CP Rx to AP Tx routing-->
+        <path name="route-ap-music-to-cp-tx" />
+    </path>
+
+    <path name="incall_music-handset-mic">
+        <path name="incall_nb-handset-mic" />
+        <path name="route-incall-music-uplink" />
+    </path>
+
+    <path name="incall_music_hac-handset-mic">
+        <path name="incall_music-handset-mic" />
+    </path>
+
+    <path name="incall_music-headphone-mic">
+        <path name="incall_music-handset-mic" />
+    </path>
+
+    <path name="incall_music_hac-headphone-mic">
+        <path name="incall_music-handset-mic" />
+    </path>
+
+    <path name="incall_music-lineout-mic">
+        <path name="incall_music-handset-mic" />
+    </path>
+
+    <path name="incall_music_hac-lineout-mic">
+        <path name="incall_music-handset-mic" />
+    </path>
+
+    <path name="incall_music-speaker0-mic">
+        <path name="incall_nb-speaker0-mic" />
+        <path name="route-incall-music-uplink" />
+    </path>
+
+    <path name="incall_music-speaker1-mic">
+        <path name="incall_nb-speaker1-mic" />
+        <path name="route-incall-music-uplink" />
+    </path>
+
+    <path name="incall_music_hac-speaker0-mic">
+        <path name="incall_music-speaker0-mic" />
+    </path>
+
+    <path name="incall_music_hac-speaker1-mic">
+        <path name="incall_music-speaker1-mic" />
+    </path>
+
+    <path name="incall_music-headset-mic">
+        <path name="incall_nb-headset-mic" />
+        <path name="route-incall-music-uplink" />
+    </path>
+
+    <path name="incall_music_hac-headset-mic">
+        <path name="incall_music-headset-mic" />
+    </path>
+
+    <path name="incall_music-bt-sco-headset-in">
+        <path name="incall_nb-bt-sco-headset-in" />
+        <path name="route-incall-music-uplink" />
+    </path>
+
+    <path name="incall_music_hac-bt-sco-headset-in">
+        <path name="incall_music-bt-sco-headset-in" />
+    </path>
+
+    <!-- Communication Capture paths -->
+
+    <path name="communication-handset-mic">
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="8" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="8" />
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-L" />
+        <path name="route-codec-sub-mic-R" />
+    </path>
+
+    <path name="communication-headphone-mic">
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="10" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="10" />
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="communication-lineout-mic">
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="12" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="12" />
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="communication-2nd-mic">
+        <path name="media-2nd-mic" />
+    </path>
+
+    <path name="communication-headset-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-headset-mic" />
+              <ctl name="ABOX OEM AP Call BW" value="0x010101" />
+              <ctl name="ABOX OEM AP Call type" value="11" />
+              <ctl name="ABOX OEM NXP Mode" value="1" />
+              <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="communication-speaker0-mic">
+        <ctl name="ABOX OEM AP Call BW" value="0x020201" />
+        <ctl name="ABOX OEM AP Call type" value="9" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="9" />
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="communication-speaker1-mic">
+        <ctl name="ABOX OEM AP Call BW" value="0x020201" />
+        <ctl name="ABOX OEM AP Call type" value="9" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="9" />
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-R" />
+        <path name="route-codec-sub-mic-L" />
+    </path>
+
+    <path name="communication-bt-sco-headset-in">
+        <path name="route-bt-sco-tx" />
+        <path name="route-ap-bt-sco-record" />
+        <ctl name="ABOX OEM AP Call BW" value="0x030101" />
+        <ctl name="ABOX OEM AP Call type" value="6" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="6" />
+    </path>
+
+    <!-- voip Capture paths -->
+    <path name="voip-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-L" />
+        <path name="route-codec-sub-mic-R" />
+    </path>
+
+    <path name="voip-handset-mic">
+        <path name="voip-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="8" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="8" />
+    </path>
+
+    <path name="voip-headphone-mic">
+        <path name="voip-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="10" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="10" />
+    </path>
+
+    <path name="voip-lineout-mic">
+        <path name="voip-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x000201" />
+        <ctl name="ABOX OEM AP Call type" value="12" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="12" />
+    </path>
+    <path name="voip-2nd-mic">
+        <path name="media-2nd-mic" />
+    </path>
+
+    <path name="voip-headset-mic">
+        <path name="AOV" />
+        <path name="route-ap-record" />
+        <path name="route-codec-headset-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x010101" />
+        <ctl name="ABOX OEM AP Call type" value="11" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="11" />
+    </path>
+
+    <path name="voip-speaker0-mic">
+        <path name="voip-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x020201" />
+        <ctl name="ABOX OEM AP Call type" value="9" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="voip-speaker1-mic">
+        <path name="voip-mic" />
+        <ctl name="ABOX OEM AP Call BW" value="0x020201" />
+        <ctl name="ABOX OEM AP Call type" value="9" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="9" />
+    </path>
+
+    <path name="voip-bt-sco-headset-in">
+        <path name="route-bt-sco-tx" />
+        <path name="route-ap-bt-sco-record" />
+        <ctl name="ABOX OEM AP Call BW" value="0x030101" />
+        <ctl name="ABOX OEM AP Call type" value="6" />
+        <ctl name="ABOX OEM NXP Mode" value="1" />
+        <ctl name="ABOX Speech Param" value="6" />
+    </path>
+    <!-- FM Radio Capture paths -->
+    <path name="fm_radio-fm-tuner">
+        <path name="route-fm" />
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-L" />
+    </path>
+
+    <path name="recording-fm-tuner">
+        <path name="route-fm" />
+        <!-- headset Mic path -->
+        <path name="route-ap-record" />
+        <path name="route-codec-main-mic-L" />
+    </path>
+
+    <!-- TTY mode paths -->
+    <path name="tty_mode-headset">
+        <!-- TTY mode VCO & FULL mode Playback paths -->
+        <path name="route-playback" />
+        <path name="route-codec-headset" />
+        <path name="route-codec-headset-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="HEADSET" />
+    </path>
+
+    <path name="tty_mode-handset">
+        <!-- TTY mode HCO mode Playback paths -->
+        <path name="route-playback" />
+        <path name="route-codec-handset" />
+        <path name="route-codec-handset-feedback" />
+        <path name="route-incall-reference" />
+        <ctl name="ABOX Sound Type" value="VOICE" />
+    </path>
+
+    <path name="tty_mode-speaker0">
+        <path name="incall_nb-speaker0" />
+    </path>
+
+    <path name="tty_mode-speaker1">
+        <path name="incall_nb-speaker1" />
+    </path>
+
+    <path name="tty_mode-full-mic">
+        <!-- TTY mode FULL mode MIC -->
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="AOV" />
+        <path name="route-codec-headset-mic" />
+    </path>
+
+    <path name="tty_mode-handset-mic">
+        <!-- TTY mode HCO MIC paths -->
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="AOV" />
+        <path name="route-codec-headset-mic" />
+    </path>
+
+    <path name="tty_mode-hco-mic">
+        <path name="tty_mode-handset-mic" />
+    </path>
+
+    <path name="tty_mode-vco-mic">
+        <!-- TTY mode VCO MIC paths -->
+        <ctl name="ABOX ERAP info FM Radio On" value="0" />
+        <ctl name="ABOX PCM ext VPCMIN ON" value="0" />
+        <path name="route-cp-tx" />
+        <path name="route-loop-record" />
+        <path name="AOV" />
+        <path name="route-codec-main-mic-L" />
+    </path>
+
+  <!-- media gain controls for each path -->
+    <!-- Play paths gain controls -->
+    <path name="gain-media-handset">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-media-speaker0">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_music_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media-speaker1">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_music_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media-headset">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="104 104" />
+    </path>
+
+    <path name="gain-media-headset-fm">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="114 114" />
+    </path>
+
+    <path name="gain-media-speaker0-headset">
+        <path name="gain-media-speaker0" />
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media-speaker1-headset">
+        <path name="gain-media-speaker1" />
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media-bt-sco-headset">
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media-headphone">
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media-lineout">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="124 124" />
+    </path>
+
+    <path name="gain-media-speaker0-headphone">
+        <path name="gain-media-headset" />
+        <path name="gain-media-speaker0" />
+    </path>
+
+    <path name="gain-media-speaker1-headphone">
+        <path name="gain-media-headset" />
+        <path name="gain-media-speaker1" />
+    </path>
+
+    <path name="gain-media-speaker0-lineout">
+        <path name="gain-media-lineout" />
+        <path name="gain-media-speaker0" />
+    </path>
+
+    <path name="gain-media-speaker1-lineout">
+        <path name="gain-media-lineout" />
+        <path name="gain-media-speaker1" />
+    </path>
+
+    <path name="gain-media-speaker0-bt-sco-headset">
+        <path name="gain-media-speaker0" />
+    </path>
+
+    <path name="gain-media-speaker1-bt-sco-headset">
+        <path name="gain-media-speaker1" />
+    </path>
+
+    <path name="gain-media_ringtone-handset">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker0">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_ringtone_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker1">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_ringtone_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media_ringtone-headset">
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker0-headset">
+        <path name="gain-media_ringtone-headset" />
+        <path name="gain-media_ringtone-speaker0" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker1-headset">
+        <path name="gain-media_ringtone-headset" />
+        <path name="gain-media_ringtone-speaker1" />
+    </path>
+
+    <path name="gain-media_ringtone-bt-sco-headset">
+    </path>
+
+    <path name="gain-media_ringtone-headphone">
+        <path name="gain-media_ringtone-headset" />
+    </path>
+
+    <path name="gain-media_ringtone-lineout">
+        <path name="gain-media-lineout" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker0-headphone">
+        <path name="gain-media_ringtone-headset" />
+        <path name="gain-media_ringtone-speaker0" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker1-headphone">
+        <path name="gain-media_ringtone-headset" />
+        <path name="gain-media_ringtone-speaker1" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker0-bt-sco-headset">
+        <path name="gain-media_ringtone-speaker0" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker1-bt-sco-headset">
+        <path name="gain-media_ringtone-speaker1" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker0-lineout">
+        <path name="gain-media_ringtone-lineout" />
+        <path name="gain-media_ringtone-speaker0" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker1-lineout">
+        <path name="gain-media_ringtone-lineout" />
+        <path name="gain-media_ringtone-speaker1" />
+    </path>
+
+    <path name="gain-media_notification-handset">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-media_notification-speaker0">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_notification_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media_notification-speaker1">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_notification_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media_notification-headset">
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-media_notification-speaker0-headset">
+        <path name="gain-media_notification-headset" />
+        <path name="gain-media_notification-speaker0" />
+    </path>
+
+    <path name="gain-media_notification-speaker1-headset">
+        <path name="gain-media_notification-headset" />
+        <path name="gain-media_notification-speaker1" />
+    </path>
+
+    <path name="gain-media_notification-bt-sco-headset">
+        <path name="gain-media_notification-headset" />
+    </path>
+
+    <path name="gain-media_notification-headphone">
+        <path name="gain-media_notification-headset" />
+    </path>
+
+    <path name="gain-media_notification-lineout">
+        <path name="gain-media-lineout" />
+    </path>
+
+    <path name="gain-media_notification-speaker0-headphone">
+        <path name="gain-media_notification-headset" />
+        <path name="gain-media_notification-speaker0" />
+    </path>
+
+    <path name="gain-media_notification-speaker1-headphone">
+        <path name="gain-media_notification-speaker1" />
+    </path>
+
+    <path name="gain-media_notification-speaker0-bt-sco-headset">
+        <path name="gain-media_notification-speaker0" />
+    </path>
+
+    <path name="gain-media_notification-speaker1-bt-sco-headset">
+        <path name="gain-media_notification-speaker1" />
+    </path>
+
+    <path name="gain-media_notification-speaker0-lineout">
+        <path name="gain-media_notification-lineout" />
+        <path name="gain-media_notification-speaker0" />
+    </path>
+
+    <path name="gain-media_notification-speaker1-lineout">
+        <path name="gain-media_notification-lineout" />
+        <path name="gain-media_notification-speaker1" />
+    </path>
+
+    <!-- Capture paths gain controls -->
+    <path name="gain-media-main-mic">
+        <ctl name="IN1L Volume" value="31" />
+        <ctl name="IN1R Volume" value="31" />
+        <ctl name="IN2L Volume" value="31" />
+        <ctl name="IN2R Volume" value="31" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-media-sub-mic">
+        <ctl name="IN1L Volume" value="31" />
+        <ctl name="IN1R Volume" value="31" />
+        <ctl name="IN2L Volume" value="31" />
+        <ctl name="IN2R Volume" value="31" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-media-headset-mic">
+        <ctl name="IN1L Volume" value="31" />
+        <ctl name="IN1R Volume" value="31" />
+        <ctl name="IN2L Volume" value="31" />
+        <ctl name="IN2R Volume" value="31" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-recording-mic">
+        <ctl name="IN1L Volume" value="31"/>
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN2L Volume" value="31"/>
+        <ctl name="IN2L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-recording-mic1">
+        <ctl name="IN1L Volume" value="31"/>
+        <ctl name="IN1L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-recording-mic2">
+        <ctl name="IN2L Volume" value="31"/>
+        <ctl name="IN2L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-recording-2nd-mic">
+        <ctl name="IN2L Volume" value="31"/>
+        <ctl name="IN2L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-camcorder-mic">
+        <ctl name="IN1L Volume" value="12"/>
+        <ctl name="IN1L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-camcorder-2nd-mic">
+        <ctl name="IN2L Volume" value="12"/>
+        <ctl name="IN2L Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-media-bt-sco-mic">
+    </path>
+
+    <path name="gain-media-headphone-mic">
+       <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-media-lineout-mic">
+       <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-recording-headset-mic">
+        <ctl name="IN1R Volume" value="31"/>
+        <ctl name="IN1R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-recording-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-camcorder-dualmic">
+        <ctl name="IN1L Volume" value="9" />
+        <ctl name="IN2L Volume" value="9" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+    </path>
+
+    <!-- recognition input volume -->
+    <path name="gain-recognition-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-recognition-2nd-mic">
+        <path name="gain-media-sub-mic" />
+    </path>
+
+    <path name="gain-recognition-headset-mic">
+        <path name="gain-media-headset-mic" />
+    </path>
+
+    <path name="gain-recognition-headphone-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-recognition-lineout-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-recognition-bt-sco-headset-in">
+    </path>
+
+    <!-- Communication gain controls for each path -->
+    <!-- Play paths gain controls -->
+    <path name="gain-communication-handset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-communication-speaker0">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-speaker1">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-headset">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+    <path name="gain-communication-headphone">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-communication-lineout">
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+    </path>
+
+    <path name="gain-communication-speaker0-headset">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-speaker1-headset">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-speaker0-lineout">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-speaker1-lineout">
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-communication-bt-sco-headset">
+    </path>
+
+    <!-- Capture paths gain controls -->
+
+
+    <path name="gain-communication-headset-mic">
+        <ctl name="IN1L Volume" value="21" />
+        <ctl name="IN1R Volume" value="21" />
+        <ctl name="IN2L Volume" value="21" />
+        <ctl name="IN2R Volume" value="21" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+    <path name="gain-communication-headphone-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+
+    <path name="gain-communication-lineout-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-communication-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-communication-handset-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="134" />
+        <ctl name="IN2R Digital Volume" value="134" />
+    </path>
+
+    <path name="gain-communication-speaker0-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-communication-speaker1-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <!-- voip gain controls for each path -->
+    <!-- Play paths gain controls -->
+    <path name="gain-voip-handset">
+        <path name="gain-media-handset" />
+    </path>
+
+    <path name="gain-voip-speaker0">
+        <path name="gain-media-speaker0" />
+    </path>
+
+    <path name="gain-voip-speaker1">
+        <path name="gain-media-speaker1" />
+    </path>
+
+    <path name="gain-voip-headset">
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-voip-speaker0-headset">
+        <path name="gain-media-speaker0" />
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-voip-speaker1-headset">
+        <path name="gain-media-speaker1" />
+        <path name="gain-media-headset" />
+    </path>
+
+    <path name="gain-voip-bt-sco-headset">
+    </path>
+
+    <!-- Capture paths gain controls -->
+    <path name="gain-voip-main-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-voip-sub-mic">
+        <path name="gain-media-sub-mic" />
+    </path>
+
+    <path name="gain-voip-headset-mic">
+        <path name="gain-media-headset-mic" />
+    </path>
+
+    <path name="gain-voip-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-voip-handset-mic">
+        <ctl name="IN1L Volume" value="32" />
+        <ctl name="IN1R Volume" value="32" />
+        <ctl name="IN2L Volume" value="32" />
+        <ctl name="IN2R Volume" value="32" />
+        <ctl name="IN1L Digital Volume" value="124" />
+        <ctl name="IN1R Digital Volume" value="124" />
+        <ctl name="IN2L Digital Volume" value="124" />
+        <ctl name="IN2R Digital Volume" value="124" />
+    </path>
+
+    <path name="gain-voip-speaker0-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+    <path name="gain-voip-speaker1-mic">
+        <path name="gain-media-main-mic" />
+    </path>
+
+  <!-- Voice Call gain controls for each path -->
+    <!-- Play paths gain controls -->
+    <path name="gain-incall_nb-handset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="136 136" />
+    </path>
+
+    <path name="gain-incall_nb_hac-handset">
+        <!-- Rx paths gain controls -->
+        <path name="gain-incall_nb-handset" />
+    </path>
+
+    <path name="gain-incall_music-handset">
+        <!-- Rx paths gain controls -->
+        <path name="gain-incall_nb-handset" />
+    </path>
+
+    <path name="gain-incall_nb-handset-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-incall_nb_hac-handset-mic">
+        <path name="gain-incall_nb-handset-mic" />
+    </path>
+
+    <path name="gain-incall_music-handset-mic">
+    </path>
+
+    <path name="gain-incall_nb-headset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-incall_nb_hac-headset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+    </path>
+
+    <path name="gain-incall_nb-headset-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="140" />
+        <ctl name="IN1R Digital Volume" value="140" />
+        <ctl name="IN2L Digital Volume" value="140" />
+        <ctl name="IN2R Digital Volume" value="140" />
+    </path>
+
+    <path name="gain-incall_nb_hac-headset-mic">
+        <path name="gain-incall_nb-headset-mic" />
+    </path>
+
+    <path name="gain-incall_nb-headphone">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="128 128" />
+    </path>
+
+    <path name="gain-incall_nb_hac-headphone">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+    </path>
+
+    <path name="gain-incall_nb-lineout">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+    </path>
+
+    <path name="gain-incall_nb_hac-lineout">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="130 130" />
+    </path>
+
+    <path name="gain-incall_nb-headphone-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-incall_nb_hac-headphone-mic">
+        <path name="gain-incall_nb-headphone-mic" />
+    </path>
+
+    <path name="gain-incall_nb-lineout-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-incall_nb_hac-lineout-mic">
+        <path name="gain-incall_nb-lineout-mic" />
+    </path>
+
+    <path name="gain-incall_nb-bt-sco-headset">
+    </path>
+
+    <path name="gain-incall_nb_hac-bt-sco-headset">
+    </path>
+
+    <path name="gain-incall_nb-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-incall_nb_hac-bt-sco-headset-in">
+    </path>
+
+
+    <path name="gain-incall_nb-speaker0">
+        <!-- Tx paths gain controls -->
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_qisheng" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+        <!-- Rx paths gain controls -->
+    </path>
+
+    <path name="gain-incall_nb-speaker1">
+        <!-- Rx paths gain controls -->
+        <ctl name="SPK DSP1 Firmware" value="protectionsp_voice_aac" />
+        <ctl name="SPK PCM Source" value="DSP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-incall_nb_hac-speaker0">
+        <path name="gain-incall_nb-speaker0" />
+    </path>
+
+    <path name="gain-incall_nb_hac-speaker1">
+        <path name="gain-incall_nb-speaker1" />
+    </path>
+
+    <path name="gain-incall_nb-speaker0-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-incall_nb-speaker1-mic">
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="134" />
+        <ctl name="IN1R Digital Volume" value="134" />
+        <ctl name="IN2L Digital Volume" value="148" />
+        <ctl name="IN2R Digital Volume" value="148" />
+    </path>
+
+    <path name="gain-incall_nb_hac-speaker0-mic">
+        <path name="gain-incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="gain-incall_nb_hac-speaker1-mic">
+        <path name="gain-incall_nb-speaker1-mic" />
+    </path>
+
+    <path name="gain-incall_wb-handset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="124 124" />
+    </path>
+
+    <path name="gain-incall_wb_hac-handset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="124 124" />
+    </path>
+
+    <path name="gain-incall_wb-handset-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-incall_wb_hac-handset-mic">
+        <path name="gain-incall_wb-handset-mic" />
+    </path>
+
+    <path name="gain-incall_wb-headset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb_hac-headset">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb-headset-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-incall_wb_hac-headset-mic">
+        <path name="gain-incall_wb-headset-mic" />
+    </path>
+
+    <path name="gain-incall_wb-headphone">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb_hac-headphone">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb-lineout">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb_hac-lineout">
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="106 106" />
+    </path>
+
+    <path name="gain-incall_wb-headphone-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-incall_wb_hac-headphone-mic">
+        <path name="gain-incall_wb-headphone-mic" />
+    </path>
+
+    <path name="gain-incall_wb-lineout-mic">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+    </path>
+
+    <path name="gain-incall_wb_hac-lineout-mic">
+        <path name="gain-incall_wb-lineout-mic" />
+    </path>
+
+    <path name="gain-incall_wb-bt-sco-headset">
+    </path>
+
+    <path name="gain-incall_wb_hac-bt-sco-headset">
+    </path>
+
+    <path name="gain-incall_wb-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-incall_wb_hac-bt-sco-headset-in">
+    </path>
+
+    <path name="gain-incall_wb-speaker0">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="18" />
+        <ctl name="IN1R Volume" value="18" />
+        <ctl name="IN2L Volume" value="18" />
+        <ctl name="IN2R Volume" value="18" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+        <!-- Rx paths gain controls -->
+    </path>
+
+    <path name="gain-incall_wb-speaker1">
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="31" />
+        <ctl name="IN1R Volume" value="31" />
+        <ctl name="IN2L Volume" value="31" />
+        <ctl name="IN2R Volume" value="31" />
+        <ctl name="IN1L Digital Volume" value="128" />
+        <ctl name="IN1R Digital Volume" value="128" />
+        <ctl name="IN2L Digital Volume" value="128" />
+        <ctl name="IN2R Digital Volume" value="128" />
+        <!-- Rx paths gain controls -->
+    </path>
+
+    <path name="gain-incall_wb_hac-speaker0">
+        <path name="gain-incall_wb-speaker0" />
+    </path>
+
+    <path name="gain-incall_wb_hac-speaker1">
+        <path name="gain-incall_wb-speaker1" />
+    </path>
+
+    <path name="gain-incall_wb-speaker0-mic">
+        <path name="gain-incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="gain-incall_wb-speaker1-mic">
+        <path name="gain-incall_nb-speaker1-mic" />
+    </path>
+
+    <path name="gain-incall_wb_hac-speaker0-mic">
+        <path name="gain-incall_nb_hac-speaker0-mic" />
+    </path>
+
+    <path name="gain-incall_wb_hac-speaker1-mic">
+        <path name="gain-incall_nb_hac-speaker1-mic" />
+    </path>
+
+    <!-- tty paths gain controls -->
+    <path name="gain-tty_mode-headset">
+        <!-- TTY mode VCO & FULL mode Playback paths -->
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="25" />
+        <ctl name="IN1R Volume" value="25" />
+        <ctl name="IN2L Volume" value="25" />
+        <ctl name="IN2R Volume" value="25" />
+        <ctl name="IN1L Digital Volume" value="104" />
+        <ctl name="IN1R Digital Volume" value="104" />
+        <ctl name="IN2L Digital Volume" value="104" />
+        <ctl name="IN2R Digital Volume" value="104" />
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="25" />
+        <ctl name="HPOUT1R Input 1 Volume" value="25" />
+        <ctl name="HPOUT1 Digital Volume" value="110 110" />
+    </path>
+
+    <!-- FM Radio Playback paths gain control -->
+    <path name="gain-fm_radio-speaker0">
+        <path name="gain-media-speaker0" />
+    </path>
+
+    <path name="gain-fm_radio-speaker1">
+        <path name="gain-media-speaker1" />
+    </path>
+
+    <path name="gain-fm_radio-headphone">
+        <path name="gain-media-headset-fm" />
+    </path>
+
+    <path name="gain-fm_radio-headset">
+        <path name="gain-media-headset-fm" />
+    </path>
+
+    <path name="gain-fm_radio-lineout">
+        <path name="gain-media-lineout" />
+    </path>
+
+    <path name="gain-tty_mode-full-mic">
+        <!-- TTY mode FULL mode MIC -->
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="25" />
+        <ctl name="IN1R Volume" value="25" />
+        <ctl name="IN2L Volume" value="25" />
+        <ctl name="IN2R Volume" value="25" />
+        <ctl name="IN1L Digital Volume" value="104" />
+        <ctl name="IN1R Digital Volume" value="104" />
+        <ctl name="IN2L Digital Volume" value="104" />
+        <ctl name="IN2R Digital Volume" value="104" />
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="25" />
+        <ctl name="HPOUT1R Input 1 Volume" value="25" />
+        <ctl name="HPOUT1 Digital Volume" value="110 110" />
+    </path>
+
+    <path name="gain-tty_mode-handset">
+        <!-- TTY mode HCO mode Playback paths -->
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="25" />
+        <ctl name="IN1R Volume" value="25" />
+        <ctl name="IN2L Volume" value="25" />
+        <ctl name="IN2R Volume" value="25" />
+        <ctl name="IN1L Digital Volume" value="104" />
+        <ctl name="IN1R Digital Volume" value="104" />
+        <ctl name="IN2L Digital Volume" value="104" />
+        <ctl name="IN2R Digital Volume" value="104" />
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="110 110" />
+    </path>
+
+    <path name="gain-tty_mode-speaker0">
+        <path name="gain-incall_nb-speaker0" />
+    </path>
+
+    <path name="gain-tty_mode-speaker1">
+        <path name="gain-incall_nb-speaker1" />
+    </path>
+
+    <path name="gain-tty_mode-handset-mic">
+        <!-- TTY mode HCO MIC paths -->
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="25" />
+        <ctl name="IN1R Volume" value="25" />
+        <ctl name="IN2L Volume" value="25" />
+        <ctl name="IN2R Volume" value="25" />
+        <ctl name="IN1L Digital Volume" value="104" />
+        <ctl name="IN1R Digital Volume" value="104" />
+        <ctl name="IN2L Digital Volume" value="104" />
+        <ctl name="IN2R Digital Volume" value="104" />
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="110 110" />
+    </path>
+
+    <path name="gain-tty_mode-hco-mic">
+        <path name="gain-tty_mode-handset-mic" />
+    </path>
+
+    <path name="gain-tty_mode-vco-mic">
+        <!-- TTY mode VCO MIC paths -->
+        <!-- Tx paths gain controls -->
+        <ctl name="IN1L Volume" value="25" />
+        <ctl name="IN1R Volume" value="25" />
+        <ctl name="IN2L Volume" value="25" />
+        <ctl name="IN2R Volume" value="25" />
+        <ctl name="IN1L Digital Volume" value="104" />
+        <ctl name="IN1R Digital Volume" value="104" />
+        <ctl name="IN2L Digital Volume" value="104" />
+        <ctl name="IN2R Digital Volume" value="104" />
+        <!-- Rx paths gain controls -->
+        <ctl name="HPOUT1L Input 1 Volume" value="32" />
+        <ctl name="HPOUT1R Input 1 Volume" value="32" />
+        <ctl name="HPOUT1 Digital Volume" value="110 110" />
+    </path>
+
+    <path name="gain-incall_music-handset">
+        <path name="gain-incall_nb-handset" />
+    </path>
+
+    <path name="gain-incall_music_hac-handset">
+        <path name="gain-incall_music-handset" />
+    </path>
+
+    <path name="gain-incall_music-speaker0">
+        <path name="gain-incall_nb-speaker0" />
+    </path>
+
+    <path name="gain-incall_music-speaker1">
+        <path name="gain-incall_nb-speaker1" />
+    </path>
+
+    <path name="gain-incall_music_hac-speaker0">
+        <path name="gain-incall_music-speaker0" />
+    </path>
+
+    <path name="gain-incall_music_hac-speaker1">
+        <path name="gain-incall_music-speaker1" />
+    </path>
+
+    <path name="gain-incall_music-headset">
+        <path name="gain-incall_nb-headset" />
+    </path>
+
+    <path name="gain-incall_music_hac-headset">
+        <path name="gain-incall_music-headset" />
+    </path>
+
+    <path name="gain-incall_music-headphone">
+        <path name="gain-incall_music-headset" />
+    </path>
+
+    <path name="gain-incall_music_hac-headphone">
+        <path name="gain-incall_music-headset" />
+    </path>
+
+    <path name="gain-incall_music-lineout">
+        <path name="gain-incall_nb-lineout" />
+    </path>
+
+    <path name="gain-incall_music_hac-lineout">
+        <path name="gain-incall_music-lineout" />
+    </path>
+
+    <path name="gain-incall_music-bt-sco-headset">
+        <path name="gain-incall_nb-bt-sco-headset" />
+    </path>
+
+    <path name="gain-incall_music_hac-bt-sco-headset">
+        <path name="gain-incall_music-bt-sco-headset" />
+    </path>
+
+    <path name="gain-incall_music-handset-mic">
+        <path name="gain-incall_nb-handset-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-handset-mic">
+        <path name="gain-incall_music-handset-mic" />
+    </path>
+
+    <path name="gain-incall_music-headphone-mic">
+        <path name="gain-incall_nb-headphone-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-headphone-mic">
+        <path name="gain-incall_music-headphone-mic" />
+    </path>
+
+    <path name="gain-incall_music-lineout-mic">
+        <path name="gain-incall_nb-lineout-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-lineout-mic">
+        <path name="gain-incall_music-lineout-mic" />
+    </path>
+
+    <path name="gain-incall_music-speaker0-mic">
+        <path name="gain-incall_nb-speaker0-mic" />
+    </path>
+
+    <path name="gain-incall_music-speaker1-mic">
+        <path name="gain-incall_nb-speaker1-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-speaker0-mic">
+        <path name="gain-incall_music-speaker0-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-speaker1-mic">
+        <path name="gain-incall_music-speaker1-mic" />
+    </path>
+
+    <path name="gain-incall_music-headset-mic">
+        <path name="gain-incall_nb-headset-mic" />
+    </path>
+
+    <path name="gain-incall_music_hac-headset-mic">
+        <path name="gain-incall_music-headset-mic" />
+    </path>
+
+    <path name="gain-incall_music-bt-sco-headset-in">
+        <path name="gain-incall_nb-bt-sco-headset-in" />
+    </path>
+
+    <path name="gain-incall_music_hac-bt-sco-headset-in">
+        <path name="gain-incall_music-bt-sco-headset-in" />
+    </path>
+
+    <path name="media-speaker-ar">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+    </path>
+
+    <path name="media_ringtone-speaker-ar">
+        <path name="route-playback" />
+        <path name="route-codec-speaker" />
+    </path>
+
+    <path name="gain-media-speaker-ar">
+        <ctl name="SPK PCM Source" value="ASP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+
+    <path name="gain-media_ringtone-speaker-ar">
+        <ctl name="SPK PCM Source" value="ASP" />
+        <ctl name="AIF2TX1 Input 1 Volume" value="32" />
+        <ctl name="AIF2TX2 Input 1 Volume" value="32" />
+        <ctl name="SPK AMP PCM Gain" value="17" />
+        <ctl name="SPK AMP Enable Switch" value="1" />
+    </path>
+</mixer>
diff --git a/configs/audio/r_submix_audio_policy_configuration.xml b/configs/audio/r_submix_audio_policy_configuration.xml
new file mode 100644 (file)
index 0000000..dc2a5ec
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+-->
+<!-- Remote Submix Audio Policy Configuration file -->
+<module name="r_submix" halVersion="2.0">
+    <attachedDevices>
+        <item>Remote Submix In</item>
+    </attachedDevices>
+    <mixPorts>
+        <mixPort name="r_submix output" role="source">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </mixPort>
+        <mixPort name="r_submix input" role="sink">
+           <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                    samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+        </mixPort>
+   </mixPorts>
+   <devicePorts>
+       <devicePort tagName="Remote Submix Out" type="AUDIO_DEVICE_OUT_REMOTE_SUBMIX"  role="sink">
+           <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                    samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+       </devicePort>
+       <devicePort tagName="Remote Submix In" type="AUDIO_DEVICE_IN_REMOTE_SUBMIX"  role="source">
+           <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                    samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+        </devicePort>
+    </devicePorts>
+    <routes>
+        <route type="mix" sink="Remote Submix Out"
+               sources="r_submix output"/>
+        <route type="mix" sink="r_submix input"
+               sources="Remote Submix In"/>
+    </routes>
+</module>
diff --git a/configs/audio/usb_audio_policy_configuration.xml b/configs/audio/usb_audio_policy_configuration.xml
new file mode 100644 (file)
index 0000000..a487ecb
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+-->
+<!-- USB Audio HAL Audio Policy Configuration file -->
+
+<module name="usb" halVersion="2.0">
+    <mixPorts>
+        <mixPort name="usb_accessory output" role="source">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </mixPort>
+        <mixPort name="usb_device output" role="source"/>
+        <mixPort name="usb_device input" role="sink"/>
+    </mixPorts>
+    <devicePorts>
+        <devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </devicePort>
+        <devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink"/>
+        <devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink"/>
+        <devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source"/>
+        <devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source"/>
+    </devicePorts>
+    <routes>
+        <route type="mix" sink="USB Host Out"
+               sources="usb_accessory output"/>
+        <route type="mix" sink="USB Device Out"
+               sources="usb_device output"/>
+        <route type="mix" sink="USB Headset Out"
+               sources="usb_device output"/>
+        <route type="mix" sink="usb_device input"
+               sources="USB Device In,USB Headset In"/>
+    </routes>
+</module>
diff --git a/configs/gps/gps.cfg b/configs/gps/gps.cfg
new file mode 100644 (file)
index 0000000..1ffdf3e
--- /dev/null
@@ -0,0 +1,87 @@
+############################################
+#debug_enable=1
+GlueLayer_ToolConfigSelection=2
+#user_ports_tcp_name=Autotest
+#user_ports_tcp_port=7555
+PosReq_Supl2Params_SuplNiUdpPort=7275
+Agnss_SuplUseCpNi=1
+debug_console=1
+debug_device=1
+############################################
+Sif_UseFwXtraInterface=0
+GlueLayer_YearOfHW=2019
+gf_enabled=0
+notifResponsivenessMs=20000
+firmware_run_flags=0x28
+
+LocTech_Constraints=0x2f
+
+GlueLayer_IsGedKeyExist=1
+
+Agnss_SuplUseApn=1
+Agnss_SuplUseApnNi=0
+Agnss_SuplUseFwDns=0
+
+#Support A-GPS only in CP/UP
+GlueLayer_IsCpGloAidingEnable=0
+Agnss_IsGloAidingEnable=0
+Agnss_IsGalAidingEnable=0
+Agnss_IsBdsAidingEnable=0
+
+CP_LocTech_PrimaryConst=0
+CP_LocTech_Constraints=1
+CP_LocTech_Requirements=0
+GlueLayer_LtsTimeGuard=1
+
+RfPathLossDb_Ap=0
+RfPathLossDb_Cp=5
+
+#enabled IP2 cal with custom settings
+# [6:2]: 19 AGC gain fixed value during ip2 cal
+# [12:7]: 0 RF Cal bypass value. 0 for invalid
+# [14:13]: 0 RO_COUPLING
+# [16:15]: 0 MIX_LO_CM_SEL
+# [19:17]: 5 MIX_IF_GM_TRIM
+# [21:20]: 0 IP2_DAC_STEP
+# [23:22]: 0 IP2_DAC_CONFIG
+# [27:24]: 7 IP2_ACC_LENGTH
+# [28]: 1 Use IP2 Cal override configuration
+
+Chip_Configuration_ChipCfgIp2Cal= 0x170A004C
+scheduling_enabled=1
+
+# force insample mode and sample rate
+Chip_Configuration_IspTestConfig=0x28242C22
+
+GlueLayer_IsCDMACpEnable=1
+
+# To Enable LPP without LPPe
+GlueLayer_IsLPPCpBitmask=7
+GlueLayer_IsCpLPPeEnable=0
+
+SETCaps_IsOtdoa=1
+
+#########
+### uncomment line below for lab testing
+#Sif_OperationMode=0
+#GlueLayer_isForceIPV6=1
+Agnss_ShaVariant=256
+Agnss_TlsVariant=1
+#Agnss_ServerAddress=slp.rs.de
+#Agnss_IsCertiCheckBypass=1
+SETCaps_IsLpp=1
+#GlueLayer_IsMOReqIgnored=1
+
+UP_LocTech_PrimaryConst=0
+UP_LocTech_Constraints=1
+UP_LocTech_Requirements=0
+#StartupConfiguration_StartMode=4
+GlueLayer_IsSlpIpCachingEnable=0
+Chip_Configuration_AidingConfiguration=0x0002004F
+
+SETCaps_SuplUT1=11
+SETCaps_SuplUT2=11
+SETCaps_SuplUT3=11
+
+#3G_CP_SETCaps_IsMSA=0
+#4G_CP_SETCaps_IsMSA=0
diff --git a/configs/media/media_codecs.xml b/configs/media/media_codecs.xml
new file mode 100644 (file)
index 0000000..d7a31b5
--- /dev/null
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<!--
+<!DOCTYPE MediaCodecs [
+<!ELEMENT Include EMPTY>
+<!ATTLIST Include href CDATA #REQUIRED>
+<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
+<!ELEMENT Decoders (MediaCodec|Include)*>
+<!ELEMENT Encoders (MediaCodec|Include)*>
+<!ELEMENT MediaCodec (Type|Quirk|Include)*>
+<!ATTLIST MediaCodec name CDATA #REQUIRED>
+<!ATTLIST MediaCodec type CDATA>
+<!ELEMENT Type EMPTY>
+<!ATTLIST Type name CDATA #REQUIRED>
+<!ELEMENT Quirk EMPTY>
+<!ATTLIST Quirk name CDATA #REQUIRED>
+]>
+
+There's a simple and a complex syntax to declare the availability of a
+media codec:
+
+A codec that properly follows the OpenMax spec and therefore doesn't have any
+quirks and that only supports a single content type can be declared like so:
+
+    <MediaCodec name="OMX.foo.bar" type="something/interesting" />
+
+If a codec has quirks OR supports multiple content types, the following syntax
+can be used:
+
+    <MediaCodec name="OMX.foo.bar" >
+        <Type name="something/interesting" />
+        <Type name="something/else" />
+        ...
+        <Quirk name="requires-allocate-on-input-ports" />
+        <Quirk name="requires-allocate-on-output-ports" />
+        <Quirk name="output-buffers-are-unreadable" />
+    </MediaCodec>
+
+Only the three quirks included above are recognized at this point:
+
+"requires-allocate-on-input-ports"
+    must be advertised if the component does not properly support specification
+    of input buffers using the OMX_UseBuffer(...) API but instead requires
+    OMX_AllocateBuffer to be used.
+
+"requires-allocate-on-output-ports"
+    must be advertised if the component does not properly support specification
+    of output buffers using the OMX_UseBuffer(...) API but instead requires
+    OMX_AllocateBuffer to be used.
+
+"output-buffers-are-unreadable"
+    must be advertised if the emitted output buffers of a decoder component
+    are not readable, i.e. use a custom format even though abusing one of
+    the official OMX colorspace constants.
+    Clients of such decoders will not be able to access the decoded data,
+    naturally making the component much less useful. The only use for
+    a component with this quirk is to render the output to the screen.
+    Audio decoders MUST NOT advertise this quirk.
+    Video decoders that advertise this quirk must be accompanied by a
+    corresponding color space converter for thumbnail extraction,
+    matching surfaceflinger support that can render the custom format to
+    a texture and possibly other code, so just DON'T USE THIS QUIRK.
+
+-->
+
+<MediaCodecs>
+    <Include href="media_codecs_google_audio.xml" />
+    <Include href="media_codecs_google_telephony.xml" />
+    <Settings>
+        <Setting name="supports-multiple-secure-codecs" value="true" />
+        <Setting name="supports-secure-with-non-secure-codec" value="true" />
+        <Setting name="max-video-encoder-input-buffers" value="9" />
+    </Settings>
+    <Decoders>
+        <MediaCodec name="OMX.Exynos.MPEG4.Decoder" type="video/mp4v-es" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="32x32" max="2048x2048" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="979200" />
+            <Limit name="bitrate" range="1-80000000" />
+            <Limit name="performance-point-1920x1080" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.H263.Decoder" type="video/3gpp" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="32x32" max="2048x1152" />
+            <Limit name="alignment" value="4x4" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="979200" />
+            <Limit name="bitrate" range="1-80000000" />
+            <Limit name="performance-point-1920x1080" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.AVC.Decoder" type="video/avc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="32x32" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="3888000" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.AVC.Decoder.secure" type="video/avc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="32x32" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="3888000" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="2" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.VP8.Decoder" type="video/x-vnd.on2.vp8" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="32x32" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="3888000" />
+            <Limit name="bitrate" range="1-80000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.HEVC.Decoder" type="video/hevc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="64x64" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="3888000" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.HEVC.Decoder.secure" type="video/hevc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="64x64" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="3888000" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="2" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.VP9.Decoder" type="video/x-vnd.on2.vp9" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="64x64" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="64x64" />
+            <Limit name="blocks-per-second" min="1" max="243000" />
+            <Limit name="bitrate" range="1-80000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.VP9.Decoder.secure" type="video/x-vnd.on2.vp9" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="64x64" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="64x64" />
+            <Limit name="blocks-per-second" min="1" max="243000" />
+            <Limit name="bitrate" range="1-80000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="2" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+        </MediaCodec>
+    </Decoders>
+
+    <Encoders>
+        <MediaCodec name="OMX.Exynos.AVC.Encoder" type="video/avc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="32x32" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="3888000" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.H263.Encoder" type="video/3gpp" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="32x32" max="2048x1152" />
+            <Limit name="alignment" value="4x4" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="979200" />
+            <Limit name="bitrate" range="1-80000000" />
+            <Limit name="performance-point-1920x1080" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.MPEG4.Encoder" type="video/mp4v-es" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="32x32" max="2048x2048" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="979200" />
+            <Limit name="bitrate" range="1-80000000" />
+            <Limit name="performance-point-1920x1080" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.VP8.Encoder" type="video/x-vnd.on2.vp8" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="32x32" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="3888000" />
+            <Limit name="bitrate" range="1-80000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.HEVC.Encoder" type="video/hevc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="64x64" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="32x32" />
+            <Limit name="blocks-per-second" min="1" max="979200" />
+            <Limit name="bitrate" range="1-120000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.VP9.Encoder" type="video/x-vnd.on2.vp9" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="size" min="64x64" max="3840x2160" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="64x64" />
+            <Limit name="blocks-per-second" min="1" max="243000" />
+            <Limit name="bitrate" range="1-80000000" />
+            <Limit name="performance-point-3840x2160" range="120" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+    </Encoders>
+    <Include href="media_codecs_google_video.xml" />
+    <Include href="media_codecs_dolby_audio.xml" />
+</MediaCodecs>
diff --git a/configs/media/media_codecs_dolby_audio.xml b/configs/media/media_codecs_dolby_audio.xml
new file mode 100644 (file)
index 0000000..1235428
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Copyright 2016 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.
+
+     This file was modified by Dolby Laboratories, Inc. The portions of the
+     code that are surrounded by "DOLBY..." are copyrighted and
+     licensed separately, as follows:
+
+     (C) 2018 Dolby Laboratories, Inc.
+     All rights reserved.
+
+     This program is protected under international and U.S. Copyright laws as
+     an unpublished work. This program is confidential and proprietary to the
+     copyright owners. Reproduction or disclosure, in whole or in part, or the
+     production of derivative works therefrom without the express permission of
+     the copyright owners is prohibited.
+-->
+
+<Included>
+    <Decoders>
+        <!-- DOLBY_UDC -->
+        <MediaCodec name="OMX.dolby.ac3.decoder" type="audio/ac3">
+            <Limit name="channel-count" max="6" />
+            <Limit name="sample-rate" ranges="32000,44100,48000" />
+            <Limit name="bitrate" range="32000-640000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.dolby.eac3.decoder" type="audio/eac3">
+            <Limit name="channel-count" max="8" />
+            <Limit name="sample-rate" ranges="32000,44100,48000" />
+            <Limit name="bitrate" range="32000-6144000" />
+        </MediaCodec>
+        <!-- DOLBY_UDC END -->
+    </Decoders>
+</Included>
diff --git a/configs/media/media_codecs_google_audio.xml b/configs/media/media_codecs_google_audio.xml
new file mode 100644 (file)
index 0000000..8899adc
--- /dev/null
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<Included>
+    <Decoders>
+        <MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg">
+            <Limit name="channel-count" max="2" />
+            <Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
+            <Limit name="bitrate" range="8000-320000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp">
+            <Limit name="channel-count" max="1" />
+            <Limit name="sample-rate" ranges="8000" />
+            <Limit name="bitrate" range="4750-12200" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb">
+            <Limit name="channel-count" max="1" />
+            <Limit name="sample-rate" ranges="16000" />
+            <Limit name="bitrate" range="6600-23850" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm">
+            <Limit name="channel-count" max="8" />
+            <Limit name="sample-rate" ranges="7350,8000,11025,12000,16000,22050,24000,32000,44100,48000" />
+            <Limit name="bitrate" range="8000-960000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw">
+            <Limit name="channel-count" max="1" />
+            <Limit name="sample-rate" ranges="8000-48000" />
+            <Limit name="bitrate" range="64000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw">
+            <Limit name="channel-count" max="1" />
+            <Limit name="sample-rate" ranges="8000-48000" />
+            <Limit name="bitrate" range="64000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis">
+            <Limit name="channel-count" max="8" />
+            <Limit name="sample-rate" ranges="8000-96000" />
+            <Limit name="bitrate" range="32000-500000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.opus.decoder" type="audio/opus">
+            <Limit name="channel-count" max="8" />
+            <Limit name="sample-rate" ranges="48000" />
+            <Limit name="bitrate" range="6000-510000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.raw.decoder" type="audio/raw">
+            <Limit name="channel-count" max="8" />
+            <Limit name="sample-rate" ranges="8000-192000" />
+            <Limit name="bitrate" range="1-10000000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.flac.decoder" type="audio/flac">
+            <Limit name="channel-count" max="8" />
+            <Limit name="sample-rate" ranges="1-655350" />
+            <Limit name="bitrate" range="1-21000000" />
+        </MediaCodec>
+    </Decoders>
+    <Encoders>
+        <MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm">
+            <Limit name="channel-count" max="6" />
+            <Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
+            <!-- also may support 64000, 88200  and 96000 Hz -->
+            <Limit name="bitrate" range="8000-960000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp">
+            <Limit name="channel-count" max="1" />
+            <Limit name="sample-rate" ranges="8000" />
+            <Limit name="bitrate" range="4750-12200" />
+            <Feature name="bitrate-modes" value="CBR" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb">
+            <Limit name="channel-count" max="1" />
+            <Limit name="sample-rate" ranges="16000" />
+            <Limit name="bitrate" range="6600-23850" />
+            <Feature name="bitrate-modes" value="CBR" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.flac.encoder" type="audio/flac">
+            <Limit name="channel-count" max="2" />
+            <Limit name="sample-rate" ranges="1-655350" />
+            <Limit name="bitrate" range="1-21000000" />
+            <Limit name="complexity" range="0-8"  default="5" />
+            <Feature name="bitrate-modes" value="CQ" />
+        </MediaCodec>
+    </Encoders>
+</Included>
diff --git a/configs/media/media_codecs_google_telephony.xml b/configs/media/media_codecs_google_telephony.xml
new file mode 100644 (file)
index 0000000..5ad90d9
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<Included>
+    <Decoders>
+        <MediaCodec name="OMX.google.gsm.decoder" type="audio/gsm">
+            <Limit name="channel-count" max="1" />
+            <Limit name="sample-rate" ranges="8000" />
+            <Limit name="bitrate" range="13000" />
+        </MediaCodec>
+    </Decoders>
+</Included>
diff --git a/configs/media/media_codecs_google_video.xml b/configs/media/media_codecs_google_video.xml
new file mode 100644 (file)
index 0000000..829f403
--- /dev/null
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<Included>
+    <Decoders>
+        <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es">
+            <!-- profiles and levels:  ProfileSimple : Level3 -->
+            <Limit name="size" min="2x2" max="352x288" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" range="12-11880" />
+            <Limit name="bitrate" range="1-384000" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp">
+            <!-- profiles and levels:  ProfileBaseline : Level30, ProfileBaseline : Level45
+                    ProfileISWV2 : Level30, ProfileISWV2 : Level45 -->
+            <Limit name="size" min="2x2" max="352x288" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="bitrate" range="1-384000" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.h264.decoder" type="video/avc">
+            <!-- profiles and levels:  ProfileHigh : Level52 -->
+            <Limit name="size" min="2x2" max="4080x4080" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="block-count" range="1-32768" /> <!-- max 4096x2048 equivalent -->
+            <Limit name="blocks-per-second" range="1-1966080" />
+            <Limit name="bitrate" range="1-48000000" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.hevc.decoder" type="video/hevc">
+            <!-- profiles and levels:  ProfileMain : MainTierLevel51 -->
+            <Limit name="size" min="2x2" max="4096x4096" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="8x8" />
+            <Limit name="block-count" range="1-196608" /> <!-- max 4096x3072 -->
+            <Limit name="blocks-per-second" range="1-2000000" />
+            <Limit name="bitrate" range="1-10000000" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8">
+            <Limit name="size" min="2x2" max="2048x2048" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="block-count" range="1-16384" />
+            <Limit name="blocks-per-second" range="1-1000000" />
+            <Limit name="bitrate" range="1-40000000" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9">
+            <Limit name="size" min="2x2" max="2048x2048" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="block-count" range="1-16384" />
+            <Limit name="blocks-per-second" range="1-500000" />
+            <Limit name="bitrate" range="1-40000000" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+    </Decoders>
+
+    <Encoders>
+        <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp">
+            <!-- profiles and levels:  ProfileBaseline : Level45 -->
+            <Limit name="size" min="176x144" max="176x144" />
+            <Limit name="alignment" value="16x16" />
+            <Limit name="bitrate" range="1-128000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.h264.encoder" type="video/avc">
+            <!-- profiles and levels:  ProfileBaseline : Level41 -->
+            <Limit name="size" min="16x16" max="2048x2048" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="block-count" range="1-8192" /> <!-- max 2048x1024 -->
+            <Limit name="blocks-per-second" range="1-245760" />
+            <Limit name="bitrate" range="1-12000000" />
+            <Feature name="intra-refresh" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es">
+            <!-- profiles and levels:  ProfileCore : Level2 -->
+            <Limit name="size" min="16x16" max="176x144" />
+            <Limit name="alignment" value="16x16" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" range="12-1485" />
+            <Limit name="bitrate" range="1-64000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8">
+            <!-- profiles and levels:  ProfileMain : Level_Version0-3 -->
+            <Limit name="size" min="2x2" max="2048x2048" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <!-- 2016 devices can encode at about 10fps at this block count -->
+            <Limit name="block-count" range="1-16384" />
+            <Limit name="bitrate" range="1-40000000" />
+            <Feature name="bitrate-modes" value="VBR,CBR" />
+        </MediaCodec>
+        <MediaCodec name="OMX.google.vp9.encoder" type="video/x-vnd.on2.vp9">
+            <!-- profiles and levels:  ProfileMain : Level_Version0-3 -->
+            <Limit name="size" min="2x2" max="2048x2048" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <!-- 2016 devices can encode at about 8fps at this block count -->
+            <Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
+            <Limit name="bitrate" range="1-40000000" />
+            <Feature name="bitrate-modes" value="VBR,CBR" />
+        </MediaCodec>
+    </Encoders>
+</Included>
diff --git a/configs/media/media_codecs_performance.xml b/configs/media/media_codecs_performance.xml
new file mode 100644 (file)
index 0000000..ecba9be
--- /dev/null
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Copyright 2016 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.
+-->
+
+<MediaCodecs>
+    <Encoders>
+        <MediaCodec name="OMX.Exynos.H263.Encoder" type="video/3gpp" update="true">
+            <Limit name="measured-frame-rate-176x144" range="237-527" /> <!-- N=22 v90%=1.1 -->
+            <Limit name="measured-frame-rate-352x288" range="169-169" /> <!-- N=22 v90%=1.1 -->
+            <Limit name="measured-frame-rate-704x576" range="102-103" /> <!-- N=22 v90%=1.1 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.AVC.Encoder" type="video/avc" update="true">
+            <Limit name="measured-frame-rate-320x240" range="189-198" /> <!-- N=22 v90%=1.2 -->
+            <Limit name="measured-frame-rate-720x480" range="106-106" /> <!-- N=22 v90%=1.1 -->
+            <Limit name="measured-frame-rate-1280x720" range="65-175" /> <!-- N=22 v90%=1.1 -->
+            <Limit name="measured-frame-rate-1920x1080" range="64-64" /> <!-- N=22 v90%=1.5 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.HEVC.Encoder" type="video/hevc" update="true">
+            <Limit name="measured-frame-rate-320x240" range="186-436" /> <!-- N=22 v90%=1.1 -->
+            <Limit name="measured-frame-rate-720x480" range="111-119" /> <!-- N=22 v90%=1.1 -->
+            <!-- measured 90%:63-84 med:66 SLOW -->
+            <Limit name="measured-frame-rate-1280x720" range="65-169" /> <!-- N=22 v90%=1.2 -->
+            <Limit name="measured-frame-rate-1920x1080" range="66-66" /> <!-- N=22 v90%=1.5 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.MPEG4.Encoder" type="video/mp4v-es" update="true">
+            <!-- measured 90%:220-388 med:241 SLOW -->
+            <Limit name="measured-frame-rate-176x144" range="240-292" /> <!-- N=22 v90%=1.3 -->
+            <Limit name="measured-frame-rate-352x288" range="176-185" /> <!-- N=22 v90%=1.2 -->
+            <Limit name="measured-frame-rate-640x480" range="116-116" /> <!-- N=22 v90%=1.1 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.VP8.Encoder" type="video/x-vnd.on2.vp8" update="true">
+            <Limit name="measured-frame-rate-320x180" range="205-222" /> <!-- N=22 v90%=1.2 -->
+            <Limit name="measured-frame-rate-640x360" range="120-120" /> <!-- N=22 v90%=1.3 -->
+            <Limit name="measured-frame-rate-1280x720" range="63-67" /> <!-- N=22 v90%=1.1 -->
+            <Limit name="measured-frame-rate-1920x1080" range="55-60" /> <!-- N=22 v90%=1.4 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.VP9.Encoder" type="video/x-vnd.on2.vp9" update="true">
+            <Limit name="measured-frame-rate-320x180" range="205-214" /> <!-- N=22 v90%=1.2 -->
+            <Limit name="measured-frame-rate-640x360" range="133-133" /> <!-- N=22 v90%=1.1 -->
+            <!-- measured 90%:61-84 med:64 SLOW -->
+            <Limit name="measured-frame-rate-1280x720" range="64-72" /> <!-- N=22 v90%=1.2 -->
+            <Limit name="measured-frame-rate-1920x1080" range="44-120" /> <!-- N=22 v90%=1.2 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
+            <Limit name="measured-frame-rate-176x144" range="143-144" /> <!-- N=22 v90%=1.0 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
+            <Limit name="measured-frame-rate-320x240" range="145-154" /> <!-- N=22 v90%=1.1 -->
+            <Limit name="measured-frame-rate-720x480" range="77-77" /> <!-- N=22 v90%=1.0 -->
+            <Limit name="measured-frame-rate-1280x720" range="36-36" /> <!-- N=22 v90%=1.0 -->
+            <Limit name="measured-frame-rate-1920x1080" range="19-55" /> <!-- N=22 v90%=1.0 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
+            <Limit name="measured-frame-rate-176x144" range="131-131" /> <!-- N=22 v90%=1.1 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
+            <Limit name="measured-frame-rate-320x180" range="39-40" /> <!-- N=22 v90%=1.0 -->
+            <Limit name="measured-frame-rate-640x360" range="35-36" /> <!-- N=22 v90%=1.0 -->
+            <Limit name="measured-frame-rate-1280x720" range="26-26" /> <!-- N=22 v90%=1.0 -->
+            <Limit name="measured-frame-rate-1920x1080" range="9-10" /> <!-- N=22 v90%=1.0 -->
+        </MediaCodec>
+    </Encoders>
+    <Decoders>
+        <MediaCodec name="OMX.Exynos.H263.Decoder" type="video/3gpp" update="true">
+            <!-- measured 90%:284-490 med:373 N=18 -->
+            <Limit name="measured-frame-rate-176x144" range="587-1219" /> <!-- v90%=1.3 -->
+            <!-- measured 90%:283-478 med:401 N=18 -->
+            <Limit name="measured-frame-rate-352x288" range="539-546" /> <!-- v90%=1.3 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.AVC.Decoder" type="video/avc" update="true">
+            <!-- measured 90%:314-479 med:430 N=18 -->
+            <Limit name="measured-frame-rate-320x240" range="544-1250" /> <!-- v90%=1.2 -->
+            <!-- measured 90%:345-422 med:395 N=18 -->
+            <Limit name="measured-frame-rate-720x480" range="508-860" /> <!-- v90%=1.1 -->
+            <!-- measured 90%:434-566 med:508 N=18 -->
+            <Limit name="measured-frame-rate-1280x720" range="495-495" /> <!-- v90%=1.1 -->
+            <!-- measured 90%:289-307 med:301 N=18 -->
+            <Limit name="measured-frame-rate-1920x1088" range="302-397" /> <!-- v90%=1.0 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.HEVC.Decoder" type="video/hevc" update="true">
+            <!-- measured 90%:285-509 med:421 N=18 -->
+            <Limit name="measured-frame-rate-352x288" range="381-1270" /> <!-- v90%=1.3 -->
+            <!-- measured 90%:326-479 med:429 N=18 -->
+            <Limit name="measured-frame-rate-640x360" range="395-1500" /> <!-- v90%=1.2 -->
+            <!-- measured 90%:292-484 med:400 N=18 -->
+            <Limit name="measured-frame-rate-720x480" range="376-1040" /> <!-- v90%=1.3 -->
+            <!-- measured 90%:452-585 med:512 N=18 -->
+            <Limit name="measured-frame-rate-1280x720" range="512-515" /> <!-- v90%=1.1 -->
+            <!-- measured 90%:393-463 med:436 N=18 -->
+            <Limit name="measured-frame-rate-1920x1080" range="426-426" /> <!-- v90%=1.1 -->
+            <!-- measured 90%:127-133 med:131 N=18 -->
+            <Limit name="measured-frame-rate-3840x2160" range="130-130" /> <!-- v90%=1.0 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.MPEG4.Decoder" type="video/mp4v-es" update="true">
+            <!-- measured 90%:253-473 med:412 N=18 -->
+            <Limit name="measured-frame-rate-176x144" range="346-557" /> <!-- v90%=1.4 -->
+            <!-- measured 90%:271-303 med:292 N=18 -->
+            <Limit name="measured-frame-rate-480x360" range="286-316" /> <!-- v90%=1.1 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.VP8.Decoder" type="video/x-vnd.on2.vp8" update="true">
+            <!-- measured 90%:255-459 med:394 N=18 -->
+            <Limit name="measured-frame-rate-320x180" range="342-1155" /> <!-- v90%=1.3 -->
+            <!-- measured 90%:287-438 med:390 N=18 -->
+            <Limit name="measured-frame-rate-640x360" range="355-1060" /> <!-- v90%=1.2 -->
+            <!-- measured 90%:328-511 med:438 N=18 -->
+            <Limit name="measured-frame-rate-1280x720" range="410-410" /> <!-- v90%=1.2 -->
+            <!-- measured 90%:312-359 med:349 N=18 -->
+            <Limit name="measured-frame-rate-1920x1080" range="335-335" /> <!-- v90%=1.1 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.Exynos.VP9.Decoder" type="video/x-vnd.on2.vp9" update="true">
+            <!-- measured 90%:265-448 med:412 N=18 -->
+            <Limit name="measured-frame-rate-320x180" range="345-515" /> <!-- v90%=1.3 -->
+            <!-- measured 90%:313-465 med:411 N=18 -->
+            <Limit name="measured-frame-rate-640x360" range="382-514" /> <!-- v90%=1.2 -->
+            <!-- measured 90%:308-424 med:395 N=18 -->
+            <Limit name="measured-frame-rate-1280x720" range="361-457" /> <!-- v90%=1.2 -->
+            <!-- measured 90%:238-241 med:240 N=18 -->
+            <Limit name="measured-frame-rate-1920x1080" range="239-240" /> <!-- v90%=1.0 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
+            <!-- measured 90%:76-165 med:83 SLOW N=18 -->
+            <Limit name="measured-frame-rate-176x144" range="83-112" /> <!-- v90%=1.5 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
+            <!-- measured 90%:181-215 med:185 N=18 -->
+            <Limit name="measured-frame-rate-320x240" range="385-1000" /> <!-- v90%=1.1 -->
+            <!-- measured 90%:71-77 med:73 N=18 -->
+            <Limit name="measured-frame-rate-720x480" range="73-190" /> <!-- v90%=1.0 -->
+            <!-- measured 90%:31-33 med:32 N=18 -->
+            <Limit name="measured-frame-rate-1280x720" range="32-120" /> <!-- v90%=1.0 -->
+            <!-- measured 90%:15-17 med:15 N=18 -->
+            <Limit name="measured-frame-rate-1920x1080" range="15-50" /> <!-- v90%=1.0 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
+            <!-- measured 90%:191-276 med:237 N=18 -->
+            <Limit name="measured-frame-rate-352x288" range="230-840" /> <!-- v90%=1.2 -->
+            <!-- measured 90%:169-183 med:178 N=18 -->
+            <Limit name="measured-frame-rate-640x360" range="176-176" /> <!-- v90%=1.0 -->
+            <!-- measured 90%:141-168 med:160 N=18 -->
+            <Limit name="measured-frame-rate-720x480" range="154-370" /> <!-- v90%=1.1 -->
+            <!-- measured 90%:70-74 med:72 N=18 -->
+            <Limit name="measured-frame-rate-1280x720" range="72-72" /> <!-- v90%=1.0 -->
+            <!-- measured 90%:38-41 med:40 N=18 -->
+            <Limit name="measured-frame-rate-1920x1080" range="39-90" /> <!-- v90%=1.0 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" update="true">
+            <!-- measured 90%:82-170 med:96 SLOW N=18 -->
+            <Limit name="measured-frame-rate-176x144" range="96-118" /> <!-- v90%=1.4 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
+            <!-- measured 90%:261-623 med:278 SLOW N=18 -->
+            <Limit name="measured-frame-rate-320x180" range="278-1135" /> <!-- v90%=1.5 -->
+            <!-- measured 90%:334-358 med:350 N=18 -->
+            <Limit name="measured-frame-rate-640x360" range="346-346" /> <!-- v90%=1.0 -->
+            <!-- measured 90%:33-34 med:33 N=18 -->
+            <Limit name="measured-frame-rate-1920x1080" range="33-33" /> <!-- v90%=1.0 -->
+        </MediaCodec>
+        <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
+            <!-- measured 90%:267-310 med:285 N=18 -->
+            <Limit name="measured-frame-rate-320x180" range="285-785" /> <!-- v90%=1.1 -->
+            <!-- measured 90%:112-338 med:188 N=18 -->
+            <Limit name="measured-frame-rate-640x360" range="187-195" /> <!-- v90%=1.7 -->
+            <!-- measured 90%:105-162 med:159 N=18 -->
+            <Limit name="measured-frame-rate-1280x720" range="131-131" /> <!-- v90%=1.2 -->
+            <!-- measured 90%:32-49 med:38 N=18 -->
+            <Limit name="measured-frame-rate-1920x1080" range="37-100" /> <!-- v90%=1.2 -->
+        </MediaCodec>
+    </Decoders>
+</MediaCodecs>
diff --git a/configs/media/media_profiles_V1_0.xml b/configs/media/media_profiles_V1_0.xml
new file mode 100644 (file)
index 0000000..02171bc
--- /dev/null
@@ -0,0 +1,629 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+<!DOCTYPE MediaSettings [
+<!ELEMENT MediaSettings (CamcorderProfiles,
+                         EncoderOutputFileFormat+,
+                         VideoEncoderCap+,
+                         AudioEncoderCap+,
+                         VideoDecoderCap,
+                         AudioDecoderCap)>
+<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
+<!ELEMENT EncoderProfile (Video, Audio)>
+<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
+<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
+<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
+<!ELEMENT Video EMPTY>
+<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
+<!ATTLIST Video bitRate CDATA #REQUIRED>
+<!ATTLIST Video width CDATA #REQUIRED>
+<!ATTLIST Video height CDATA #REQUIRED>
+<!ATTLIST Video frameRate CDATA #REQUIRED>
+<!ELEMENT Audio EMPTY>
+<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
+<!ATTLIST Audio bitRate CDATA #REQUIRED>
+<!ATTLIST Audio sampleRate CDATA #REQUIRED>
+<!ATTLIST Audio channels (1|2) #REQUIRED>
+<!ELEMENT ImageEncoding EMPTY>
+<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
+<!ELEMENT ImageDecoding EMPTY>
+<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
+<!ELEMENT Camera EMPTY>
+<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
+<!ELEMENT EncoderOutputFileFormat EMPTY>
+<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
+<!ELEMENT VideoEncoderCap EMPTY>
+<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
+<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
+<!ELEMENT AudioEncoderCap EMPTY>
+<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
+<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
+<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
+<!ELEMENT VideoDecoderCap EMPTY>
+<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
+<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
+<!ELEMENT AudioDecoderCap EMPTY>
+<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
+<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
+]>
+<!--
+     This file is used to declare the multimedia profiles and capabilities
+     on an android-powered device.
+-->
+<MediaSettings>
+    <!-- Each camcorder profile defines a set of predefined configuration parameters -->
+    <CamcorderProfiles cameraId="0">
+
+        <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="48000000"
+                   width="3840"
+                   height="2160"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+
+        </EncoderProfile>
+
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="48000000"
+                   width="3840"
+                   height="2160"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+       <CamcorderProfiles cameraId="1">
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+
+        </EncoderProfile>
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+       <CamcorderProfiles cameraId="2">
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+
+        </EncoderProfile>
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+    <CamcorderProfiles cameraId="3">
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+
+        </EncoderProfile>
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+       <CamcorderProfiles cameraId="2">
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+
+        </EncoderProfile>
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+    <EncoderOutputFileFormat name="3gp" />
+    <EncoderOutputFileFormat name="mp4" />
+
+    <!--
+         If a codec is not enabled, it is invisible to the applications
+         In other words, the applications won't be able to use the codec
+         or query the capabilities of the codec at all if it is disabled
+    -->
+
+    <!--
+         FIXME : we only check Mpeg4 encorder cap and other codec doesn't check
+                 codec cap
+    -->
+    <VideoEncoderCap name="h264" enabled="true"
+        minBitRate="64000" maxBitRate="50000000"
+        minFrameWidth="128" maxFrameWidth="3840"
+        minFrameHeight="96" maxFrameHeight="2160"
+        minFrameRate="15" maxFrameRate="30" />
+
+    <VideoEncoderCap name="h263" enabled="true"
+        minBitRate="64000" maxBitRate="1000000"
+        minFrameWidth="128" maxFrameWidth="1920"
+        minFrameHeight="96" maxFrameHeight="1080"
+        minFrameRate="15" maxFrameRate="30" />
+
+    <VideoEncoderCap name="m4v" enabled="true"
+        minBitRate="64000" maxBitRate="2000000"
+        minFrameWidth="128" maxFrameWidth="1920"
+        minFrameHeight="96" maxFrameHeight="1080"
+        minFrameRate="15" maxFrameRate="30" />
+
+    <AudioEncoderCap name="aac" enabled="true"
+        minBitRate="758" maxBitRate="288000"
+        minSampleRate="8000" maxSampleRate="48000"
+        minChannels="1" maxChannels="1" />
+
+    <AudioEncoderCap name="heaac" enabled="true"
+        minBitRate="8000" maxBitRate="64000"
+        minSampleRate="16000" maxSampleRate="48000"
+        minChannels="1" maxChannels="1" />
+
+    <AudioEncoderCap name="aaceld" enabled="true"
+        minBitRate="16000" maxBitRate="192000"
+        minSampleRate="16000" maxSampleRate="48000"
+        minChannels="1" maxChannels="1" />
+
+    <AudioEncoderCap name="amrwb" enabled="true"
+        minBitRate="6600" maxBitRate="23050"
+        minSampleRate="16000" maxSampleRate="16000"
+        minChannels="1" maxChannels="1" />
+
+    <AudioEncoderCap name="amrnb" enabled="true"
+        minBitRate="5525" maxBitRate="12200"
+        minSampleRate="8000" maxSampleRate="8000"
+        minChannels="1" maxChannels="1" />
+
+    <!--
+        FIXME:
+        We do not check decoder capabilities at present
+        At present, we only check whether windows media is visible
+        for TEST applications. For other applications, we do
+        not perform any checks at all.
+    -->
+    <VideoDecoderCap name="wmv" enabled="false"/>
+    <AudioDecoderCap name="wma" enabled="false"/>
+
+</MediaSettings>
diff --git a/configs/media/media_profiles_vendor.xml b/configs/media/media_profiles_vendor.xml
new file mode 100644 (file)
index 0000000..74ca69b
--- /dev/null
@@ -0,0 +1,706 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+<!DOCTYPE MediaSettings [
+<!ELEMENT MediaSettings (CamcorderProfiles,
+                         EncoderOutputFileFormat+,
+                         VideoEncoderCap+,
+                         AudioEncoderCap+,
+                         VideoDecoderCap,
+                         AudioDecoderCap)>
+<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
+<!ELEMENT EncoderProfile (Video, Audio)>
+<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
+<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
+<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
+<!ELEMENT Video EMPTY>
+<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
+<!ATTLIST Video bitRate CDATA #REQUIRED>
+<!ATTLIST Video width CDATA #REQUIRED>
+<!ATTLIST Video height CDATA #REQUIRED>
+<!ATTLIST Video frameRate CDATA #REQUIRED>
+<!ELEMENT Audio EMPTY>
+<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
+<!ATTLIST Audio bitRate CDATA #REQUIRED>
+<!ATTLIST Audio sampleRate CDATA #REQUIRED>
+<!ATTLIST Audio channels (1|2) #REQUIRED>
+<!ELEMENT ImageEncoding EMPTY>
+<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
+<!ELEMENT ImageDecoding EMPTY>
+<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
+<!ELEMENT Camera EMPTY>
+<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
+<!ELEMENT EncoderOutputFileFormat EMPTY>
+<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
+<!ELEMENT VideoEncoderCap EMPTY>
+<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
+<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
+<!ELEMENT AudioEncoderCap EMPTY>
+<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
+<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
+<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
+<!ELEMENT VideoDecoderCap EMPTY>
+<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
+<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
+<!ELEMENT AudioDecoderCap EMPTY>
+<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
+<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
+]>
+<!--
+     This file is used to declare the multimedia profiles and capabilities
+     on an android-powered device.
+-->
+<MediaSettings>
+    <!-- Each camcorder profile defines a set of predefined configuration parameters -->
+    <CamcorderProfiles cameraId="0">
+
+        <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="48000000"
+                   width="3840"
+                   height="2160"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+
+        <!-- CAMCORDER_QUALITY_HIGH_SPEED_HIGH/720P : 720p@120fps; 42.0 Mbps -->
+        <EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+
+        <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="48000000"
+                   width="3840"
+                   height="2160"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+       <CamcorderProfiles cameraId="1">
+
+        <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="48000000"
+                   width="3840"
+                   height="2160"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="320000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+
+        <!-- CAMCORDER_QUALITY_HIGH_SPEED_HIGH/720P : 720p@120fps; 42.0 Mbps -->
+        <EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+      <EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="1" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+       <CamcorderProfiles cameraId="2">
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+    <CamcorderProfiles cameraId="3">
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+
+        <!-- CAMCORDER_QUALITY_HIGH_SPEED_HIGH/1080P : 1080p@120fps; 42.0 Mbps -->
+        <EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+    <EncoderOutputFileFormat name="3gp" />
+    <EncoderOutputFileFormat name="mp4" />
+
+    <!--
+         If a codec is not enabled, it is invisible to the applications
+         In other words, the applications won't be able to use the codec
+         or query the capabilities of the codec at all if it is disabled
+    -->
+
+    <!--
+         FIXME : we only check Mpeg4 encorder cap and other codec doesn't check
+                 codec cap
+    -->
+    <VideoEncoderCap name="h264" enabled="true"
+        minBitRate="64000" maxBitRate="50000000"
+        minFrameWidth="128" maxFrameWidth="3840"
+        minFrameHeight="96" maxFrameHeight="2160"
+        minFrameRate="15" maxFrameRate="30" />
+
+    <VideoEncoderCap name="h263" enabled="true"
+        minBitRate="64000" maxBitRate="1000000"
+        minFrameWidth="128" maxFrameWidth="1920"
+        minFrameHeight="96" maxFrameHeight="1080"
+        minFrameRate="15" maxFrameRate="30" />
+
+    <VideoEncoderCap name="m4v" enabled="true"
+        minBitRate="64000" maxBitRate="2000000"
+        minFrameWidth="128" maxFrameWidth="1920"
+        minFrameHeight="96" maxFrameHeight="1080"
+        minFrameRate="15" maxFrameRate="30" />
+
+    <AudioEncoderCap name="aac" enabled="true"
+        minBitRate="758" maxBitRate="512000"
+        minSampleRate="8000" maxSampleRate="48000"
+        minChannels="1" maxChannels="2" />
+
+    <AudioEncoderCap name="heaac" enabled="true"
+        minBitRate="8000" maxBitRate="64000"
+        minSampleRate="16000" maxSampleRate="48000"
+        minChannels="1" maxChannels="1" />
+
+    <AudioEncoderCap name="aaceld" enabled="true"
+        minBitRate="16000" maxBitRate="192000"
+        minSampleRate="16000" maxSampleRate="48000"
+        minChannels="1" maxChannels="1" />
+
+    <AudioEncoderCap name="amrwb" enabled="true"
+        minBitRate="6600" maxBitRate="23050"
+        minSampleRate="16000" maxSampleRate="16000"
+        minChannels="1" maxChannels="1" />
+
+    <AudioEncoderCap name="amrnb" enabled="true"
+        minBitRate="5525" maxBitRate="12200"
+        minSampleRate="8000" maxSampleRate="8000"
+        minChannels="1" maxChannels="1" />
+
+    <!--
+        FIXME:
+        We do not check decoder capabilities at present
+        At present, we only check whether windows media is visible
+        for TEST applications. For other applications, we do
+        not perform any checks at all.
+    -->
+    <VideoDecoderCap name="wmv" enabled="false"/>
+    <AudioDecoderCap name="wma" enabled="false"/>
+
+    <!--
+        The VideoEditor Capability configuration:
+        - maxInputFrameWidth: maximum video width of imported video clip.
+        - maxInputFrameHeight: maximum video height of imported video clip.
+        - maxOutputFrameWidth: maximum video width of exported video clip.
+        - maxOutputFrameHeight: maximum video height of exported video clip.
+        - maxPrefetchYUVFrames: maximum prefetch YUV frames for encoder,
+        used to limit the amount of memory for prefetched YUV frames.
+        For this platform, it allows maximum 30MB(3MB per 1080p frame x 10
+        frames) memory.
+    -->
+    <VideoEditorCap  maxInputFrameWidth="1920"
+        maxInputFrameHeight="1080" maxOutputFrameWidth="1920"
+        maxOutputFrameHeight="1080" maxPrefetchYUVFrames="10"/>
+    <!--
+        The VideoEditor Export codec profile and level values
+        correspond to the values in OMX_Video.h.
+        E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline
+        and  level 4096 means OMX_VIDEO_AVCLevel41.
+        Please note that the values are in decimal.
+        These values are for video encoder.
+    -->
+    <!--
+      Codec = h.264, Baseline profile, level 4.2
+    -->
+    <ExportVideoProfile name="h264" profile= "1" level="8192"/>
+    <!--
+      Codec = h.263, Baseline profile, level 45
+    -->
+    <ExportVideoProfile name="h263" profile= "1" level="16"/>
+    <!--
+      Codec = mpeg4, Simple profile, level 5
+    -->
+    <ExportVideoProfile name="m4v" profile= "1" level="128"/>
+</MediaSettings>
diff --git a/configs/media/media_profiles_vendor_V1.xml b/configs/media/media_profiles_vendor_V1.xml
new file mode 100644 (file)
index 0000000..9fd27ea
--- /dev/null
@@ -0,0 +1,706 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+<!DOCTYPE MediaSettings [
+<!ELEMENT MediaSettings (CamcorderProfiles,
+                         EncoderOutputFileFormat+,
+                         VideoEncoderCap+,
+                         AudioEncoderCap+,
+                         VideoDecoderCap,
+                         AudioDecoderCap)>
+<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
+<!ELEMENT EncoderProfile (Video, Audio)>
+<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
+<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
+<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
+<!ELEMENT Video EMPTY>
+<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
+<!ATTLIST Video bitRate CDATA #REQUIRED>
+<!ATTLIST Video width CDATA #REQUIRED>
+<!ATTLIST Video height CDATA #REQUIRED>
+<!ATTLIST Video frameRate CDATA #REQUIRED>
+<!ELEMENT Audio EMPTY>
+<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
+<!ATTLIST Audio bitRate CDATA #REQUIRED>
+<!ATTLIST Audio sampleRate CDATA #REQUIRED>
+<!ATTLIST Audio channels (1|2) #REQUIRED>
+<!ELEMENT ImageEncoding EMPTY>
+<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
+<!ELEMENT ImageDecoding EMPTY>
+<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
+<!ELEMENT Camera EMPTY>
+<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
+<!ELEMENT EncoderOutputFileFormat EMPTY>
+<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
+<!ELEMENT VideoEncoderCap EMPTY>
+<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
+<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
+<!ELEMENT AudioEncoderCap EMPTY>
+<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
+<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
+<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
+<!ELEMENT VideoDecoderCap EMPTY>
+<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
+<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
+<!ELEMENT AudioDecoderCap EMPTY>
+<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
+<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
+]>
+<!--
+     This file is used to declare the multimedia profiles and capabilities
+     on an android-powered device.
+-->
+<MediaSettings>
+    <!-- Each camcorder profile defines a set of predefined configuration parameters -->
+    <CamcorderProfiles cameraId="0">
+
+        <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="48000000"
+                   width="3840"
+                   height="2160"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+
+        <!-- CAMCORDER_QUALITY_HIGH_SPEED_HIGH/720P : 720p@120fps; 42.0 Mbps -->
+        <EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+
+        <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="48000000"
+                   width="3840"
+                   height="2160"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+       <CamcorderProfiles cameraId="1">
+
+        <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="48000000"
+                   width="3840"
+                   height="2160"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="320000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+
+        <!-- CAMCORDER_QUALITY_HIGH_SPEED_HIGH/720P : 720p@120fps; 42.0 Mbps -->
+        <EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+      <EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1280"
+                   height="720"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+       <CamcorderProfiles cameraId="2">
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+    <CamcorderProfiles cameraId="3">
+
+        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <Audio codec="aac"
+                   bitRate="512000"
+                   sampleRate="48000"
+                   channels="2" />
+
+        </EncoderProfile>
+
+        <!-- CAMCORDER_QUALITY_HIGH_SPEED_HIGH/1080P : 1080p@120fps; 42.0 Mbps -->
+        <EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="30">
+            <Video codec="h264"
+                   bitRate="42000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="120" />
+            <!-- audio setting is ignored -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="48000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="12000000"
+                   width="1920"
+                   height="1080"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="8000000"
+                   width="1280"
+                   height="720"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+            <Video codec="h264"
+                   bitRate="3000000"
+                   width="720"
+                   height="480"
+                   frameRate="30" />
+
+            <!-- Audio settings are not used for timealpse video recording -->
+            <Audio codec="aac"
+                   bitRate="96000"
+                   sampleRate="16000"
+                   channels="2" />
+        </EncoderProfile>
+
+        <ImageEncoding quality="90" />
+        <ImageEncoding quality="80" />
+        <ImageEncoding quality="70" />
+        <ImageDecoding memCap="20000000" />
+
+    </CamcorderProfiles>
+
+    <EncoderOutputFileFormat name="3gp" />
+    <EncoderOutputFileFormat name="mp4" />
+
+    <!--
+         If a codec is not enabled, it is invisible to the applications
+         In other words, the applications won't be able to use the codec
+         or query the capabilities of the codec at all if it is disabled
+    -->
+
+    <!--
+         FIXME : we only check Mpeg4 encorder cap and other codec doesn't check
+                 codec cap
+    -->
+    <VideoEncoderCap name="h264" enabled="true"
+        minBitRate="64000" maxBitRate="50000000"
+        minFrameWidth="128" maxFrameWidth="3840"
+        minFrameHeight="96" maxFrameHeight="2160"
+        minFrameRate="15" maxFrameRate="30" />
+
+    <VideoEncoderCap name="h263" enabled="true"
+        minBitRate="64000" maxBitRate="1000000"
+        minFrameWidth="128" maxFrameWidth="1920"
+        minFrameHeight="96" maxFrameHeight="1080"
+        minFrameRate="15" maxFrameRate="30" />
+
+    <VideoEncoderCap name="m4v" enabled="true"
+        minBitRate="64000" maxBitRate="2000000"
+        minFrameWidth="128" maxFrameWidth="1920"
+        minFrameHeight="96" maxFrameHeight="1080"
+        minFrameRate="15" maxFrameRate="30" />
+
+    <AudioEncoderCap name="aac" enabled="true"
+        minBitRate="758" maxBitRate="512000"
+        minSampleRate="8000" maxSampleRate="48000"
+        minChannels="1" maxChannels="2" />
+
+    <AudioEncoderCap name="heaac" enabled="true"
+        minBitRate="8000" maxBitRate="64000"
+        minSampleRate="16000" maxSampleRate="48000"
+        minChannels="1" maxChannels="1" />
+
+    <AudioEncoderCap name="aaceld" enabled="true"
+        minBitRate="16000" maxBitRate="192000"
+        minSampleRate="16000" maxSampleRate="48000"
+        minChannels="1" maxChannels="1" />
+
+    <AudioEncoderCap name="amrwb" enabled="true"
+        minBitRate="6600" maxBitRate="23050"
+        minSampleRate="16000" maxSampleRate="16000"
+        minChannels="1" maxChannels="1" />
+
+    <AudioEncoderCap name="amrnb" enabled="true"
+        minBitRate="5525" maxBitRate="12200"
+        minSampleRate="8000" maxSampleRate="8000"
+        minChannels="1" maxChannels="1" />
+
+    <!--
+        FIXME:
+        We do not check decoder capabilities at present
+        At present, we only check whether windows media is visible
+        for TEST applications. For other applications, we do
+        not perform any checks at all.
+    -->
+    <VideoDecoderCap name="wmv" enabled="false"/>
+    <AudioDecoderCap name="wma" enabled="false"/>
+
+    <!--
+        The VideoEditor Capability configuration:
+        - maxInputFrameWidth: maximum video width of imported video clip.
+        - maxInputFrameHeight: maximum video height of imported video clip.
+        - maxOutputFrameWidth: maximum video width of exported video clip.
+        - maxOutputFrameHeight: maximum video height of exported video clip.
+        - maxPrefetchYUVFrames: maximum prefetch YUV frames for encoder,
+        used to limit the amount of memory for prefetched YUV frames.
+        For this platform, it allows maximum 30MB(3MB per 1080p frame x 10
+        frames) memory.
+    -->
+    <VideoEditorCap  maxInputFrameWidth="1920"
+        maxInputFrameHeight="1080" maxOutputFrameWidth="1920"
+        maxOutputFrameHeight="1080" maxPrefetchYUVFrames="10"/>
+    <!--
+        The VideoEditor Export codec profile and level values
+        correspond to the values in OMX_Video.h.
+        E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline
+        and  level 4096 means OMX_VIDEO_AVCLevel41.
+        Please note that the values are in decimal.
+        These values are for video encoder.
+    -->
+    <!--
+      Codec = h.264, Baseline profile, level 4.2
+    -->
+    <ExportVideoProfile name="h264" profile= "1" level="8192"/>
+    <!--
+      Codec = h.263, Baseline profile, level 45
+    -->
+    <ExportVideoProfile name="h263" profile= "1" level="16"/>
+    <!--
+      Codec = mpeg4, Simple profile, level 5
+    -->
+    <ExportVideoProfile name="m4v" profile= "1" level="128"/>
+</MediaSettings>
diff --git a/configs/nfc/libnfc-nci.conf b/configs/nfc/libnfc-nci.conf
new file mode 100644 (file)
index 0000000..0a0de92
--- /dev/null
@@ -0,0 +1,90 @@
+########################## Start of libnfc-nci.conf ###########################
+###############################################################################
+# Application options
+NFC_DEBUG_ENABLED=0
+
+###############################################################################
+# File used for NFA storage
+NFA_STORAGE="/data/nfc"
+PRESERVE_STORAGE=0x01
+
+# Force tag polling for the following technology(s).
+# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
+# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B |
+#            NFA_TECHNOLOGY_MASK_F | NFA_TECHNOLOGY_MASK_ISO15693 |
+#            NFA_TECHNOLOGY_MASK_B_PRIME | NFA_TECHNOLOGY_MASK_KOVIO |
+#            NFA_TECHNOLOGY_MASK_ACTIVE
+#
+# Notable bits:
+# NFA_TECHNOLOGY_MASK_A             0x01    /* NFC Technology A             */
+# NFA_TECHNOLOGY_MASK_B             0x02    /* NFC Technology B             */
+# NFA_TECHNOLOGY_MASK_F             0x04    /* NFC Technology F             */
+# NFA_TECHNOLOGY_MASK_ISO15693      0x08    /* Proprietary Technology       */
+# NFA_TECHNOLOGY_MASK_KOVIO         0x20    /* Proprietary Technology       */
+# NFA_TECHNOLOGY_MASK_ACTIVE        0x40    /* NFC Technology Active        */
+POLLING_TECH_MASK=0x6F
+
+###############################################################################
+# Force P2P to only listen for the following technology(s).
+# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
+# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_F |
+# NFA_TECHNOLOGY_MASK_ACTIVE
+#
+# Notable bits:
+# NFA_TECHNOLOGY_MASK_A             0x01    /* NFC Technology A             */
+# NFA_TECHNOLOGY_MASK_F             0x04    /* NFC Technology F             */
+# NFA_TECHNOLOGY_MASK_ACTIVE         0x40    /* NFC Technology Active        */
+P2P_LISTEN_TECH_MASK=0x44
+
+UICC_LISTEN_TECH_MASK=0x07
+
+#NFA_DM_CFG
+
+###############################################################################
+# When screen is turned off, specify the desired power state of the controller.
+# 0: power-off-sleep state; DEFAULT
+# 1: full-power state
+# 2: screen-off card-emulation (CE4/CE3/CE1 modes are used)
+SCREEN_OFF_POWER_STATE=1
+###############################################################################
+
+###############################################################################
+# Override the stack default for NFA_EE_MAX_EE_SUPPORTED set in nfc_target.h.
+# The value is set assumeing discovery of 0x00(Host), 0xC0(Ese) and 0x80(UICC).
+# If a platform will exclude and SE, this value can be reduced so that the stack
+# will not wait any longer than necessary.
+# Maximum EE supported number
+NFA_MAX_EE_SUPPORTED=3
+
+###############################################################################
+# Default poll duration (in ms)
+#  The defualt is 500ms if not set (see nfc_target.h)
+NFA_DM_DISC_DURATION_POLL=800
+
+#POLL_FREQUENCY
+
+#NFA_AID_BLOCK_ROUTE
+
+#AID_FOR_EMPTY_SELECT
+
+###############################################################################
+# Enable/Disable Block Route feature.
+# Block Route will restrict routing to first matched rule
+# Block Route enable   0x01
+# Block Route disable  0x00
+#NFA_BLOCK_ROUTE=0x00
+
+###############################################################################
+# AID_MATCHING constants
+# AID_MATCHING_EXACT_ONLY 0x00
+# AID_MATCHING_EXACT_OR_PREFIX 0x01
+# AID_MATCHING_PREFIX_ONLY 0x02
+# AID_MATCHING_EXACT_OR_SUBSET_OR_PREFIX 0x03
+AID_MATCHING_MODE=0
+
+###############################################################################
+# AID Route power state for OffHost
+OFFHOST_AID_ROUTE_PWR_STATE=0x3B
+###############################################################################
+
+LEGACY_MIFARE_READER=1
diff --git a/configs/nfc/libnfc-sec-vendor.conf b/configs/nfc/libnfc-sec-vendor.conf
new file mode 100644 (file)
index 0000000..d4e4a5e
--- /dev/null
@@ -0,0 +1,36 @@
+# Vendor common
+NFA_POLL_BAIL_OUT_MODE=0
+PRESENCE_CHECK_ALGORITHM=5
+NFA_PROPRIETARY_CFG={00, 81, 82, 80, 8A, 81, 70, 74, F4}
+DEFAULT_OFFHOST_ROUTE=0x03
+OFFHOST_ROUTE_ESE={82}
+OFFHOST_ROUTE_UICC={83}
+DEFAULT_NFCF_ROUTE=0x03
+###############################################################################
+#Set the default Felica T3T System Code :
+#This settings will be used when application does not set this parameter
+DEFAULT_SYS_CODE={FE:FF}
+#DEFAULT_SYS_CODE_ROUTE
+#DEFAULT_SYS_CODE_PWR_STATE
+DEFAULT_ROUTE=0x03
+#OFF_HOST_ESE_PIPE_ID
+OFF_HOST_SIM_PIPE_ID=0x06
+ISO_DEP_MAX_TRANSCEIVE=261
+#DEVICE_HOST_WHITE_LIST
+DEFAULT_ISODEP_ROUTE=0x83
+
+# LSI
+DEFAULT_SIMSLOT=1
+FW_CFG_CLK_SPEED=0x12
+FW_BASE_ADDRESS=0x2000
+WAKEUP_DELAY=20
+FW_DIR_PATH="/vendor/firmware"
+FW_FILE_NAME="sec_s3nrn82_firmware.bin"
+RF_DIR_PATH="/vendor/etc"
+RF_FILE_NAME="sec_s3nrn82_rfreg.bin"
+POWER_DRIVER="/dev/sec-nfc"
+TRANS_DRIVER="/dev/sec-nfc"
+TRACE_LEVEL=2
+DATA_TRACE=2
+SLEEP_TIMEOUT=1000
+FW_UPDATE_MODE=0
diff --git a/configs/public.libraries.txt b/configs/public.libraries.txt
new file mode 100644 (file)
index 0000000..199bc1b
--- /dev/null
@@ -0,0 +1 @@
+libOpenCL.so
diff --git a/configs/seccomp/configstore@1.1.policy b/configs/seccomp/configstore@1.1.policy
new file mode 100644 (file)
index 0000000..937fddd
--- /dev/null
@@ -0,0 +1,56 @@
+# Copyright (C) 2017 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.
+
+futex: 1
+# ioctl: arg1 == BINDER_WRITE_READ
+ioctl: arg1 == 0xc0306201
+# prctl: arg0 == PR_SET_NAME || arg0 == PR_SET_VMA || arg0 == PR_SET_TIMERSLACK
+# || arg0 == PR_GET_NO_NEW_PRIVS # used by crash_dump
+# prctl: arg0 == 15 || arg0 == 0x53564d41 || arg0 == 29 || arg0 == 39
+# TODO(b/68162846) reduce scope of prctl() based on arguments
+prctl: 1
+openat: 1
+mmap: 1
+mprotect: 1
+close: 1
+getuid: 1
+read: 1
+faccessat: 1
+write: 1
+fstat: 1
+clone: 1
+sched_setscheduler: 1
+munmap: 1
+lseek: 1
+sigaltstack: 1
+writev: 1
+setpriority: 1
+restart_syscall: 1
+exit: 1
+exit_group: 1
+rt_sigreturn: 1
+getrlimit: 1
+madvise: 1
+getdents64: 1
+clock_gettime: 1
+getpid: 1
+
+# used during process crash by crash_dump to dump process info
+rt_sigprocmask: 1
+rt_sigaction: 1
+# socket: arg0 == AF_LOCAL
+socket: arg0 == 1
+connect: 1
+recvmsg: 1
+rt_tgsigqueueinfo: 1
diff --git a/configs/seccomp/mediacodec.policy b/configs/seccomp/mediacodec.policy
new file mode 100644 (file)
index 0000000..d225e2c
--- /dev/null
@@ -0,0 +1,3 @@
+
+# for H/W Codec
+getdents64: 1
diff --git a/configs/sensors/hals.conf b/configs/sensors/hals.conf
new file mode 100644 (file)
index 0000000..82f6f8d
--- /dev/null
@@ -0,0 +1,2 @@
+sensors.rp.so
+sensors.chub.so
diff --git a/configs/sensors/mot_sensor_settings.json b/configs/sensors/mot_sensor_settings.json
new file mode 100644 (file)
index 0000000..9cd93c3
--- /dev/null
@@ -0,0 +1,30 @@
+{
+  "chopchop params": {
+      "max_gyro_rotation": 102.0,
+      "max_chop_duration_ms": 350,
+      "first_accel_threshold": 36.0,
+      "second_accel_threshold": 20.0,
+      "min_magnitude_percentage": 0.25,
+      "max_xy_percentage": 0.45,
+      "gyroless": false
+  },
+  "glance params": {
+      "motion_threshold": 0.04,
+      "cool_time": 3000,
+      "gesture_allow": 23,
+      "uncover_timeout": 900
+  },
+  "ltv params": {
+      "min_accel_rotation_deg": 19.0,
+      "accel_fast_alpha": 0.25,
+      "accel_slow_alpha": 0.0625,
+      "land_conv_cnt": 3,
+      "min_accel_rotation_wake_deg": 8.0,
+      "non_accel_rotation_ff_deg": 4.0,
+      "rearm_non_rotation_deg": 8.0,
+      "rearm_accel_rotation_deg": 30.0,
+      "rearm_forced_accel_rot_deg": 80.0,
+      "rearm_conv_cnt": 30,
+      "raw_accel_margin": 4.2
+  }
+}
diff --git a/configs/thermal/exynos-thermal-kane-retin.conf b/configs/thermal/exynos-thermal-kane-retin.conf
new file mode 100644 (file)
index 0000000..db94328
--- /dev/null
@@ -0,0 +1,124 @@
+[REPORT-FRONT-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           FRONT_TEMP
+thresholds       45000
+thresholds_clr   43000
+actions          report
+action_info      1
+
+[REPORT-BACK-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           BACK_TEMP
+thresholds       45000
+thresholds_clr   43000
+actions          report
+action_info      1
+
+[SS-MSM-Cluster0]
+algo_type        ss
+sampling         1000
+sensor           therm_soc
+device           little_freq
+set_point        46000
+set_point_clr    44000
+device_perf_floor 1326000
+
+[MON-MSM-Cluster0]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       51000
+thresholds_clr   49000
+actions          little_freq
+action_info      1053000
+
+[SS-MSM-Cluster1]
+algo_type        ss
+sampling         1000
+sensor           therm_soc
+device           big_freq
+set_point        39000
+set_point_clr    37000
+device_perf_floor 1508000
+
+[MON-MSM-Cluster1]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       49000
+thresholds_clr   47000
+actions          big_freq
+action_info      1352000
+
+[MON-CHG-BATT]
+algo_type        monitor
+sampling         1000
+sensor           therm_chg
+thresholds       44000 45000 46000 48000 49000
+thresholds_clr   42000 44000 45000 46000 48000
+actions          charger charger charger charger charger
+action_info      1 2 3 4 6
+
+[CPU7_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       56000
+thresholds_clr   54000
+actions          cpu_hotplug
+action_info      7
+
+[CPU6_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       57000
+thresholds_clr   55000
+actions          cpu_hotplug
+action_info      6
+
+[CPU5_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       58000
+thresholds_clr   56000
+actions          cpu_hotplug
+action_info      5
+
+[CPU4_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       59000
+thresholds_clr   57000
+actions          cpu_hotplug
+action_info      4
+
+[MONITOR-LCD-BRIGHTNESS]
+algo_type          monitor
+sampling           5000
+sensor             therm_usb_con
+thresholds         41000 43000 45000 46000 47000 48000
+thresholds_clr     40000 41000 43000 45000 46000 47000
+actions            backlight backlight backlight backlight backlight backlight
+action_info        240 225 210 200 190 180
+
+[SS-GPU]
+algo_type        ss
+sampling         1000
+sensor           tmu_gpu
+device           gpu_freq
+set_point        75000
+set_point_clr    65000
+
+[REPORT-BIG-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           tmu_big
+thresholds       22000
+thresholds_clr   19000
+actions          report
+action_info      1
diff --git a/configs/thermal/exynos-thermal-kane.conf b/configs/thermal/exynos-thermal-kane.conf
new file mode 100644 (file)
index 0000000..6b0138c
--- /dev/null
@@ -0,0 +1,124 @@
+[REPORT-FRONT-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           FRONT_TEMP
+thresholds       45000
+thresholds_clr   43000
+actions          report
+action_info      1
+
+[REPORT-BACK-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           BACK_TEMP
+thresholds       45000
+thresholds_clr   43000
+actions          report
+action_info      1
+
+[SS-MSM-Cluster0]
+algo_type        ss
+sampling         1000
+sensor           therm_soc
+device           little_freq
+set_point        46000
+set_point_clr    44000
+device_perf_floor 1326000
+
+[MON-MSM-Cluster0]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       51000
+thresholds_clr   49000
+actions          little_freq
+action_info      1053000
+
+[SS-MSM-Cluster1]
+algo_type        ss
+sampling         1000
+sensor           therm_soc
+device           big_freq
+set_point        39000
+set_point_clr    37000
+device_perf_floor 1508000
+
+[MON-MSM-Cluster1]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       49000
+thresholds_clr   47000
+actions          big_freq
+action_info      1352000
+
+[MON-CHG-BATT]
+algo_type        monitor
+sampling         1000
+sensor           therm_chg
+thresholds       45000 46000 48000 49000 50000
+thresholds_clr   43000 45000 46000 48000 49000
+actions          charger charger charger charger charger
+action_info      1 2 3 4 6
+
+[CPU7_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       56000
+thresholds_clr   55000
+actions          cpu_hotplug
+action_info      7
+
+[CPU6_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       57000
+thresholds_clr   56000
+actions          cpu_hotplug
+action_info      6
+
+[CPU5_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       58000
+thresholds_clr   57000
+actions          cpu_hotplug
+action_info      5
+
+[CPU4_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       59000
+thresholds_clr   58000
+actions          cpu_hotplug
+action_info      4
+
+[MONITOR-LCD-BRIGHTNESS]
+algo_type          monitor
+sampling           5000
+sensor             therm_usb_con
+thresholds         41000 43000 45000 46000 47000 48000
+thresholds_clr     40000 41000 43000 45000 46000 47000
+actions            backlight backlight backlight backlight backlight backlight
+action_info        240 225 210 200 190 180
+
+[SS-GPU]
+algo_type        ss
+sampling         1000
+sensor           tmu_gpu
+device           gpu_freq
+set_point        75000
+set_point_clr    65000
+
+[REPORT-BIG-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           tmu_big
+thresholds       22000
+thresholds_clr   19000
+actions          report
+action_info      1
diff --git a/configs/thermal/exynos-thermal-troika.conf b/configs/thermal/exynos-thermal-troika.conf
new file mode 100644 (file)
index 0000000..8368ac9
--- /dev/null
@@ -0,0 +1,124 @@
+[REPORT-FRONT-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           FRONT_TEMP
+thresholds       45000
+thresholds_clr   43000
+actions          report
+action_info      1
+
+[REPORT-BACK-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           BACK_TEMP
+thresholds       45000
+thresholds_clr   43000
+actions          report
+action_info      1
+
+[SS-MSM-Cluster0]
+algo_type        ss
+sampling         1000
+sensor           therm_soc
+device           little_freq
+set_point        46000
+set_point_clr    44000
+device_perf_floor 1326000
+
+[MON-MSM-Cluster0]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       51000
+thresholds_clr   49000
+actions          little_freq
+action_info      1053000
+
+[SS-MSM-Cluster1]
+algo_type        ss
+sampling         1000
+sensor           therm_soc
+device           big_freq
+set_point        39000
+set_point_clr    37000
+device_perf_floor 1508000
+
+[MON-MSM-Cluster1]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       49000
+thresholds_clr   47000
+actions          big_freq
+action_info      1352000
+
+[MON-CHG-BATT]
+algo_type        monitor
+sampling         1000
+sensor           therm_chg
+thresholds       44000 46000 48000
+thresholds_clr   42000 44000 46000
+actions          charger charger charger
+action_info      1 4 6
+
+[CPU7_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       56000
+thresholds_clr   54000
+actions          cpu_hotplug
+action_info      7
+
+[CPU6_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       57000
+thresholds_clr   55000
+actions          cpu_hotplug
+action_info      6
+
+[CPU5_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       58000
+thresholds_clr   56000
+actions          cpu_hotplug
+action_info      5
+
+[CPU4_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       59000
+thresholds_clr   57000
+actions          cpu_hotplug
+action_info      4
+
+[MONITOR-LCD-BRIGHTNESS]
+algo_type          monitor
+sampling           5000
+sensor             therm_usb_con
+thresholds         41000 43000 45000 46000 47000 48000
+thresholds_clr     40000 41000 43000 45000 46000 47000
+actions            backlight backlight backlight backlight backlight backlight
+action_info        240 225 210 200 190 180
+
+[SS-GPU]
+algo_type        ss
+sampling         1000
+sensor           tmu_gpu
+device           gpu_freq
+set_point        75000
+set_point_clr    65000
+
+[REPORT-BIG-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           tmu_big
+thresholds       22000
+thresholds_clr   19000
+actions          report
+action_info      1
diff --git a/configs/thermal/exynos-thermal.conf b/configs/thermal/exynos-thermal.conf
new file mode 100644 (file)
index 0000000..6b0138c
--- /dev/null
@@ -0,0 +1,124 @@
+[REPORT-FRONT-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           FRONT_TEMP
+thresholds       45000
+thresholds_clr   43000
+actions          report
+action_info      1
+
+[REPORT-BACK-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           BACK_TEMP
+thresholds       45000
+thresholds_clr   43000
+actions          report
+action_info      1
+
+[SS-MSM-Cluster0]
+algo_type        ss
+sampling         1000
+sensor           therm_soc
+device           little_freq
+set_point        46000
+set_point_clr    44000
+device_perf_floor 1326000
+
+[MON-MSM-Cluster0]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       51000
+thresholds_clr   49000
+actions          little_freq
+action_info      1053000
+
+[SS-MSM-Cluster1]
+algo_type        ss
+sampling         1000
+sensor           therm_soc
+device           big_freq
+set_point        39000
+set_point_clr    37000
+device_perf_floor 1508000
+
+[MON-MSM-Cluster1]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       49000
+thresholds_clr   47000
+actions          big_freq
+action_info      1352000
+
+[MON-CHG-BATT]
+algo_type        monitor
+sampling         1000
+sensor           therm_chg
+thresholds       45000 46000 48000 49000 50000
+thresholds_clr   43000 45000 46000 48000 49000
+actions          charger charger charger charger charger
+action_info      1 2 3 4 6
+
+[CPU7_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       56000
+thresholds_clr   55000
+actions          cpu_hotplug
+action_info      7
+
+[CPU6_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       57000
+thresholds_clr   56000
+actions          cpu_hotplug
+action_info      6
+
+[CPU5_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       58000
+thresholds_clr   57000
+actions          cpu_hotplug
+action_info      5
+
+[CPU4_HOTPLUG_MONITOR]
+algo_type        monitor
+sampling         1000
+sensor           therm_soc
+thresholds       59000
+thresholds_clr   58000
+actions          cpu_hotplug
+action_info      4
+
+[MONITOR-LCD-BRIGHTNESS]
+algo_type          monitor
+sampling           5000
+sensor             therm_usb_con
+thresholds         41000 43000 45000 46000 47000 48000
+thresholds_clr     40000 41000 43000 45000 46000 47000
+actions            backlight backlight backlight backlight backlight backlight
+action_info        240 225 210 200 190 180
+
+[SS-GPU]
+algo_type        ss
+sampling         1000
+sensor           tmu_gpu
+device           gpu_freq
+set_point        75000
+set_point_clr    65000
+
+[REPORT-BIG-TEMP]
+algo_type        monitor
+sampling         300000
+sensor           tmu_big
+thresholds       22000
+thresholds_clr   19000
+actions          report
+action_info      1
diff --git a/configs/thermal/exynos-thermal.env b/configs/thermal/exynos-thermal.env
new file mode 100644 (file)
index 0000000..00afe81
--- /dev/null
@@ -0,0 +1,114 @@
+[tmu_little]
+type real
+node_path /sys/class/thermal/thermal_zone1/temp
+sampling 1000
+
+[tmu_big]
+type real
+node_path /sys/class/thermal/thermal_zone0/temp
+sampling 1000
+
+[tmu_gpu]
+type real
+node_path /sys/class/thermal/thermal_zone2/temp
+sampling 1000
+
+[tmu_isp]
+type real
+node_path /sys/class/thermal/thermal_zone3/temp
+sampling 1000
+
+[therm_soc]
+type real
+node_path /sys/class/hwmon/hwmon0/temp1_input
+
+[therm_bat]
+type real
+node_path /sys/class/hwmon/hwmon1/temp1_input
+
+[charger]
+type charger
+node_path /sys/class/power_supply/battery/charge_control_limit
+
+[little_freq]
+type cpufreq
+node_path /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
+level_table 1638000 1534000 1456000 1326000 1118000 1053000 910000 806000 702000 598000 403000
+
+[big_freq]
+type cpufreq
+node_path /sys/devices/system/cpu/cpufreq/policy4/scaling_max_freq
+level_table 2210000 2184000 2080000 1976000 1898000 1768000 1664000 1508000 1456000 1352000 1248000 1144000 1040000 936000
+
+[gpu_freq]
+type gpufreq
+node_path /sys/devices/platform/11500000.mali/dvfs_max_lock
+level_table 1053000 949000 839000 764000 683000 572000 546000 455000 385000 338000 260000
+
+[cpu_hotplug]
+type cpuhotplug
+node_path /sys/power/cpuhp/set_online_cpu
+
+[camera]
+type camera
+node_path /sys/devices/platform/14490000.fimc_is/debug/fixed_sensor_fps
+
+[backlight]
+type backlight
+node_path /sys/class/panel/panel/max_brightness
+
+[report]
+type report
+node_path /data/vendor/exynos-thermal.log
+
+[therm_soc]
+type real
+node_path /sys/class/hwmon/hwmon0/temp1_input
+sampling 1000
+
+[therm_bat]
+type real
+node_path /sys/class/hwmon/hwmon1/temp1_input
+sampling 1000
+
+[therm_pa]
+type real
+node_path /sys/class/hwmon/hwmon2/temp1_input
+sampling 1000
+
+[therm_board]
+type real
+node_path /sys/class/hwmon/hwmon3/temp1_input
+sampling 1000
+
+[therm_usb_con]
+type real
+node_path /sys/class/hwmon/hwmon4/temp1_input
+sampling 1000
+
+[therm_chg]
+type real
+node_path /sys/class/power_supply/battery/charge_temp
+sampling 1000
+
+[FRONT_TEMP]
+type        virtual
+trip_sensor      therm_soc
+set_point        -18000
+set_point_clr    -20000
+sensors          therm_soc therm_bat
+weights          110       85
+offsets          -2000     -2000
+sampling         10000
+math             0
+
+[BACK_TEMP]
+type        virtual
+trip_sensor      therm_soc
+set_point        -18000
+set_point_clr    -20000
+sensors          therm_soc therm_bat
+weights          110       85
+offsets          -1000     -1000
+sampling         10000
+math             0
diff --git a/configs/wifi/p2p_supplicant.conf b/configs/wifi/p2p_supplicant.conf
new file mode 100644 (file)
index 0000000..4868606
--- /dev/null
@@ -0,0 +1,7 @@
+update_config=1
+ctrl_interface=/data/vendor/wifi/wpa/sockets
+config_methods=physical_display virtual_push_button keypad
+eapol_version=1
+ap_scan=1
+fast_reauth=1
+p2p_add_cli_chan=1
diff --git a/configs/wifi/wpa_supplicant.conf b/configs/wifi/wpa_supplicant.conf
new file mode 100644 (file)
index 0000000..459e107
--- /dev/null
@@ -0,0 +1,11 @@
+update_config=1
+ctrl_interface=wlan0
+eapol_version=1
+ap_scan=1
+fast_reauth=1
+p2p_listen_reg_class=81
+p2p_listen_channel=1
+p2p_oper_reg_class=124
+p2p_oper_channel=149
+pmf=1
+bss_no_flush_when_down=1