replace common qcom sources with samsung ones

This commit is contained in:
SaschaNes
2025-08-12 22:13:00 +02:00
parent ba24dcded9
commit 6f7753de11
5682 changed files with 2450203 additions and 103634 deletions

View File

@@ -0,0 +1,7 @@
cc_library_headers {
name: "libarpal_headers",
export_include_dirs: ["inc"],
vendor: true,
}

View File

@@ -0,0 +1,246 @@
ifneq ($(AUDIO_USE_STUB_HAL), true)
LOCAL_PATH := $(call my-dir)
PAL_BASE_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libar-pal
LOCAL_MODULE_OWNER := qti
LOCAL_MODULE_TAGS := optional
LOCAL_VENDOR_MODULE := true
LOCAL_CFLAGS := -D_ANDROID_
LOCAL_CFLAGS += -Wno-macro-redefined
LOCAL_CFLAGS += -Wall -Werror -Wno-unused-variable -Wno-unused-parameter
LOCAL_CFLAGS += -DCONFIG_GSL
LOCAL_CFLAGS += -D_GNU_SOURCE
LOCAL_CFLAGS += -DADSP_SLEEP_MONITOR
LOCAL_CFLAGS += -DPAL_SP_TEMP_PATH=\"/data/vendor/audio/audio.cal\"
LOCAL_CFLAGS += -DACD_SM_FILEPATH=\"/vendor/etc/models/acd/\"
ifeq ($(call is-board-platform-in-list,kalama pineapple sun), true)
LOCAL_CFLAGS += -DSOC_PERIPHERAL_PROT
endif
LOCAL_CPPFLAGS += -fexceptions -frtti
ifneq ($(TARGET_BOARD_PLATFORM), anorak)
LOCAL_CFLAGS += -DA2DP_SINK_SUPPORTED
endif
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/stream/inc \
$(LOCAL_PATH)/device/inc \
$(LOCAL_PATH)/session/inc \
$(LOCAL_PATH)/resource_manager/inc \
$(LOCAL_PATH)/context_manager/inc \
$(LOCAL_PATH)/utils/inc \
$(LOCAL_PATH)/plugins/codecs \
$(TOP)/system/media/audio_route/include \
$(TOP)/system/media/audio/include
ifneq ($(TARGET_KERNEL_VERSION), 3.18)
ifneq ($(TARGET_KERNEL_VERSION), 4.14)
ifneq ($(TARGET_KERNEL_VERSION), 4.19)
ifneq ($(TARGET_KERNEL_VERSION), 4.4)
ifneq ($(TARGET_KERNEL_VERSION), 4.9)
ifneq ($(TARGET_KERNEL_VERSION), 5.4)
LOCAL_C_INCLUDES += $(TOP)/kernel_platform/msm-kernel/include/uapi/misc
endif
endif
endif
endif
endif
endif
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/inc
LOCAL_SRC_FILES := \
Pal.cpp \
stream/src/Stream.cpp \
stream/src/StreamCompress.cpp \
stream/src/StreamPCM.cpp \
stream/src/StreamACDB.cpp \
stream/src/StreamInCall.cpp \
stream/src/StreamNonTunnel.cpp \
stream/src/StreamSoundTrigger.cpp \
stream/src/StreamACD.cpp \
stream/src/StreamCommon.cpp \
stream/src/StreamContextProxy.cpp \
stream/src/StreamCommonProxy.cpp \
stream/src/StreamUltraSound.cpp \
stream/src/StreamSensorPCMData.cpp\
stream/src/StreamHaptics.cpp \
stream/src/StreamSensorRenderer.cpp \
stream/src/StreamASR.cpp \
device/src/Headphone.cpp \
device/src/USBAudio.cpp \
device/src/Device.cpp \
device/src/Speaker.cpp \
device/src/Bluetooth.cpp \
device/src/SpeakerMic.cpp \
device/src/HeadsetMic.cpp \
device/src/HandsetMic.cpp \
device/src/Handset.cpp \
device/src/HandsetVaMic.cpp \
device/src/DisplayPort.cpp \
device/src/HeadsetVaMic.cpp \
device/src/RTProxy.cpp \
device/src/SpeakerProtection.cpp \
device/src/SpeakerProtectionTI.cpp \
device/src/FMDevice.cpp \
device/src/ExtEC.cpp \
device/src/HapticsDev.cpp \
device/src/UltrasoundDevice.cpp \
device/src/ECRefDevice.cpp \
device/src/DummyDev.cpp \
device/src/HapticsDevProtection.cpp \
session/src/Session.cpp \
session/src/PayloadBuilder.cpp \
session/src/SessionAlsaPcm.cpp \
session/src/SessionAgm.cpp \
session/src/SessionAlsaUtils.cpp \
session/src/SessionAlsaCompress.cpp \
session/src/SessionAlsaVoice.cpp \
session/src/SoundTriggerEngine.cpp \
session/src/SoundTriggerEngineCapi.cpp \
session/src/SoundTriggerEngineGsl.cpp \
session/src/ContextDetectionEngine.cpp \
session/src/ASREngine.cpp \
context_manager/src/ContextManager.cpp \
session/src/ACDEngine.cpp \
resource_manager/src/ResourceManager.cpp \
resource_manager/src/SndCardMonitor.cpp \
utils/src/SoundTriggerPlatformInfo.cpp \
utils/src/ACDPlatformInfo.cpp \
utils/src/VoiceUIPlatformInfo.cpp \
utils/src/ASRPlatformInfo.cpp \
utils/src/PalRingBuffer.cpp \
utils/src/SignalHandler.cpp \
utils/src/AudioHapticsInterface.cpp \
utils/src/MetadataParser.cpp \
utils/src/MemLogBuilder.cpp \
utils/src/PerfLock.cpp
# { ENABLE_TFA98XX_SUPPORT
LOCAL_SRC_FILES += device/src/SpeakerProtectionTFA.cpp
# } ENABLE_TFA98XX_SUPPORT
# { SEC_AUDIO_CALL_SATELLITE
LOCAL_SRC_FILES += device/src/ExtModem.cpp \
device/src/ExtModemMic.cpp
# } SEC_AUDIO_CALL_SATELLITE
LOCAL_HEADER_LIBRARIES := \
libarpal_headers \
libspf-headers \
libcapiv2_headers \
libagm_headers \
libacdb_headers \
liblisten_headers \
libarosal_headers \
libvui_dmgr_headers \
libaudiofeaturestats_headers \
libarvui_intf_headers \
libarmemlog_headers
LOCAL_SHARED_LIBRARIES := \
libar-gsl\
liblog\
libexpat\
liblx-osal\
libaudioroute\
libcutils \
libutilscallstack \
libagmclient \
libvui_intf \
libarmemlog \
libhidlbase
ifeq ($(call is-board-platform-in-list,kalama pineapple sun), true)
LOCAL_SHARED_LIBRARIES += libPeripheralStateUtils
LOCAL_HEADER_LIBRARIES += peripheralstate_headers \
vendor_common_inc\
mink_headers
endif
# { SEC_AUDIO_MUTE_DETECTION
LOCAL_SHARED_LIBRARIES += libutils
LOCAL_SHARED_LIBRARIES += libsecaudiohalproxy_vendor
# } SEC_AUDIO_MUTE_DETECTION
# Use flag based selection to use QTI vs open source tinycompress project
ifeq ($(TARGET_USES_QTI_TINYCOMPRESS),true)
LOCAL_SHARED_LIBRARIES += libqti-tinyalsa libqti-tinycompress
else
LOCAL_C_INCLUDES += $(TOP)/external/tinycompress/include
LOCAL_SHARED_LIBRARIES += libtinyalsa libtinycompress
endif
# { SEC_AUDIO_COMMON
SEC_AUDIO_VARS := vendor/samsung/variant/audio/sec_audioreach_vars.mk
include $(SEC_AUDIO_VARS)
SEC_COMMON_PAL_PATH := ../../../samsung/variant/audio/sec_audioreach/pal
LOCAL_SRC_FILES += $(SEC_COMMON_PAL_PATH)/SecPal.cpp
# } SEC_AUDIO_COMMON
include $(BUILD_SHARED_LIBRARY)
#-------------------------------------------
# Build CHARGER_LISTENER LIB
#-------------------------------------------
include $(CLEAR_VARS)
LOCAL_MODULE := libaudiochargerlistener
LOCAL_MODULE_OWNER := qti
LOCAL_MODULE_TAGS := optional
LOCAL_VENDOR_MODULE := true
LOCAL_SRC_FILES:= utils/src/ChargerListener.cpp
LOCAL_CFLAGS += -Wall -Werror -Wno-unused-function -Wno-unused-variable
LOCAL_SHARED_LIBRARIES += libcutils liblog
LOCAL_C_INCLUDES := $(LOCAL_PATH)/utils/inc
include $(BUILD_SHARED_LIBRARY)
ifeq (0,1)
############################################
#[samsung audio feature - unused
include $(CLEAR_VARS)
LOCAL_USE_VNDK := true
LOCAL_CFLAGS += -Wno-tautological-compare
LOCAL_CFLAGS += -Wno-macro-redefined
LOCAL_SRC_FILES := test/PalUsecaseTest.c \
test/PalTest_main.c
LOCAL_MODULE := PalTest
LOCAL_MODULE_OWNER := qti
LOCAL_MODULE_TAGS := optional
LOCAL_HEADER_LIBRARIES := \
libarpal_headers
LOCAL_SHARED_LIBRARIES := \
libpalclient
LOCAL_VENDOR_MODULE := true
include $(BUILD_EXECUTABLE)
#samsung audio feature - unused]
############################################
endif
include $(CLEAR_VARS)
include $(PAL_BASE_PATH)/plugins/Android.mk
include $(PAL_BASE_PATH)/ipc/aidl/Android.mk
endif #AUDIO_USE_STUB_HAL

View File

@@ -0,0 +1,264 @@
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = pal.pc
EXTRA_DIST = $(pkgconfig_DATA)
if BUILDSYSTEM_OPENWRT
h_sources = ./stream/inc/Stream.h \
./stream/inc/StreamCompress.h \
./stream/inc/StreamInCall.h \
./stream/inc/StreamPCM.h \
./stream/inc/StreamACDB.h \
./stream/inc/StreamSoundTrigger.h \
./stream/inc/StreamUltraSound.h \
./device/inc/Device.h \
./device/inc/Speaker.h \
./device/inc/Bluetooth.h \
./device/inc/Device.h \
./device/inc/DisplayPort.h \
./device/inc/Handset.h \
./device/inc/HandsetMic.h \
./device/inc/HandsetVaMic.h \
./device/inc/UltrasoundDevice.h \
./device/inc/Headphone.h \
./device/inc/HeadsetMic.h \
./device/inc/HeadsetVaMic.h \
./device/inc/RTProxy.h \
./device/inc/Speaker.h \
./device/inc/SpeakerMic.h \
./device/inc/SpeakerProtection.h \
./device/inc/USBAudio.h \
./plugins/codecs/bt_intf.h \
./session/inc/Session.h \
./session/inc/PayloadBuilder.h \
./session/inc/SessionGsl.h \
./session/inc/SessionAlsaPcm.h \
./session/inc/SessionAlsaCompress.h \
./session/inc/SessionAlsaVoice.h \
./session/inc/SessionAlsaUtils.h \
./session/inc/SoundTriggerEngine.h \
./session/inc/SoundTriggerEngineGsl.h \
./session/inc/SoundTriggerEngineCapi.h \
$(TOPDIR)/src/audio/mm-audio-headers/capiv2_api/capi_v2.h \
$(TOPDIR)/src/audio/mm-audio-headers/capiv2_api/capi_v2_events.h \
$(TOPDIR)/src/audio/mm-audio-headers/capiv2_api/capi_v2_extn.h \
$(TOPDIR)/src/audio/mm-audio-headers/capiv2_api/capi_v2_properties.h \
$(TOPDIR)/src/audio/mm-audio-headers/capiv2_api/capi_v2_types.h \
./resource_manager/inc/ResourceManager.h \
./PalDefs.h \
./PalApi.h \
./PalAudioRoute.h \
./PalCommon.h \
./utils/inc/PalRingBuffer.h \
./plugins/codecs/bt_intf.h \
./utils/inc/SoundTriggerPlatformInfo.h
AM_CPPFLAGS := -I ./stream/inc
AM_CPPFLAGS += -I ./device/inc
AM_CPPFLAGS += -I ./session/inc
AM_CPPFLAGS += -I ./resource_manager/inc
AM_CPPFLAGS += -I ./utils/inc
AM_CPPFLAGS += -I ./
AM_CPPFLAGS += $(SPF_CFLAGS)/
AM_CPPFLAGS += $(ACDBDATA_CFLAGS)
AM_CPPFLAGS += -I $(TOPDIR)/src/audio/mm-audio-headers/capiv2_api/
pal_sources = ./stream/src/Stream.cpp \
./stream/src/StreamCompress.cpp \
./stream/src/StreamInCall.cpp \
./stream/src/StreamPCM.cpp \
./stream/src/StreamSoundTrigger.cpp \
./stream/src/StreamUltraSound.cpp \
./device/src/Device.cpp \
./device/src/Speaker.cpp \
./device/src/Headphone.cpp \
./device/inc/USBAudio.cpp \
./device/src/SpeakerMic.cpp \
./device/src/Bluetooth.cpp \
./device/src/DisplayPort.cpp \
./device/src/Handset.cpp \
./device/src/HandsetMic.cpp \
./device/src/HandsetVaMic.cpp \
./device/src/UltrasoundDevice.cpp \
./device/src/RTProxy.cpp \
./device/src/SpeakerProtection.cpp \
./session/src/Session.cpp \
./session/src/PayloadBuilder.cpp \
./session/src/SessionAlsaUtils.cpp \
./session/src/SessionAlsaPcm.cpp \
./session/src/SessionAlsaCompress.cpp \
./session/src/SessionAlsaVoice.cpp \
./session/src/SoundTriggerEngine.cpp \
./session/src/SoundTriggerEngineGsl.cpp \
./session/src/SoundTriggerEngineCapi.cpp \
./resource_manager/src/ResourceManager.cpp \
./resource_manager/src/SndCardMonitor.cpp \
./Pal.cpp \
./utils/src/PalRingBuffer.cpp \
./utils/src/SoundTriggerPlatformInfo.cpp
else
h_sources = ${top_srcdir}/stream/inc/Stream.h \
${top_srcdir}/stream/inc/StreamCompress.h \
${top_srcdir}/stream/inc/StreamInCall.h \
${top_srcdir}/stream/inc/StreamPCM.h \
${top_srcdir}/stream/inc/StreamSoundTrigger.h \
${top_srcdir}/stream/inc/StreamUltraSound.h \
${top_srcdir}/device/inc/Device.h \
${top_srcdir}/device/inc/Speaker.h \
${top_srcdir}/device/inc/Headphone.h \
${top_srcdir}/device/inc/Bluetooth.h \
${top_srcdir}/plugins/codecs/bt_intf.h \
${top_srcdir}/device/inc/USBAudio.h \
${top_srcdir}/device/inc/SpeakerMic.h \
${top_srcdir}/device/inc/HeadsetMic.h \
${top_srcdir}/device/inc/Handset.h \
${top_srcdir}/device/inc/HandsetMic.h \
${top_srcdir}/device/inc/HandsetVaMic.h \
${top_srcdir}/device/inc/DisplayPort.h \
${top_srcdir}/device/inc/UltrasoundDevice.h \
${top_srcdir}/device/inc/RTProxy.h \
${top_srcdir}/device/inc/SpeakerProtection.h \
${top_srcdir}/session/inc/ACDEngine.h \
${top_srcdir}/session/inc/Session.h \
${top_srcdir}/session/inc/PayloadBuilder.h \
${top_srcdir}/session/inc/SessionGsl.h \
${top_srcdir}/session/inc/SessionAlsaPcm.h \
${top_srcdir}/session/inc/SessionAlsaCompress.h \
${top_srcdir}/session/inc/SessionAlsaVoice.h \
${top_srcdir}/session/inc/SessionAlsaUtils.h \
${top_srcdir}/session/inc/SoundTriggerEngine.h \
${top_srcdir}/session/inc/SoundTriggerEngineGsl.h \
${top_srcdir}/session/inc/SoundTriggerEngineCapi.h \
${WORKSPACE}/audio/mm-audio-headers/capiv2_api/capi_v2.h \
${WORKSPACE}/audio/mm-audio-headers/capiv2_api/capi_v2_events.h \
${WORKSPACE}/audio/mm-audio-headers/capiv2_api/capi_v2_extn.h \
${WORKSPACE}/audio/mm-audio-headers/capiv2_api/capi_v2_properties.h \
${WORKSPACE}/audio/mm-audio-headers/capiv2_api/capi_v2_types.h \
${top_srcdir}/resource_manager/inc/ResourceManager.h \
${top_srcdir}/resource_manager/inc/SndCardMonitor.h \
${top_srcdir}/PalDefs.h \
${top_srcdir}/PalApi.h \
${top_srcdir}/PalAudioRoute.h \
${top_srcdir}/PalCommon.h \
${top_srcdir}/utils/inc/PalRingBuffer.h \
${top_srcdir}/utils/inc/SoundTriggerPlatformInfo.h \
${top_srcdir}/utils/inc/ChargerListener.h \
${top_srcdir}/context_manager/inc/ContextManager.h
AM_CPPFLAGS := -I $(top_srcdir)/stream/inc
AM_CPPFLAGS += -I $(top_srcdir)/device/inc
AM_CPPFLAGS += -I $(top_srcdir)/session/inc
AM_CPPFLAGS += -I $(top_srcdir)/resource_manager/inc
AM_CPPFLAGS += -I $(top_srcdir)/utils/inc
AM_CPPFLAGS += -I $(top_srcdir)/plugins/codecs
AM_CPPFLAGS += -I $(top_srcdir)/context_manager/inc
AM_CPPFLAGS += -I $(top_srcdir)/
AM_CPPFLAGS += @AGM_CFLAGS@
AM_CPPFLAGS += @SPF_CFLAGS@
AM_CPPFLAGS += @MMHEADERS_CFLAGS@
AM_CPPFLAGS += -Wno-sign-compare -Wno-unused-result
pal_sources = ${top_srcdir}/stream/src/Stream.cpp \
${top_srcdir}/stream/src/StreamCompress.cpp \
${top_srcdir}/stream/src/StreamInCall.cpp \
${top_srcdir}/stream/src/StreamPCM.cpp \
${top_srcdir}/stream/src/StreamSoundTrigger.cpp \
${top_srcdir}/stream/src/StreamUltraSound.cpp \
${top_srcdir}/stream/src/StreamSensorPCMData.cpp \
${top_srcdir}/device/src/Device.cpp \
${top_srcdir}/device/src/Speaker.cpp \
${top_srcdir}/device/src/Headphone.cpp \
${top_srcdir}/device/src/SpeakerMic.cpp \
${top_srcdir}/device/src/Bluetooth.cpp \
${top_srcdir}/device/src/HeadsetMic.cpp \
${top_srcdir}/device/src/Handset.cpp \
${top_srcdir}/device/src/HandsetMic.cpp \
${top_srcdir}/device/src/HandsetVaMic.cpp \
${top_srcdir}/device/src/DisplayPort.cpp \
${top_srcdir}/device/src/UltrasoundDevice.cpp \
${top_srcdir}/device/src/RTProxy.cpp \
${top_srcdir}/device/src/SpeakerProtection.cpp \
${top_srcdir}/device/src/USBAudio.cpp \
${top_srcdir}/device/src/ExtEC.cpp \
${top_srcdir}/session/src/Session.cpp \
${top_srcdir}/session/src/PayloadBuilder.cpp \
${top_srcdir}/session/src/SessionAlsaUtils.cpp \
${top_srcdir}/session/src/SessionAlsaPcm.cpp \
${top_srcdir}/session/src/SessionAlsaCompress.cpp \
${top_srcdir}/session/src/SessionAlsaVoice.cpp \
${top_srcdir}/session/src/SoundTriggerEngine.cpp \
${top_srcdir}/session/src/SoundTriggerEngineGsl.cpp \
${top_srcdir}/session/src/SoundTriggerEngineCapi.cpp \
${top_srcdir}/resource_manager/src/ResourceManager.cpp \
${top_srcdir}/resource_manager/src/SndCardMonitor.cpp \
${top_srcdir}/Pal.cpp \
${top_srcdir}/utils/src/PalRingBuffer.cpp \
${top_srcdir}/utils/src/SoundTriggerPlatformInfo.cpp \
${top_srcdir}/context_manager/src/ContextManager.cpp \
${top_srcdir}/stream/src/StreamNonTunnel.cpp \
${top_srcdir}/stream/src/StreamACD.cpp \
${top_srcdir}/stream/src/StreamCommon.cpp \
${top_srcdir}/stream/src/StreamContextProxy.cpp \
${top_srcdir}/stream/src/StreamCommonProxy.cpp \
${top_srcdir}/device/src/FMDevice.cpp \
${top_srcdir}/device/src/HapticsDev.cpp \
${top_srcdir}/session/src/SessionAgm.cpp \
${top_srcdir}/session/src/ContextDetectionEngine.cpp \
${top_srcdir}/session/src/ACDEngine.cpp \
${top_srcdir}/utils/src/ACDPlatformInfo.cpp \
${top_srcdir}/utils/src/VoiceUIPlatformInfo.cpp \
${top_srcdir}/device/src/HeadsetVaMic.cpp
acl_sources = ${top_srcdir}/utils/src/ChargerListener.cpp
endif
AM_CPPFLAGS += -D__unused=__attribute__\(\(__unused__\)\) -DLINUX_ENABLED
AM_CPPFLAGS += -DCONFIG_GSL
library_include_HEADERS = $(h_sources)
library_includedir = $(includedir)/pal
lib_LTLIBRARIES = libpal.la
libpal_la_SOURCES = $(pal_sources)
if BUILDSYSTEM_OPENWRT
libpal_la_LIBADD = $(GLIB_LIBS) -ltinyalsa -laudioroute -lar_osal -lexpat -ltinycompress -lagmclientwrapper
libpal_la_LIBADD += -lar_gsl -lacdbdata
else
libpal_la_LIBADD = $(GLIB_LIBS) -ltinyalsa -laudioroute -lar_osal -lexpat -ltinycompress
endif
if IS_SDXLEMUR
libpal_la_LIBADD += -lagmclientwrapper
endif
if IS_SA525M
libpal_la_LIBADD += -lagmclientwrapper
endif
libpal_la_CPPFLAGS := $(AM_CPPFLAGS)
libpal_la_CPPFLAGS += -std=c++14
libpal_la_LDFLAGS = -shared -avoid-version
libpal_la_CPPFLAGS += @GLIB_CFLAGS@ -Dstrlcpy=g_strlcpy -Dstrlcat=g_strlcat -include glib.h
libpal_la_CPPFLAGS += -DACD_SM_FILEPATH=\"/etc/models/acd/\"
libpal_la_list = ./configs/$(MACHINE_ENABLED)/kvh2xml.xml \
./configs/$(MACHINE_ENABLED)/mixer_paths_kona_mtp.xml \
./configs/$(MACHINE_ENABLED)/resourcemanager_kona_mtp.xml \
./configs/$(MACHINE_ENABLED)/usecaseKvManager.xml
if BUILDSYSTEM_OPENWRT
libpal_la_LIBADD += -lglib-2.0
endif
if COMPILE_COMPRESS
libpal_la_CPPFLAGS += -DSND_COMPRESS_DEC_HDR
endif
lib_LTLIBRARIES += libaudiocl.la
libaudiocl_la_SOURCES = $(acl_sources)
libaudiocl_la_LIBADD = @GLIB_LIBS@
libaudiocl_la_CPPFLAGS := $(AM_CPPFLAGS)
libaudiocl_la_LDFLAGS = -shared -avoid-version -lcutils -llog
# install essential xml files under /etc
root_etcdir = "/etc"
root_etc_SCRIPTS = $(libpal_la_list)
install-data-hook:
chmod go+r $(DESTDIR)$(root_etcdir)/kvh2xml.xml
chmod go+r $(DESTDIR)$(root_etcdir)/mixer_paths_kona_mtp.xml
chmod go+r $(DESTDIR)$(root_etcdir)/resourcemanager_kona_mtp.xml
chmod go+r $(DESTDIR)$(root_etcdir)/usecaseKvManager.xml

1741
qcom/opensource/pal/Pal.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,86 @@
/*
* Copyright (c) 2019, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted (subject to the limitations in the
* disclaimer below) provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
*
* * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef AUDIO_HW
#define AUDIO_HW
#ifdef FEATURE_IPQ_OPENWRT
#include "audio_route.h"
#else
#include "audio_route/audio_route.h"
#endif
static std::mutex audio_route_mutex;
inline void enableDevice(struct audio_route *ar, char * device_name)
{
audio_route_mutex.lock();
audio_route_apply_and_update_path(ar, device_name);
audio_route_mutex.unlock();
}
inline void disableDevice(struct audio_route *ar, char * device_name)
{
audio_route_mutex.lock();
audio_route_reset_and_update_path(ar, device_name);
audio_route_mutex.unlock();
}
#endif

View File

@@ -0,0 +1,75 @@
/*
* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Changes from Qualcomm Innovation Center are provided under the following license:
*
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause-Clear
*/
#define LOG_NDEBUG 0
#include "ar_osal_mem_op.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <log/log.h>
// { SEC_AUDIO_COMMON
#include "audioInfo_Interface.h"
#include "SecPal.h"
// } SEC_AUDIO_COMMON
#define PAL_LOG_ERR (0x1) /**< error message, represents code bugs that should be debugged and fixed.*/
#define PAL_LOG_INFO (0x2) /**< info message, additional info to support debug */
#define PAL_LOG_DBG (0x4) /**< debug message, required at minimum for debug.*/
#define PAL_LOG_VERBOSE (0x8)/**< verbose message, useful primarily to help developers debug low-level code */
extern uint32_t pal_log_lvl;
#define PAL_FATAL(log_tag, arg,...) \
if (pal_log_lvl & PAL_LOG_ERR) { \
ALOGE("%s: %d: " arg, __func__, __LINE__, ##__VA_ARGS__);\
abort(); \
}
#define PAL_ERR(log_tag, arg,...) \
if (pal_log_lvl & PAL_LOG_ERR) { \
ALOGE("%s: %d: " arg, __func__, __LINE__, ##__VA_ARGS__);\
}
#define PAL_DBG(log_tag,arg,...) \
if (pal_log_lvl & PAL_LOG_DBG) { \
ALOGD("%s: %d: " arg, __func__, __LINE__, ##__VA_ARGS__); \
}
#define PAL_INFO(log_tag,arg,...) \
if (pal_log_lvl & PAL_LOG_INFO) { \
ALOGI("%s: %d: " arg, __func__, __LINE__, ##__VA_ARGS__);\
}
#define PAL_VERBOSE(log_tag,arg,...) \
if (pal_log_lvl & PAL_LOG_VERBOSE) { \
ALOGV("%s: %d: " arg, __func__, __LINE__, ##__VA_ARGS__);\
}

View File

@@ -0,0 +1,370 @@
<!-- Copyright (c) 2019, 2021, The Linux Foundation. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Changes from Qualcomm Innovation Center are provided under the following license:
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause-Clear
* -->
<defs>
<card>
<id>100</id>
<name>kalamavirtualsndcard</name>
<pcm-device>
<id>100</id>
<name>PCM100</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>101</id>
<name>PCM101</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>102</id>
<name>PCM102</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>103</id>
<name>PCM103</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>104</id>
<name>PCM104</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<compress-device>
<id>105</id>
<name>COMPRESS105</name>
<compress_plugin>
<so-name>libagm_compress_plugin.so</so-name>
</compress_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</compress-device>
<pcm-device>
<id>106</id>
<name>VOICEMMODE1p</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>107</id>
<name>VOICEMMODE2p</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>108</id>
<name>VOICEMMODE1c</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>109</id>
<name>VOICEMMODE2c</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>110</id>
<name>PCM110</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>111</id>
<name>PCM111</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>112</id>
<name>PCM112</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>113</id>
<name>PCM113</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>114</id>
<name>PCM114</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>115</id>
<name>PCM115</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>116</id>
<name>PCM116</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<capture>1</capture>
<session_mode>3</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>117</id>
<name>PCM117</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
</props>
</pcm-device>
<pcm-device>
<id>118</id>
<name>PCM118</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>119</id>
<name>PCM119</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>120</id>
<name>PCM120</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>121</id>
<name>PCM121</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>122</id>
<name>ExtEC122</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>123</id>
<name>PCM123</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<compress-device>
<id>124</id>
<name>COMPRESS124</name>
<compress_plugin>
<so-name>libagm_compress_plugin.so</so-name>
</compress_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<!-- AGM_SESSION_COMPRESS -->
<session_mode>4</session_mode>
</props>
</compress-device>
<mixer>
<id>1</id>
<name>agm_mixer</name>
<mixer_plugin>
<so-name>libagm_mixer_plugin.so</so-name>
</mixer_plugin>
</mixer>
</card>
</defs>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,550 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
-->
<!--
-->
<!-- Redistribution and use in source and binary forms, with or without
-->
<!-- modification, are permitted provided that the following conditions are
-->
<!-- met:
-->
<!-- * Redistributions of source code must retain the above copyright
-->
<!-- notice, this list of conditions and the following disclaimer.
-->
<!-- * Redistributions in binary form must reproduce the above
-->
<!-- copyright notice, this list of conditions and the following
-->
<!-- disclaimer in the documentation and/or other materials provided
-->
<!-- with the distribution.
-->
<!-- * Neither the name of The Linux Foundation nor the names of its
-->
<!-- contributors may be used to endorse or promote products derived
-->
<!-- from this software without specific prior written permission.
-->
<!--
-->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="max_sessions" value="128"/>
<param key="logging_level" value ="3" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec"
codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec"
codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc"
codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc"
codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc"
codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc"
codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc"
codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec"
codec_library="lib_bt_aptx.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and
should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and
should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and
should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and
should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and
should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>OFF</sidetone_mode>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and
should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and
should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and
should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and
should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>va-mic</snd_device_name>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
</in-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<cps_enabled>0</cps_enabled>
<is_24_bit_supported>0</is_24_bit_supported>
<Charge_concurrency_enabled>0</Charge_concurrency_enabled>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<snd_device_name>handset</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<sound_trigger_platform_info>
<param version="0x0100" /> <!-- this must be the first param -->
<common_config>
<param enable_failure_detection="false" />
<param support_device_switch="true" />
<param transit_to_non_lpi_on_charging="false" />
<!-- Param used to indicate if SVA has dedicated back end path and
ports not conflicting with other audio paths -->
<param dedicated_sva_path="true" />
<param dedicated_headset_path="false" />
<param lpi_enable="false" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="0xAD000000" value="0xAD00000C"/>
</devicePP-metadata>
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="0xAD000000" value="0xAD00000E"/>
</devicePP-metadata>
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="0xAD000000" value="0xAD00000C"/>
</devicePP-metadata>
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="0xAD000000" value="0xAD00000E"/>
</devicePP-metadata>
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="0xAD000000" value="0xAD00000B"/>
</devicePP-metadata>
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="0xAD000000" value="0xAD00000B"/>
</devicePP-metadata>
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="0xAD000000" value="0xAD000001"/>
</devicePP-metadata>
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="0xAD000000" value="0xAD000001"/>
</devicePP-metadata>
<param snd_name="va-mic-dmic" />
</capture_profile>
</capture_profile_list>
<!-- Multiple sound_model_config tags can be listed, each with unique
-->
<!-- vendor_uuid. The below tag represents QTI SVA sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid.
-->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b"/>
<!-- durations in us -->
<param kw_start_tolerance="300000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="200000" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
</operating_modes>
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION",
"CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2vop.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<module_params>
<param module_type="GMM" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
<streamConfig-metadata>
<kvpair key="0xBC000000" value="0xBC000001"/>
</streamConfig-metadata>
</module_params>
<module_params>
<param module_type="PDK" />
<param load_sound_model_ids="0xC0000008, 0x0800124E"/>
<param unload_sound_model_ids="0xC0000008, 0x08001250"/>
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x0800124F"/>
<param engine_reset_ids="0xC0000008, 0x08001051" />
<streamConfig-metadata>
<kvpair key="0xBC000000" value="0xBC000006"/>
</streamConfig-metadata>
</module_params>
</sound_model_config>
<!-- Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15"/>
<param get_module_version="false" />
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_LPI"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
</operating_modes>
<module_params>
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param unload_sound_model_ids="0xC0000008, 0x00012C15" />
<param custom_config_ids="0xC0000008, 0x00012C20" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param version_ids="0xC0000008, 0x18000101" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
<streamConfig-metadata>
<kvpair key="0xBC000000" value="0xBC000002"/>
</streamConfig-metadata>
</module_params>
</sound_model_config>
</sound_trigger_platform_info>
</resource_manager_info>

View File

@@ -0,0 +1,412 @@
<!-- Copyright (c) 2019, 2021, The Linux Foundation. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Changes from Qualcomm Innovation Center are provided under the following license:
*
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted (subject to the limitations in the
* disclaimer below) provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
*
* * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<defs>
<card>
<id>100</id>
<name>kalamavirtualsndcard</name>
<pcm-device>
<id>100</id>
<name>PCM100</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>101</id>
<name>PCM101</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>102</id>
<name>PCM102</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>103</id>
<name>PCM103</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>104</id>
<name>PCM104</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<compress-device>
<id>105</id>
<name>COMPRESS105</name>
<compress_plugin>
<so-name>libagm_compress_plugin.so</so-name>
</compress_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</compress-device>
<pcm-device>
<id>106</id>
<name>VOICEMMODE1p</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>107</id>
<name>VOICEMMODE2p</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>108</id>
<name>VOICEMMODE1c</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>109</id>
<name>VOICEMMODE2c</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>110</id>
<name>PCM110</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>111</id>
<name>PCM111</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>112</id>
<name>PCM112</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>113</id>
<name>PCM113</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>114</id>
<name>PCM114</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>115</id>
<name>PCM115</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>116</id>
<name>PCM116</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<capture>1</capture>
<session_mode>3</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>117</id>
<name>PCM117</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
</props>
</pcm-device>
<pcm-device>
<id>118</id>
<name>PCM118</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>119</id>
<name>PCM119</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>120</id>
<name>PCM120</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>121</id>
<name>PCM121</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>122</id>
<name>ExtEC122</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>123</id>
<name>PCM123</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<compress-device>
<id>124</id>
<name>COMPRESS124</name>
<compress_plugin>
<so-name>libagm_compress_plugin.so</so-name>
</compress_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<!-- AGM_SESSION_COMPRESS -->
<session_mode>4</session_mode>
</props>
</compress-device>
<pcm-device>
<id>125</id>
<name>PCM125</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<mixer>
<id>1</id>
<name>agm_mixer</name>
<mixer_plugin>
<so-name>libagm_mixer_plugin.so</so-name>
</mixer_plugin>
</mixer>
</card>
</defs>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,724 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="max_sessions" value="128"/>
<param key="logging_level" value ="3" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>OFF</sidetone_mode>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_WIRED_HEADSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>va-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HEADSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>headset-va-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_USB_HEADSET</id>
<back_end_name>USB_AUDIO-TX</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>usb-headset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_PROXY</id>
<back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>afe-proxy</snd_device_name>
<usecase>
<name>PAL_STREAM_PROXY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_VI_FEEDBACK</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>vi-feedback</snd_device_name>
</in-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_AUX_DIGITAL</id>
<back_end_name>DISPLAY_PORT-RX</back_end_name>
<max_channels>32</max_channels>
<channels>2</channels>
<snd_device_name>display-port</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HDMI</id>
<back_end_name>DISPLAY_PORT-RX</back_end_name>
<max_channels>32</max_channels>
<channels>2</channels>
<snd_device_name>display-port</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_USB_DEVICE</id>
<back_end_name>USB_AUDIO-RX</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>usb-headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_USB_HEADSET</id>
<back_end_name>USB_AUDIO-RX</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>usb-headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_AUX_DIGITAL_1</id>
<back_end_name>DISPLAY_PORT-RX</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>display-port</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_PROXY</id>
<back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<sound_trigger_platform_info>
<param version="0x0100" /> <!-- this must be the first param -->
<common_config>
<param max_sessions="8" />
<param enable_failure_detection="false" />
<param support_device_switch="true" />
<param transit_to_non_lpi_on_charging="false" />
<!-- Param used to indicate if SVA has dedicated back end path and ports not conflicting with other audio paths -->
<param dedicated_sva_path="true" />
<param dedicated_headset_path="false" />
<param lpi_enable="true" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_VOICE_UI_RAW"/>
</devicePP-metadata>
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_VOICE_UI_RAW"/>
</devicePP-metadata>
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_VOICE_UI_RAW"/>
</devicePP-metadata>
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
<param snd_name="va-mic-tmic" />
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
<param snd_name="va-mic-qmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
<param snd_name="va-mic-tmic" />
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
<param snd_name="va-mic-qmic" />
</capture_profile>
</capture_profile_list>
<!-- Multiple sound_model_config tags can be listed, each with unique -->
<!-- vendor_uuid. The below tag represents QTI SVA sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid. -->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b"/>
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<streamConfig-metadata>
<!-- see kvh2xml.h -->
<kvpair key="STREAM_CONFIG" value="STREAM_CFG_VUI_SVA"/> <!-- Hotword Stream Config -->
</streamConfig-metadata>
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS"/>
<high_performance capture_profile_handset="TRI_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS"/>
</operating_modes>
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2vop.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
</sound_model_config>
<!-- Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15"/>
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<streamConfig-metadata>
<!-- see kvh2xml.h -->
<kvpair key="STREAM_CONFIG" value="STREAM_CFG_VUI_HW"/> <!-- Hotword Stream Config -->
</streamConfig-metadata>
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW"/>
</operating_modes>
</sound_model_config>
</sound_trigger_platform_info>
</resource_manager_info>

View File

@@ -0,0 +1,718 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="max_sessions" value="128"/>
<param key="logging_level" value ="3" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
</bt_codecs>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>OFF</sidetone_mode>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_WIRED_HEADSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>va-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HEADSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>headset-va-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_USB_HEADSET</id>
<back_end_name>USB_AUDIO-TX</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>usb-headset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_PROXY</id>
<back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>afe-proxy</snd_device_name>
<usecase>
<name>PAL_STREAM_PROXY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_VI_FEEDBACK</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>vi-feedback-mono-2</snd_device_name>
</in-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<speaker_mono_right>1</speaker_mono_right>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_AUX_DIGITAL</id>
<back_end_name>DISPLAY_PORT-RX</back_end_name>
<max_channels>32</max_channels>
<channels>2</channels>
<snd_device_name>display-port</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HDMI</id>
<back_end_name>DISPLAY_PORT-RX</back_end_name>
<max_channels>32</max_channels>
<channels>2</channels>
<snd_device_name>display-port</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_USB_DEVICE</id>
<back_end_name>USB_AUDIO-RX</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>usb-headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_USB_HEADSET</id>
<back_end_name>USB_AUDIO-RX</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>usb-headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_AUX_DIGITAL_1</id>
<back_end_name>DISPLAY_PORT-RX</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>display-port</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_PROXY</id>
<back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<sound_trigger_platform_info>
<param version="0x0100" /> <!-- this must be the first param -->
<common_config>
<param max_sessions="8" />
<param enable_failure_detection="false" />
<param support_device_switch="true" />
<param transit_to_non_lpi_on_charging="false" />
<!-- Param used to indicate if SVA has dedicated back end path and ports not conflicting with other audio paths -->
<param dedicated_sva_path="true" />
<param dedicated_headset_path="false" />
<param lpi_enable="true" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_VOICE_UI_RAW"/>
</devicePP-metadata>
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_VOICE_UI_RAW"/>
</devicePP-metadata>
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_VOICE_UI_RAW"/>
</devicePP-metadata>
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
<param snd_name="va-mic-tmic" />
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
<param snd_name="va-mic-qmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
<param snd_name="va-mic-tmic" />
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
<param snd_name="va-mic-qmic" />
</capture_profile>
</capture_profile_list>
<!-- Multiple sound_model_config tags can be listed, each with unique -->
<!-- vendor_uuid. The below tag represents QTI SVA sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid. -->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b"/>
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<streamConfig-metadata>
<!-- see kvh2xml.h -->
<kvpair key="STREAM_CONFIG" value="STREAM_CFG_VUI_SVA"/> <!-- Hotword Stream Config -->
</streamConfig-metadata>
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS"/>
<high_performance capture_profile_handset="TRI_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS"/>
</operating_modes>
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2vop.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
</sound_model_config>
<!-- Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15"/>
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<streamConfig-metadata>
<!-- see kvh2xml.h -->
<kvpair key="STREAM_CONFIG" value="STREAM_CFG_VUI_HW"/> <!-- Hotword Stream Config -->
</streamConfig-metadata>
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW"/>
</operating_modes>
</sound_model_config>
</sound_trigger_platform_info>
</resource_manager_info>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,641 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<!-- Changes from Qualcomm Innovation Center are provided under the following license: -->
<!-- -->
<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted (subject to the limitations in the -->
<!-- disclaimer below) provided that the following conditions are met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE -->
<!-- GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT -->
<!-- HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -->
<!-- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -->
<!-- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -->
<!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -->
<!-- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -->
<!-- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -->
<!-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE -->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="max_sessions" value="128"/>
<param key="logging_level" value ="3" />
<param key="context_manager_enable" value ="false" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<sleep_monitor_vote_streams>
<low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
<avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
</sleep_monitor_vote_streams>
<spkr_temp_ctls>
<temp_ctrl spkr_posn="SPKR_RIGHT" ctrl="BESBEV Temp"/>
</spkr_temp_ctls>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>HW</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_TELEPHONY_RX</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>OFF</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>va-mic</snd_device_name>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_VI_FEEDBACK</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-4</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<bit_width>16</bit_width>
<samplerate>48000</samplerate>
<snd_device_name>vi-feedback</snd_device_name>
<!--Add the supported channel_map depending on number of channels -->
<!--channel 0 -> Vsen Left -->
<!--channel 1 -> Isen Left -->
<!--channel 2 -> Vsen Right -->
<!--channel 3 -> Isen Right -->
</in-device>
<out-device>
<id>PAL_DEVICE_NONE</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>none</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<cps_enabled>0</cps_enabled>
<!--specify the supported bit format on speaker end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S16_LE</supported_bit_format>
<Charge_concurrency_enabled>1</Charge_concurrency_enabled>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>2</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<acd_platform_info>
<common_config>
<param acd_enable="false" />
<param support_device_switch="true" />
<param support_nlpi_switch="true" />
<param lpi_enable="true" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
</capture_profile_list>
<stream_config>
<name>qc_acd</name>
<param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI"/>
<high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS"/>
</operating_modes>
<sound_models>
<model>
<name>ACD_SOUND_MODEL_ID_EVENT</name>
<bin>event.eai</bin>
<uuid>0x0B001007</uuid>
<contexts>
<context id="0x0800132D"/> <!-- EVENT_ALARM -->
<context id="0x0800132E"/> <!-- EVENT_BABYCRYING -->
<context id="0x0800132F"/> <!-- EVENT_DOGBARKING -->
<context id="0x08001330"/> <!-- EVENT_DOORBELL -->
<context id="0x08001331"/> <!-- EVENT_DOORCLOSE -->
<context id="0x08001332"/> <!-- EVENT_DOOROPEN -->
<context id="0x08001333"/> <!-- EVENT_GLASSBREAKING -->
<context id="0x08001334"/> <!-- EVENT_SIREN -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_SPEECH</name>
<bin>speech.eai</bin>
<uuid>0x0B001008</uuid>
<contexts>
<context id="0x08001335"/> <!-- AMBIENCE_SPEECH -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_MUSIC</name>
<bin>music.eai</bin>
<uuid>0x0B001009</uuid>
<contexts>
<context id="0x08001336"/> <!-- AMBIENCE_MUSIC -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
<bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
<uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
<contexts>
<context id="0x08001337"/> <!-- AMBIENCE_NOISY_SPL -->
<context id="0x08001338"/> <!-- AMBIENCE_SILENT_SPL -->
<context id="0x08001339"/> <!-- AMBIENCE_NOISY_SFLUX -->
<context id="0x0800133A"/> <!-- AMBIENCE_SILENT_SFLUX -->
</contexts>
</model>
</sound_models>
</stream_config>
</acd_platform_info>
<sound_trigger_platform_info>
<param version="0x0100" /> <!-- this must be the first param -->
<common_config>
<param enable_failure_detection="false" />
<param support_device_switch="true" />
<param transit_to_non_lpi_on_charging="false" />
<!-- Param used to indicate if SVA has dedicated back end path and
ports not conflicting with other audio paths -->
<param dedicated_sva_path="true" />
<param dedicated_headset_path="false" />
<param lpi_enable="false" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
<param sound_model_lib="liblistensoundmodel2.so" /> <!-- sound model lib name -->
<param notify_second_stage_failure="false"/>
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
</capture_profile_list>
<!-- Multiple sound_model_config tags can be listed, each with unique
-->
<!-- vendor_uuid. The below tag represents QTI SVA sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid.
-->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b"/>
<!-- durations in us -->
<param kw_start_tolerance="300000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="200000" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
</operating_modes>
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION",
"CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2vop.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<module_params>
<param module_type="GMM" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
<module_params>
<param module_type="PDK" />
<param load_sound_model_ids="0xC0000008, 0x0800124E"/>
<param unload_sound_model_ids="0xC0000008, 0x08001250"/>
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x0800124F"/>
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
<!-- Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15"/>
<param get_module_version="false" />
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_LPI"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
</operating_modes>
<module_params>
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param unload_sound_model_ids="0xC0000008, 0x00012C15" />
<param custom_config_ids="0xC0000008, 0x00012C20" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param version_ids="0xC0000008, 0x18000101" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
</sound_trigger_platform_info>
</resource_manager_info>

View File

@@ -0,0 +1,624 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<!-- Changes from Qualcomm Innovation Center are provided under the following license: -->
<!-- -->
<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted (subject to the limitations in the -->
<!-- disclaimer below) provided that the following conditions are met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE -->
<!-- GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT -->
<!-- HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -->
<!-- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -->
<!-- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -->
<!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -->
<!-- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -->
<!-- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -->
<!-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE -->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="max_sessions" value="128"/>
<param key="logging_level" value ="3" />
<param key="context_manager_enable" value ="false" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<sleep_monitor_vote_streams>
<low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
<avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
</sleep_monitor_vote_streams>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>HW</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_TELEPHONY_RX</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>OFF</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>va-mic</snd_device_name>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
</in-device>
<out-device>
<id>PAL_DEVICE_NONE</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>none</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<cps_enabled>0</cps_enabled>
<!--specify the supported bit format on speaker end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S16_LE</supported_bit_format>
<Charge_concurrency_enabled>0</Charge_concurrency_enabled>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>2</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<acd_platform_info>
<common_config>
<param acd_enable="false" />
<param support_device_switch="true" />
<param support_nlpi_switch="true" />
<param lpi_enable="true" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
</capture_profile_list>
<stream_config>
<name>qc_acd</name>
<param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI"/>
<high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS"/>
</operating_modes>
<sound_models>
<model>
<name>ACD_SOUND_MODEL_ID_EVENT</name>
<bin>event.eai</bin>
<uuid>0x0B001007</uuid>
<contexts>
<context id="0x0800132D"/> <!-- EVENT_ALARM -->
<context id="0x0800132E"/> <!-- EVENT_BABYCRYING -->
<context id="0x0800132F"/> <!-- EVENT_DOGBARKING -->
<context id="0x08001330"/> <!-- EVENT_DOORBELL -->
<context id="0x08001331"/> <!-- EVENT_DOORCLOSE -->
<context id="0x08001332"/> <!-- EVENT_DOOROPEN -->
<context id="0x08001333"/> <!-- EVENT_GLASSBREAKING -->
<context id="0x08001334"/> <!-- EVENT_SIREN -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_SPEECH</name>
<bin>speech.eai</bin>
<uuid>0x0B001008</uuid>
<contexts>
<context id="0x08001335"/> <!-- AMBIENCE_SPEECH -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_MUSIC</name>
<bin>music.eai</bin>
<uuid>0x0B001009</uuid>
<contexts>
<context id="0x08001336"/> <!-- AMBIENCE_MUSIC -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
<bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
<uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
<contexts>
<context id="0x08001337"/> <!-- AMBIENCE_NOISY_SPL -->
<context id="0x08001338"/> <!-- AMBIENCE_SILENT_SPL -->
<context id="0x08001339"/> <!-- AMBIENCE_NOISY_SFLUX -->
<context id="0x0800133A"/> <!-- AMBIENCE_SILENT_SFLUX -->
</contexts>
</model>
</sound_models>
</stream_config>
</acd_platform_info>
<sound_trigger_platform_info>
<param version="0x0100" /> <!-- this must be the first param -->
<common_config>
<param enable_failure_detection="false" />
<param support_device_switch="true" />
<param transit_to_non_lpi_on_charging="false" />
<!-- Param used to indicate if SVA has dedicated back end path and
ports not conflicting with other audio paths -->
<param dedicated_sva_path="true" />
<param dedicated_headset_path="false" />
<param lpi_enable="false" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
<param sound_model_lib="liblistensoundmodel2.so" /> <!-- sound model lib name -->
<param notify_second_stage_failure="false"/>
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
</capture_profile_list>
<!-- Multiple sound_model_config tags can be listed, each with unique
-->
<!-- vendor_uuid. The below tag represents QTI SVA sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid.
-->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b"/>
<!-- durations in us -->
<param kw_start_tolerance="300000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="200000" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
</operating_modes>
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION",
"CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2vop.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<module_params>
<param module_type="GMM" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
<module_params>
<param module_type="PDK" />
<param load_sound_model_ids="0xC0000008, 0x0800124E"/>
<param unload_sound_model_ids="0xC0000008, 0x08001250"/>
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x0800124F"/>
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
<!-- Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15"/>
<param get_module_version="false" />
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_LPI"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
</operating_modes>
<module_params>
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param unload_sound_model_ids="0xC0000008, 0x00012C15" />
<param custom_config_ids="0xC0000008, 0x00012C20" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param version_ids="0xC0000008, 0x18000101" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
</sound_trigger_platform_info>
</resource_manager_info>

View File

@@ -0,0 +1,700 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
-->
<!--
-->
<!-- Redistribution and use in source and binary forms, with or without
-->
<!-- modification, are permitted provided that the following conditions are
-->
<!-- met:
-->
<!-- * Redistributions of source code must retain the above copyright
-->
<!-- notice, this list of conditions and the following disclaimer.
-->
<!-- * Redistributions in binary form must reproduce the above
-->
<!-- copyright notice, this list of conditions and the following
-->
<!-- disclaimer in the documentation and/or other materials provided
-->
<!-- with the distribution.
-->
<!-- * Neither the name of The Linux Foundation nor the names of its
-->
<!-- contributors may be used to endorse or promote products derived
-->
<!-- from this software without specific prior written permission.
-->
<!--
-->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<!-- Changes from Qualcomm Innovation Center are provided under the following license:
-->
<!--
-->
<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved
-->
<!--
-->
<!-- Redistribution and use in source and binary forms, with or without
-->
<!-- modification, are permitted (subject to the limitations in the
-->
<!-- disclaimer below) provided that the following conditions are met:
-->
<!-- * Redistributions of source code must retain the above copyright
-->
<!-- notice, this list of conditions and the following disclaimer.
-->
<!-- * Redistributions in binary form must reproduce the above
-->
<!-- copyright notice, this list of conditions and the following
-->
<!-- disclaimer in the documentation and/or other materials provided
-->
<!-- with the distribution.
-->
<!-- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
-->
<!-- contributors may be used to endorse or promote products derived
-->
<!-- from this software without specific prior written permission.
-->
<!--
-->
<!-- NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-->
<!-- GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-->
<!-- HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-->
<!-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-->
<!-- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-->
<!-- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-->
<!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-->
<!-- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-->
<!-- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-->
<!-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
-->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="max_sessions" value="128"/>
<param key="logging_level" value ="3" />
<param key="context_manager_enable" value ="false" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" clock="2" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<sleep_monitor_vote_streams>
<low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
<avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
</sleep_monitor_vote_streams>
<spkr_temp_ctls>
<temp_ctrl spkr_posn="SPKR_RIGHT" ctrl="BB_TEMP"/>
</spkr_temp_ctls>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>MI2S-LPAIF_VA-TX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>HW</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_TELEPHONY_RX</id>
<back_end_name>MI2S-LPAIF_VA-TX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>MI2S-LPAIF_VA-TX-PRIMARY</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>OFF</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>AUDIOSS_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>va-mic</snd_device_name>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_VI_FEEDBACK</id>
<back_end_name>MI2S-LPAIF_RXTX-TX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<bit_width>16</bit_width>
<samplerate>48000</samplerate>
<snd_device_name>vi-feedback</snd_device_name>
<!--Add the supported channel_map depending on number of channels -->
<!--channel 0 -> Vsen Left -->
<!--channel 1 -> Isen Left -->
<!--channel 2 -> Vsen Right -->
<!--channel 3 -> Isen Right -->
<sp_vi_ch_map>
<channel>2</channel>
<channel>1</channel>
</sp_vi_ch_map>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
</in-device>
<out-device>
<id>PAL_DEVICE_NONE</id>
<back_end_name>MI2S-LPAIF_RXTX-RX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>none</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>MI2S-LPAIF_RXTX-RX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<cps_enabled>0</cps_enabled>
<!--specify the supported bit format on speaker end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S16_LE</supported_bit_format>
<Charge_concurrency_enabled>0</Charge_concurrency_enabled>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>2</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>MI2S-LPAIF_RXTX-RX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<acd_platform_info>
<common_config>
<param acd_enable="false" />
<param support_device_switch="true" />
<param support_nlpi_switch="true" />
<param lpi_enable="true" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
</capture_profile_list>
<stream_config>
<name>qc_acd</name>
<param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI"/>
<high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS"/>
</operating_modes>
<sound_models>
<model>
<name>ACD_SOUND_MODEL_ID_EVENT</name>
<bin>event.eai</bin>
<uuid>0x0B001007</uuid>
<contexts>
<context id="0x0800132D"/> <!-- EVENT_ALARM -->
<context id="0x0800132E"/> <!-- EVENT_BABYCRYING -->
<context id="0x0800132F"/> <!-- EVENT_DOGBARKING -->
<context id="0x08001330"/> <!-- EVENT_DOORBELL -->
<context id="0x08001331"/> <!-- EVENT_DOORCLOSE -->
<context id="0x08001332"/> <!-- EVENT_DOOROPEN -->
<context id="0x08001333"/> <!-- EVENT_GLASSBREAKING -->
<context id="0x08001334"/> <!-- EVENT_SIREN -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_SPEECH</name>
<bin>speech.eai</bin>
<uuid>0x0B001008</uuid>
<contexts>
<context id="0x08001335"/> <!-- AMBIENCE_SPEECH -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_MUSIC</name>
<bin>music.eai</bin>
<uuid>0x0B001009</uuid>
<contexts>
<context id="0x08001336"/> <!-- AMBIENCE_MUSIC -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
<bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
<uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
<contexts>
<context id="0x08001337"/> <!-- AMBIENCE_NOISY_SPL -->
<context id="0x08001338"/> <!-- AMBIENCE_SILENT_SPL -->
<context id="0x08001339"/> <!-- AMBIENCE_NOISY_SFLUX -->
<context id="0x0800133A"/> <!-- AMBIENCE_SILENT_SFLUX -->
</contexts>
</model>
</sound_models>
</stream_config>
</acd_platform_info>
<sound_trigger_platform_info>
<param version="0x0100" /> <!-- this must be the first param -->
<common_config>
<param enable_failure_detection="false" />
<param support_device_switch="true" />
<param transit_to_non_lpi_on_charging="false" />
<!-- Param used to indicate if SVA has dedicated back end path and
ports not conflicting with other audio paths -->
<param dedicated_sva_path="true" />
<param dedicated_headset_path="false" />
<param lpi_enable="false" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
<param sound_model_lib="liblistensoundmodel2.so" /> <!-- sound model lib name -->
<param notify_second_stage_failure="false"/>
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
</capture_profile_list>
<!-- Multiple sound_model_config tags can be listed, each with unique
-->
<!-- vendor_uuid. The below tag represents QTI SVA sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid.
-->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b"/>
<!-- durations in us -->
<param kw_start_tolerance="300000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="200000" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
</operating_modes>
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION",
"CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2vop.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<module_params>
<param module_type="GMM" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
<module_params>
<param module_type="PDK" />
<param load_sound_model_ids="0xC0000008, 0x0800124E"/>
<param unload_sound_model_ids="0xC0000008, 0x08001250"/>
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x0800124F"/>
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
<!-- Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15"/>
<param get_module_version="false" />
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_LPI"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
</operating_modes>
<module_params>
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param unload_sound_model_ids="0xC0000008, 0x00012C15" />
<param custom_config_ids="0xC0000008, 0x00012C20" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param version_ids="0xC0000008, 0x18000101" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
</sound_trigger_platform_info>
</resource_manager_info>

View File

@@ -0,0 +1,679 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
-->
<!--
-->
<!-- Redistribution and use in source and binary forms, with or without
-->
<!-- modification, are permitted provided that the following conditions are
-->
<!-- met:
-->
<!-- * Redistributions of source code must retain the above copyright
-->
<!-- notice, this list of conditions and the following disclaimer.
-->
<!-- * Redistributions in binary form must reproduce the above
-->
<!-- copyright notice, this list of conditions and the following
-->
<!-- disclaimer in the documentation and/or other materials provided
-->
<!-- with the distribution.
-->
<!-- * Neither the name of The Linux Foundation nor the names of its
-->
<!-- contributors may be used to endorse or promote products derived
-->
<!-- from this software without specific prior written permission.
-->
<!--
-->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<!-- Changes from Qualcomm Innovation Center are provided under the following license:
-->
<!--
-->
<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved
-->
<!--
-->
<!-- Redistribution and use in source and binary forms, with or without
-->
<!-- modification, are permitted (subject to the limitations in the
-->
<!-- disclaimer below) provided that the following conditions are met:
-->
<!-- * Redistributions of source code must retain the above copyright
-->
<!-- notice, this list of conditions and the following disclaimer.
-->
<!-- * Redistributions in binary form must reproduce the above
-->
<!-- copyright notice, this list of conditions and the following
-->
<!-- disclaimer in the documentation and/or other materials provided
-->
<!-- with the distribution.
-->
<!-- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
-->
<!-- contributors may be used to endorse or promote products derived
-->
<!-- from this software without specific prior written permission.
-->
<!--
-->
<!-- NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-->
<!-- GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-->
<!-- HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-->
<!-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-->
<!-- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-->
<!-- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-->
<!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-->
<!-- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-->
<!-- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-->
<!-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
-->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="max_sessions" value="128"/>
<param key="logging_level" value ="3" />
<param key="context_manager_enable" value ="false" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<sleep_monitor_vote_streams>
<low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
<avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
</sleep_monitor_vote_streams>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>MI2S-LPAIF_VA-TX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>HW</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_TELEPHONY_RX</id>
<back_end_name>MI2S-LPAIF_VA-TX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>MI2S-LPAIF_VA-TX-PRIMARY</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>OFF</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>AUDIOSS_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>va-mic</snd_device_name>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
</in-device>
<out-device>
<id>PAL_DEVICE_NONE</id>
<back_end_name>MI2S-LPAIF_RXTX-RX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>none</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>MI2S-LPAIF_RXTX-RX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<cps_enabled>0</cps_enabled>
<!--specify the supported bit format on speaker end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S16_LE</supported_bit_format>
<Charge_concurrency_enabled>0</Charge_concurrency_enabled>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>2</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>MI2S-LPAIF_RXTX-RX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<acd_platform_info>
<common_config>
<param acd_enable="false" />
<param support_device_switch="true" />
<param support_nlpi_switch="true" />
<param lpi_enable="true" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
</capture_profile_list>
<stream_config>
<name>qc_acd</name>
<param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI"/>
<high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS"/>
</operating_modes>
<sound_models>
<model>
<name>ACD_SOUND_MODEL_ID_EVENT</name>
<bin>event.eai</bin>
<uuid>0x0B001007</uuid>
<contexts>
<context id="0x0800132D"/> <!-- EVENT_ALARM -->
<context id="0x0800132E"/> <!-- EVENT_BABYCRYING -->
<context id="0x0800132F"/> <!-- EVENT_DOGBARKING -->
<context id="0x08001330"/> <!-- EVENT_DOORBELL -->
<context id="0x08001331"/> <!-- EVENT_DOORCLOSE -->
<context id="0x08001332"/> <!-- EVENT_DOOROPEN -->
<context id="0x08001333"/> <!-- EVENT_GLASSBREAKING -->
<context id="0x08001334"/> <!-- EVENT_SIREN -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_SPEECH</name>
<bin>speech.eai</bin>
<uuid>0x0B001008</uuid>
<contexts>
<context id="0x08001335"/> <!-- AMBIENCE_SPEECH -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_MUSIC</name>
<bin>music.eai</bin>
<uuid>0x0B001009</uuid>
<contexts>
<context id="0x08001336"/> <!-- AMBIENCE_MUSIC -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
<bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
<uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
<contexts>
<context id="0x08001337"/> <!-- AMBIENCE_NOISY_SPL -->
<context id="0x08001338"/> <!-- AMBIENCE_SILENT_SPL -->
<context id="0x08001339"/> <!-- AMBIENCE_NOISY_SFLUX -->
<context id="0x0800133A"/> <!-- AMBIENCE_SILENT_SFLUX -->
</contexts>
</model>
</sound_models>
</stream_config>
</acd_platform_info>
<sound_trigger_platform_info>
<param version="0x0100" /> <!-- this must be the first param -->
<common_config>
<param enable_failure_detection="false" />
<param support_device_switch="true" />
<param transit_to_non_lpi_on_charging="false" />
<!-- Param used to indicate if SVA has dedicated back end path and
ports not conflicting with other audio paths -->
<param dedicated_sva_path="true" />
<param dedicated_headset_path="false" />
<param lpi_enable="false" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
<param sound_model_lib="liblistensoundmodel2.so" /> <!-- sound model lib name -->
<param notify_second_stage_failure="false"/>
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
</capture_profile_list>
<!-- Multiple sound_model_config tags can be listed, each with unique
-->
<!-- vendor_uuid. The below tag represents QTI SVA sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid.
-->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b"/>
<!-- durations in us -->
<param kw_start_tolerance="300000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="200000" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
</operating_modes>
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION",
"CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2vop.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<module_params>
<param module_type="GMM" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
<module_params>
<param module_type="PDK" />
<param load_sound_model_ids="0xC0000008, 0x0800124E"/>
<param unload_sound_model_ids="0xC0000008, 0x08001250"/>
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x0800124F"/>
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
<!-- Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15"/>
<param get_module_version="false" />
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_LPI"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
</operating_modes>
<module_params>
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param unload_sound_model_ids="0xC0000008, 0x00012C15" />
<param custom_config_ids="0xC0000008, 0x00012C20" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param version_ids="0xC0000008, 0x18000101" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
</sound_trigger_platform_info>
</resource_manager_info>

View File

@@ -0,0 +1,679 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
-->
<!--
-->
<!-- Redistribution and use in source and binary forms, with or without
-->
<!-- modification, are permitted provided that the following conditions are
-->
<!-- met:
-->
<!-- * Redistributions of source code must retain the above copyright
-->
<!-- notice, this list of conditions and the following disclaimer.
-->
<!-- * Redistributions in binary form must reproduce the above
-->
<!-- copyright notice, this list of conditions and the following
-->
<!-- disclaimer in the documentation and/or other materials provided
-->
<!-- with the distribution.
-->
<!-- * Neither the name of The Linux Foundation nor the names of its
-->
<!-- contributors may be used to endorse or promote products derived
-->
<!-- from this software without specific prior written permission.
-->
<!--
-->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<!-- Changes from Qualcomm Innovation Center are provided under the following license:
-->
<!--
-->
<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved
-->
<!--
-->
<!-- Redistribution and use in source and binary forms, with or without
-->
<!-- modification, are permitted (subject to the limitations in the
-->
<!-- disclaimer below) provided that the following conditions are met:
-->
<!-- * Redistributions of source code must retain the above copyright
-->
<!-- notice, this list of conditions and the following disclaimer.
-->
<!-- * Redistributions in binary form must reproduce the above
-->
<!-- copyright notice, this list of conditions and the following
-->
<!-- disclaimer in the documentation and/or other materials provided
-->
<!-- with the distribution.
-->
<!-- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
-->
<!-- contributors may be used to endorse or promote products derived
-->
<!-- from this software without specific prior written permission.
-->
<!--
-->
<!-- NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-->
<!-- GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
-->
<!-- HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-->
<!-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-->
<!-- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-->
<!-- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-->
<!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-->
<!-- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-->
<!-- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-->
<!-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
-->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="max_sessions" value="128"/>
<param key="logging_level" value ="3" />
<param key="context_manager_enable" value ="false" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<sleep_monitor_vote_streams>
<low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
<avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
</sleep_monitor_vote_streams>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>MI2S-LPAIF_VA-TX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>HW</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_TELEPHONY_RX</id>
<back_end_name>MI2S-LPAIF_VA-TX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>MI2S-LPAIF_VA-TX-PRIMARY</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>OFF</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>AUDIOSS_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>va-mic</snd_device_name>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
</in-device>
<out-device>
<id>PAL_DEVICE_NONE</id>
<back_end_name>MI2S-LPAIF_RXTX-RX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>none</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>MI2S-LPAIF_RXTX-RX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<cps_enabled>0</cps_enabled>
<!--specify the supported bit format on speaker end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S16_LE</supported_bit_format>
<Charge_concurrency_enabled>0</Charge_concurrency_enabled>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>2</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>MI2S-LPAIF_RXTX-RX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<acd_platform_info>
<common_config>
<param acd_enable="false" />
<param support_device_switch="true" />
<param support_nlpi_switch="true" />
<param lpi_enable="true" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
</capture_profile_list>
<stream_config>
<name>qc_acd</name>
<param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI"/>
<high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS"/>
</operating_modes>
<sound_models>
<model>
<name>ACD_SOUND_MODEL_ID_EVENT</name>
<bin>event.eai</bin>
<uuid>0x0B001007</uuid>
<contexts>
<context id="0x0800132D"/> <!-- EVENT_ALARM -->
<context id="0x0800132E"/> <!-- EVENT_BABYCRYING -->
<context id="0x0800132F"/> <!-- EVENT_DOGBARKING -->
<context id="0x08001330"/> <!-- EVENT_DOORBELL -->
<context id="0x08001331"/> <!-- EVENT_DOORCLOSE -->
<context id="0x08001332"/> <!-- EVENT_DOOROPEN -->
<context id="0x08001333"/> <!-- EVENT_GLASSBREAKING -->
<context id="0x08001334"/> <!-- EVENT_SIREN -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_SPEECH</name>
<bin>speech.eai</bin>
<uuid>0x0B001008</uuid>
<contexts>
<context id="0x08001335"/> <!-- AMBIENCE_SPEECH -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_MUSIC</name>
<bin>music.eai</bin>
<uuid>0x0B001009</uuid>
<contexts>
<context id="0x08001336"/> <!-- AMBIENCE_MUSIC -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
<bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
<uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
<contexts>
<context id="0x08001337"/> <!-- AMBIENCE_NOISY_SPL -->
<context id="0x08001338"/> <!-- AMBIENCE_SILENT_SPL -->
<context id="0x08001339"/> <!-- AMBIENCE_NOISY_SFLUX -->
<context id="0x0800133A"/> <!-- AMBIENCE_SILENT_SFLUX -->
</contexts>
</model>
</sound_models>
</stream_config>
</acd_platform_info>
<sound_trigger_platform_info>
<param version="0x0100" /> <!-- this must be the first param -->
<common_config>
<param enable_failure_detection="false" />
<param support_device_switch="true" />
<param transit_to_non_lpi_on_charging="false" />
<!-- Param used to indicate if SVA has dedicated back end path and
ports not conflicting with other audio paths -->
<param dedicated_sva_path="true" />
<param dedicated_headset_path="false" />
<param lpi_enable="false" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
<param sound_model_lib="liblistensoundmodel2.so" /> <!-- sound model lib name -->
<param notify_second_stage_failure="false"/>
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
</capture_profile_list>
<!-- Multiple sound_model_config tags can be listed, each with unique
-->
<!-- vendor_uuid. The below tag represents QTI SVA sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid.
-->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b"/>
<!-- durations in us -->
<param kw_start_tolerance="300000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="200000" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
</operating_modes>
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION",
"CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2vop.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<module_params>
<param module_type="GMM" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
<module_params>
<param module_type="PDK" />
<param load_sound_model_ids="0xC0000008, 0x0800124E"/>
<param unload_sound_model_ids="0xC0000008, 0x08001250"/>
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x0800124F"/>
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
<!-- Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15"/>
<param get_module_version="false" />
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_LPI"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
</operating_modes>
<module_params>
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param unload_sound_model_ids="0xC0000008, 0x00012C15" />
<param custom_config_ids="0xC0000008, 0x00012C20" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param version_ids="0xC0000008, 0x18000101" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
</sound_trigger_platform_info>
</resource_manager_info>

View File

@@ -0,0 +1,641 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<!-- Changes from Qualcomm Innovation Center are provided under the following license: -->
<!-- -->
<!-- Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted (subject to the limitations in the -->
<!-- disclaimer below) provided that the following conditions are met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE -->
<!-- GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT -->
<!-- HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -->
<!-- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -->
<!-- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -->
<!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -->
<!-- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -->
<!-- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -->
<!-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE -->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="max_sessions" value="128"/>
<param key="logging_level" value ="3" />
<param key="context_manager_enable" value ="false" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<sleep_monitor_vote_streams>
<low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
<avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
</sleep_monitor_vote_streams>
<spkr_temp_ctls>
<temp_ctrl spkr_posn="SPKR_RIGHT" ctrl="WSA_TEMP_0"/>
</spkr_temp_ctls>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>HW</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_TELEPHONY_RX</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>OFF</sidetone_mode>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>va-mic</snd_device_name>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_VI_FEEDBACK</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-4</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<bit_width>16</bit_width>
<samplerate>48000</samplerate>
<snd_device_name>vi-feedback</snd_device_name>
<!--Add the supported channel_map depending on number of channels -->
<!--channel 0 -> Vsen Left -->
<!--channel 1 -> Isen Left -->
<!--channel 2 -> Vsen Right -->
<!--channel 3 -> Isen Right -->
</in-device>
<out-device>
<id>PAL_DEVICE_NONE</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>none</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<cps_enabled>0</cps_enabled>
<!--specify the supported bit format on speaker end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S16_LE</supported_bit_format>
<Charge_concurrency_enabled>0</Charge_concurrency_enabled>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>2</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>handset</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-a2dp</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<acd_platform_info>
<common_config>
<param acd_enable="false" />
<param support_device_switch="true" />
<param support_nlpi_switch="true" />
<param lpi_enable="true" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
</capture_profile_list>
<stream_config>
<name>qc_acd</name>
<param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI"/>
<high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS"/>
</operating_modes>
<sound_models>
<model>
<name>ACD_SOUND_MODEL_ID_EVENT</name>
<bin>event.eai</bin>
<uuid>0x0B001007</uuid>
<contexts>
<context id="0x0800132D"/> <!-- EVENT_ALARM -->
<context id="0x0800132E"/> <!-- EVENT_BABYCRYING -->
<context id="0x0800132F"/> <!-- EVENT_DOGBARKING -->
<context id="0x08001330"/> <!-- EVENT_DOORBELL -->
<context id="0x08001331"/> <!-- EVENT_DOORCLOSE -->
<context id="0x08001332"/> <!-- EVENT_DOOROPEN -->
<context id="0x08001333"/> <!-- EVENT_GLASSBREAKING -->
<context id="0x08001334"/> <!-- EVENT_SIREN -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_SPEECH</name>
<bin>speech.eai</bin>
<uuid>0x0B001008</uuid>
<contexts>
<context id="0x08001335"/> <!-- AMBIENCE_SPEECH -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_ID_MUSIC</name>
<bin>music.eai</bin>
<uuid>0x0B001009</uuid>
<contexts>
<context id="0x08001336"/> <!-- AMBIENCE_MUSIC -->
</contexts>
</model>
<model>
<name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
<bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
<uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
<contexts>
<context id="0x08001337"/> <!-- AMBIENCE_NOISY_SPL -->
<context id="0x08001338"/> <!-- AMBIENCE_SILENT_SPL -->
<context id="0x08001339"/> <!-- AMBIENCE_NOISY_SFLUX -->
<context id="0x0800133A"/> <!-- AMBIENCE_SILENT_SFLUX -->
</contexts>
</model>
</sound_models>
</stream_config>
</acd_platform_info>
<sound_trigger_platform_info>
<param version="0x0100" /> <!-- this must be the first param -->
<common_config>
<param enable_failure_detection="false" />
<param support_device_switch="true" />
<param transit_to_non_lpi_on_charging="false" />
<!-- Param used to indicate if SVA has dedicated back end path and
ports not conflicting with other audio paths -->
<param dedicated_sva_path="true" />
<param dedicated_headset_path="false" />
<param lpi_enable="false" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
<param sound_model_lib="liblistensoundmodel2.so" /> <!-- sound model lib name -->
<param notify_second_stage_failure="false"/>
</common_config>
<capture_profile_list>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
</capture_profile>
</capture_profile_list>
<!-- Multiple sound_model_config tags can be listed, each with unique
-->
<!-- vendor_uuid. The below tag represents QTI SVA sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid.
-->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b"/>
<!-- durations in us -->
<param kw_start_tolerance="300000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="200000" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS"/>
</operating_modes>
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION",
"CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2vop.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnn.so"/>
<param sample_rate="16000"/>
<param bit_width="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<module_params>
<param module_type="GMM" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
<module_params>
<param module_type="PDK" />
<param load_sound_model_ids="0xC0000008, 0x0800124E"/>
<param unload_sound_model_ids="0xC0000008, 0x08001250"/>
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x0800124F"/>
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
<!-- Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15"/>
<param get_module_version="false" />
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_LPI"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI"/>
</operating_modes>
<module_params>
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param unload_sound_model_ids="0xC0000008, 0x00012C15" />
<param custom_config_ids="0xC0000008, 0x00012C20" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param version_ids="0xC0000008, 0x18000101" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</module_params>
</sound_model_config>
</sound_trigger_platform_info>
</resource_manager_info>

View File

@@ -0,0 +1,867 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Copyright (c) 2021, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<graph_key_value_pair_info>
<streams>
<!-- Low-latency stream -->
<stream type="PAL_STREAM_LOW_LATENCY">
<keys_and_values Direction="TX" Instance="1">
<!-- STREAMTX - RAW_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000009"/>
</keys_and_values>
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - PCM_LL_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000E"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="RX" Instance="2">
<!-- STREAMRX - PCM_LL_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000E"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
</stream>
<!-- Deep Buffer stream -->
<stream type="PAL_STREAM_DEEP_BUFFER">
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - PCM_DEEP_BUFFER -->
<graph_kv key="0xA1000000" value="0xA1000001"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="RX" Instance="2">
<!-- STREAMRX - PCM_DEEP_BUFFER -->
<graph_kv key="0xA1000000" value="0xA1000001"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
<keys_and_values Direction="TX" Instance="1">
<!-- STREAMTX - PCM_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000001"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="TX" Instance="2">
<!-- STREAMTX - PCM_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000001"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
</stream>
<!-- Compressed-playback stream -->
<stream type="PAL_STREAM_COMPRESSED">
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - COMPRESSED_OFFLOAD_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000A"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
</stream>
<!-- VOIP RX stream -->
<stream type="PAL_STREAM_VOIP_RX">
<keys_and_values>
<!-- STREAMRX - VOIP_RX_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA1000005"/>
</keys_and_values>
</stream>
<!-- VOIP TX stream -->
<stream type="PAL_STREAM_VOIP_TX">
<keys_and_values>
<!-- STREAMTX - VOIP_TX_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000004"/>
</keys_and_values>
</stream>
<!-- Voice Call Music stream -->
<stream type="PAL_STREAM_VOICE_CALL_MUSIC">
<keys_and_values>
<!-- STREAMRX - INCALL_MUSIC -->
<graph_kv key="0xA1000000" value="0xA1000013"/>
</keys_and_values>
</stream>
<!-- Generic-playback stream -->
<stream type="PAL_STREAM_GENERIC">
<keys_and_values Direction="RX">
<!-- STREAMRX - GENERIC_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA1000014"/>
</keys_and_values>
</stream>
<!-- Voice Call Record stream -->
<stream type="PAL_STREAM_VOICE_CALL_RECORD">
<keys_and_values>
<!-- STREAMTX - INCALL_RECORD -->
<graph_kv key="0xB1000000" value="0xB100000C"/>
</keys_and_values>
</stream>
<!-- Voice stream -->
<stream type="PAL_STREAM_VOICE_CALL">
<keys_and_values Direction="RX" VSID="VOICEMMODE1,VOICEMMODE2,VOICELBMMODE1,VOICELBMMODE2">
<!-- STREAMRX - VOICE_CALL_RX -->
<graph_kv key="0xA1000000" value="0xA1000010"/>
<!-- VSID - VSID_DEFAULT -->
<graph_kv key="0xB3000000" value="0xB3000001"/>
</keys_and_values>
<keys_and_values Direction="TX" VSID="VOICEMMODE1,VOICEMMODE2,VOICELBMMODE1,VOICELBMMODE2">
<!-- STREAMTX - VOICE_CALL_TX -->
<graph_kv key="0xB1000000" value="0xB1000007"/>
<!-- VSID - VSID_DEFAULT -->
<graph_kv key="0xB3000000" value="0xB3000001"/>
</keys_and_values>
</stream>
<!-- Loopback stream -->
<stream type="PAL_STREAM_LOOPBACK">
<keys_and_values Direction="RX" SubType="PAL_STREAM_LOOPBACK_HFP_RX">
<!-- STREAMRX - HFP_RX_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000C"/>
</keys_and_values>
<keys_and_values Direction="TX" SubType="PAL_STREAM_LOOPBACK_HFP_RX">
<!-- STREAMTX - HFP_RX_CAPTURE -->
<graph_kv key="0xB1000000" value="0xB1000005"/>
</keys_and_values>
<keys_and_values Direction="RX_TX" SubType="PAL_STREAM_LOOPBACK_PCM,PAL_STREAM_LOOPBACK_FM">
<!-- STREAMRX - PCM_RX_LOOPBACK -->
<graph_kv key="0xA1000000" value="0xA1000003"/>
</keys_and_values>
</stream>
<!-- Voice UI stream -->
<stream type="PAL_STREAM_VOICE_UI">
<keys_and_values VUIModuleType="GMM" Instance="1">
<!-- STREAM_CONFIG - STREAM_CFG_VUI_GMM -->
<graph_kv key="0xBC000000" value="0xBC000001"/>
<!-- STREAMTX - VOICE_UI -->
<graph_kv key="0xB1000000" value="0xB1000003"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values VUIModuleType="GMM" Instance="2">
<!-- STREAM_CONFIG - STREAM_CFG_VUI_GMM -->
<graph_kv key="0xBC000000" value="0xBC000001"/>
<!-- STREAMTX - VOICE_UI -->
<graph_kv key="0xB1000000" value="0xB1000003"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
<keys_and_values VUIModuleType="PDK" Instance="1">
<!-- STREAM_CONFIG - STREAM_CFG_VUI_PDK -->
<graph_kv key="0xBC000000" value="0xBC000006"/>
<!-- STREAMTX - VOICE_UI -->
<graph_kv key="0xB1000000" value="0xB1000003"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values VUIModuleType="HOTWORD" Instance="1">
<!-- STREAM_CONFIG - STREAM_CFG_VUI_HW -->
<graph_kv key="0xBC000000" value="0xBC000002"/>
<!-- STREAMTX - VOICE_UI -->
<graph_kv key="0xB1000000" value="0xB1000003"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
</stream>
<!-- PCM-Offload stream -->
<stream type="PAL_STREAM_PCM_OFFLOAD">
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - PCM_OFFLOAD_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000F"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
</stream>
<!-- Ultra-Low-latency stream -->
<stream type="PAL_STREAM_ULTRA_LOW_LATENCY">
<keys_and_values Direction="RX">
<!-- STREAMRX - PCM_ULL_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA1000011"/>
</keys_and_values>
<keys_and_values Direction="TX">
<!-- STREAMTX - PCM_ULL_RECORD -->
<graph_kv key="0xB1000000" value="0xB100000A"/>
</keys_and_values>
</stream>
<!-- Proxy stream -->
<stream type="PAL_STREAM_PROXY">
<keys_and_values Direction="TX">
<!-- STREAMTX - PCM_PROXY_RECORD -->
<graph_kv key="0xB1000000" value="0xB100000B"/>
</keys_and_values>
<keys_and_values Direction="TX" SubType="PAL_STREAM_PROXY_TX_WFD">
<!-- STREAMTX - PCM_PROXY_RECORD -->
<graph_kv key="0xB1000000" value="0xB100000B"/>
<!-- PROXY_TX_TYPE - PROXY_TX_WFD -->
<graph_kv key="0xD1000000" value="0xD1000002"/>
</keys_and_values>
<keys_and_values Direction="TX" SubType="PAL_STREAM_PROXY_TX_TELEPHONY_RX">
<!-- STREAMTX - PCM_PROXY_RECORD -->
<graph_kv key="0xB1000000" value="0xB100000B"/>
<!-- PROXY_TX_TYPE - PROXY_TX_VOICE_RX -->
<graph_kv key="0xD1000000" value="0xD1000003"/>
</keys_and_values>
<keys_and_values Direction="RX">
<!-- STREAMRX - PCM_PROXY_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA1000012"/>
</keys_and_values>
</stream>
<!-- Non-Tunnel stream -->
<stream type="PAL_STREAM_NON_TUNNEL">
<keys_and_values AudioFormat="PAL_AUDIO_FMT_PCM" Instance="1">
<!-- STREAM - NT_ENCODE -->
<graph_kv key="0xD3000000" value="0xD2000002"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values AudioFormat="PAL_AUDIO_FMT_NON_PCM" Instance="1">
<!-- STREAM - NT_DECODE -->
<graph_kv key="0xD3000000" value="0xD2000001"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values AudioFormat="PAL_AUDIO_FMT_PCM" Instance="2">
<!-- STREAM - NT_ENCODE -->
<graph_kv key="0xD3000000" value="0xD2000002"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
<keys_and_values AudioFormat="PAL_AUDIO_FMT_NON_PCM" Instance="2">
<!-- STREAM - NT_DECODE -->
<graph_kv key="0xD3000000" value="0xD2000001"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
</stream>
<!-- Haptics stream -->
<stream type="PAL_STREAM_HAPTICS">
<keys_and_values>
<!-- STREAMRX - HAPTICS_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA1000015"/>
</keys_and_values>
</stream>
<!-- Raw stream -->
<stream type="PAL_STREAM_RAW">
<keys_and_values Direction="TX">
<!-- STREAMTX - RAW_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000009"/>
</keys_and_values>
<keys_and_values Direction="RX_TX">
<!-- STREAMRX - PCM_RX_LOOPBACK -->
<graph_kv key="0xA1000000" value="0xA1000003"/>
</keys_and_values>
</stream>
<!-- ACD stream -->
<stream type="PAL_STREAM_ACD">
<keys_and_values ACDModuleType="QC_ACD">
<!-- STREAM_CONFIG - STREAM_CFG_ACD_QC -->
<graph_kv key="0xBC000000" value="0xBC000007"/>
<!-- STREAMTX - ACD -->
<graph_kv key="0xB1000000" value="0xB100000D"/>
</keys_and_values>
</stream>
<!-- Sensor PCM Data stream -->
<stream type="PAL_STREAM_SENSOR_PCM_DATA">
<keys_and_values ACDModuleType="QC_SENSOR_PCM_DATA">
<!-- STREAMTX - SENSOR_PCM_DATA -->
<graph_kv key="0xB1000000" value="0xB100000E"/>
</keys_and_values>
</stream>
</streams>
<streampps>
<!-- Voice Call stream PP -->
<streampp type="PAL_STREAM_VOICE_CALL">
<keys_and_values>
<!-- STREAMPP_RX - STREAMPP_RX_DEFAULT -->
<graph_kv key="0xAF000000" value="0xAF000001"/>
</keys_and_values>
</streampp>
</streampps>
<devices>
<!-- Speaker Device -->
<device id="PAL_DEVICE_OUT_SPEAKER">
<keys_and_values>
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
</keys_and_values>
</device>
<!-- Handset Device -->
<device id="PAL_DEVICE_OUT_HANDSET">
<keys_and_values>
<!-- DEVICERX - HANDSET -->
<graph_kv key="0xA2000000" value="0xA2000004"/>
</keys_and_values>
</device>
<!-- In Handset MIC Device -->
<device id="PAL_DEVICE_IN_HANDSET_MIC">
<keys_and_values>
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
</keys_and_values>
<keys_and_values SidetoneMode="SW">
<!-- SW_SIDETONE - SW_SIDETONE_ON -->
<graph_kv key="0xBA000000" value="0xBA000001"/>
</keys_and_values>
</device>
<!-- In speaker MIC Device-->
<device id="PAL_DEVICE_IN_SPEAKER_MIC">
<keys_and_values>
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
</keys_and_values>
<keys_and_values SidetoneMode="SW">
<!-- SW_SIDETONE - SW_SIDETONE_ON -->
<graph_kv key="0xBA000000" value="0xBA000001"/>
</keys_and_values>
</device>
<!-- Proxy IN Device -->
<device id="PAL_DEVICE_IN_PROXY">
<keys_and_values SubType="PAL_STREAM_PROXY_TX_WFD">
<!-- DEVICETX - PROXY_TX -->
<graph_kv key="0xA3000000" value="0xA3000008"/>
<!-- PROXY_TX_TYPE - PROXY_TX_WFD -->
<graph_kv key="0xD1000000" value="0xD1000002"/>
</keys_and_values>
<keys_and_values>
<!-- DEVICETX - PROXY_TX -->
<graph_kv key="0xA3000000" value="0xA3000008"/>
</keys_and_values>
</device>
<!-- Proxy Out Device -->
<device id="PAL_DEVICE_OUT_PROXY">
<keys_and_values>
<!-- DEVICERX - PROXY_RX -->
<graph_kv key="0xA2000000" value="0xA2000007"/>
</keys_and_values>
</device>
<!-- In Telephony RX Device -->
<device id="PAL_DEVICE_IN_TELEPHONY_RX">
<keys_and_values SubType="PAL_STREAM_PROXY_TX_TELEPHONY_RX">
<!-- DEVICETX - PROXY_TX -->
<graph_kv key="0xA3000000" value="0xA3000008"/>
<!-- PROXY_TX_TYPE - PROXY_TX_VOICE_RX -->
<graph_kv key="0xD1000000" value="0xD1000003"/>
</keys_and_values>
<keys_and_values>
<!-- DEVICETX - PROXY_TX -->
<graph_kv key="0xA3000000" value="0xA3000008"/>
</keys_and_values>
</device>
<!-- In VI feedback Device -->
<device id="PAL_DEVICE_IN_VI_FEEDBACK">
<keys_and_values>
<!-- DEVICETX - VI_TX -->
<graph_kv key="0xA3000000" value="0xA3000009"/>
</keys_and_values>
</device>
<!-- Out hearing AID Device -->
<device id="PAL_DEVICE_OUT_HEARING_AID">
<keys_and_values>
<!-- DEVICERX - PROXY_RX_VOICE -->
<graph_kv key="0xA2000000" value="0xA2000008"/>
</keys_and_values>
</device>
<!-- Out Haptics Device -->
<device id="PAL_DEVICE_OUT_HAPTICS_DEVICE">
<keys_and_values>
<!-- DEVICERX - HAPTICS_DEVICE -->
<graph_kv key="0xA2000000" value="0xA2000009"/>
</keys_and_values>
</device>
<!-- In FM Tuner Device -->
<device id="PAL_DEVICE_IN_FM_TUNER">
<keys_and_values>
<!-- DEVICETX - FM_TX -->
<graph_kv key="0xA3000000" value="0xA300000A"/>
</keys_and_values>
</device>
<!-- In External EC Reference Device -->
<device id="PAL_DEVICE_IN_EXT_EC_REF">
<keys_and_values>
<!-- DEVICETX_EXT - EXT_EC_TX -->
<graph_kv key="0xD7000000" value="0xD7000001"/>
</keys_and_values>
</device>
<!-- BT A2DP OUT Device -->
<device id="PAL_DEVICE_OUT_BLUETOOTH_A2DP">
<keys_and_values CodecFormat="CODEC_TYPE_LDAC" AbrEnabled="TRUE,FALSE" Hostless="TRUE,FALSE">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - A2DP -->
<graph_kv key="0xB4000000" value="0xB4000002"/>
<!-- BT_FORMAT - LDAC -->
<graph_kv key="0xB5000000" value="0xB5000002"/>
</keys_and_values>
<!-- In APTX_AD ABR is always enabled -->
<keys_and_values CodecFormat="CODEC_TYPE_APTX_AD" AbrEnabled="TRUE,FALSE" Hostless="TRUE,FALSE">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - A2DP -->
<graph_kv key="0xB4000000" value="0xB4000002"/>
<!-- BT_FORMAT - APTX_ADAPTIVE -->
<graph_kv key="0xB5000000" value="0xB5000003"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_LC3" AbrEnabled="TRUE,FALSE" Hostless="TRUE">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - A2DP -->
<graph_kv key="0xB4000000" value="0xB4000002"/>
<!-- BT_FORMAT - LC3 -->
<graph_kv key="0xB5000000" value="0xB5000005"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_LC3" AbrEnabled="TRUE,FALSE" Hostless="FALSE">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - A2DP -->
<graph_kv key="0xB4000000" value="0xB4000002"/>
<!-- BT_FORMAT - LC3 -->
<graph_kv key="0xB5000000" value="0xB5000005"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_AAC" AbrEnabled="TRUE" Hostless="TRUE,FALSE">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - A2DP -->
<graph_kv key="0xB4000000" value="0xB4000002"/>
<!-- BT_FORMAT - AAC_ABR -->
<graph_kv key="0xB5000000" value="0xB5000006"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_AAC,CODEC_TYPE_SBC,CODEC_TYPE_APTX,CODEC_TYPE_APTX_HD,CODEC_TYPE_APTX_DUAL_MONO" AbrEnabled="FALSE" Hostless="TRUE,FALSE">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - A2DP -->
<graph_kv key="0xB4000000" value="0xB4000002"/>
<!-- BT_FORMAT - GENERIC -->
<graph_kv key="0xB5000000" value="0xB5000001"/>
</keys_and_values>
</device>
<!-- BT A2DP IN Device -->
<device id="PAL_DEVICE_IN_BLUETOOTH_A2DP">
<keys_and_values CodecFormat="CODEC_TYPE_LDAC,CODEC_TYPE_APTX_AD,CODEC_TYPE_AAC" Hostless="TRUE,FALSE">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_LC3" Hostless="TRUE">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- BT_PROFILE - A2DP -->
<graph_kv key="0xB4000000" value="0xB4000002"/>
<!-- BT_FORMAT - LC3 -->
<graph_kv key="0xB5000000" value="0xB5000005"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_LC3" Hostless="FALSE">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- BT_PROFILE - A2DP -->
<graph_kv key="0xB4000000" value="0xB4000002"/>
<!-- BT_FORMAT - LC3 -->
<graph_kv key="0xB5000000" value="0xB5000005"/>
</keys_and_values>
</device>
<!-- BT SCO OUT Device -->
<device id="PAL_DEVICE_OUT_BLUETOOTH_SCO">
<keys_and_values CodecFormat="CODEC_TYPE_INVALID">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_APTX_AD_SPEECH">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
<!-- BT_FORMAT - SWB -->
<graph_kv key="0xB5000000" value="0xB5000004"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_LC3">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
<!-- BT_FORMAT - LC3 -->
<graph_kv key="0xB5000000" value="0xB5000005"/>
</keys_and_values>
</device>
<!-- BT SCO In Headset Device -->
<device id="PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET">
<keys_and_values CodecFormat="CODEC_TYPE_INVALID">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_APTX_AD_SPEECH">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
<!-- BT_FORMAT - SWB -->
<graph_kv key="0xB5000000" value="0xB5000004"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_LC3">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
<!-- BT_FORMAT - LC3 -->
<graph_kv key="0xB5000000" value="0xB5000005"/>
</keys_and_values>
</device>
</devices>
<devicepps>
<!-- OUT Speaker DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_SPEAKER">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY,PAL_STREAM_GENERIC">
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_RX">
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000003"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_LOOPBACK" SubType="PAL_STREAM_LOOPBACK_HFP_RX">
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_HFPSINK -->
<graph_kv key="0xAC000000" value="0xAC000004"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000005"/>
</keys_and_values>
</devicepp>
<!-- OUT Handset DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_HANDSET">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY,PAL_STREAM_GENERIC">
<!-- DEVICERX - HANDSET -->
<graph_kv key="0xA2000000" value="0xA2000004"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_RX">
<!-- DEVICERX - HANDSET -->
<graph_kv key="0xA2000000" value="0xA2000004"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000003"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICERX - HANDSET -->
<graph_kv key="0xA2000000" value="0xA2000004"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000005"/>
</keys_and_values>
</devicepp>
<!-- OUT Bluetooth A2DP DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_BLUETOOTH_A2DP">
<keys_and_values StreamType="PAL_STREAM_COMPRESSED,PAL_STREAM_DEEP_BUFFER,PAL_STREAM_LOW_LATENCY,PAL_STREAM_PCM_OFFLOAD">
<!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_RX" >
<!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000003"/>
</keys_and_values>
</devicepp>
<!-- OUT BT SCO DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_BLUETOOTH_SCO">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_RX">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000003"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000005"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_LOOPBACK" SubType="PAL_STREAM_LOOPBACK_HFP_TX">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_HFPSINK -->
<graph_kv key="0xAC000000" value="0xAC000004"/>
</keys_and_values>
</devicepp>
<!-- OUT Device Proxy DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_PROXY">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY">
<!-- DEVICERX - PROXY_RX -->
<graph_kv key="0xA2000000" value="0xA2000007"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000001"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICERX - PROXY_RX -->
<graph_kv key="0xA2000000" value="0xA2000007"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000005"/>
</keys_and_values>
</devicepp>
<!-- OUT Hearing Aid DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_HEARING_AID">
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICERX - PROXY_RX_VOICE -->
<graph_kv key="0xA2000000" value="0xA2000008"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000005"/>
</keys_and_values>
</devicepp>
<!-- IN Handset MIC DevicePPs -->
<devicepp id="PAL_DEVICE_IN_HANDSET_MIC">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER" CustomConfig="dual-mic">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
<graph_kv key="0xAD000000" value="0xAD000003"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER" CustomConfig="quad-mic">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_PRO -->
<graph_kv key="0xAD000000" value="0xAD000004"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000008"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dual-mic">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_ENDFIRE -->
<graph_kv key="0xAD000000" value="0xAD000009"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="quad-mic">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_PRO -->
<graph_kv key="0xAD000000" value="0xAD00000A"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="nn-sm">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_NN_SM -->
<graph_kv key="0xAD000000" value="0xAD00000F"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dual-mic-rve">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_ENDFIRE_RVE -->
<graph_kv key="0xAD000000" value="0xAD000013"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000007"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="dual-mic">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_ENDFIRE -->
<graph_kv key="0xAD000000" value="0xAD00000D"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="quad-mic">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_PRO -->
<graph_kv key="0xAD000000" value="0xAD000005"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="nn-sm">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_NN_SM -->
<graph_kv key="0xAD000000" value="0xAD000010"/>
</keys_and_values>
</devicepp>
<!-- IN Speaker MIC DevicePPs -->
<devicepp id="PAL_DEVICE_IN_SPEAKER_MIC">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER" CustomConfig="dual-mic">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
<graph_kv key="0xAD000000" value="0xAD000003"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER" CustomConfig="quad-mic">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_PRO -->
<graph_kv key="0xAD000000" value="0xAD000004"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000008"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dual-mic">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_ENDFIRE -->
<graph_kv key="0xAD000000" value="0xAD000009"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="quad-mic">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_PRO -->
<graph_kv key="0xAD000000" value="0xAD00000A"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="nn-sm">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_NN_SM -->
<graph_kv key="0xAD000000" value="0xAD00000F"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000007"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="dual-mic">>
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_ENDFIRE -->
<graph_kv key="0xAD000000" value="0xAD00000D"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="quad-mic">>
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_PRO -->
<graph_kv key="0xAD000000" value="0xAD000005"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="nn-sm">>
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_NN_SM -->
<graph_kv key="0xAD000000" value="0xAD000010"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_LOOPBACK" SubType="PAL_STREAM_LOOPBACK_HFP_TX">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_HFP_SINK_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000006"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_LOOPBACK" SubType="PAL_STREAM_LOOPBACK_HFP_TX" CustomConfig="dual-mic">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_HFP_SINK_FLUENCE_ENDFIRE-->
<graph_kv key="0xAD000000" value="0xAD000015"/>
</keys_and_values>
</devicepp>
<!-- IN BT_SCO_Headset DevicePPs -->
<devicepp id="PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000008"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000007"/>
</keys_and_values>
</devicepp>
<!-- IN Handset_VA_MIC DevicePPs -->
<devicepp id="PAL_DEVICE_IN_HANDSET_VA_MIC">
<keys_and_values StreamType="PAL_STREAM_ACD,PAL_STREAM_VOICE_UI,PAL_STREAM_SENSOR_PCM_DATA"
DevicePPType="SINGLE_MIC_16KHZ_16BIT_FFECNS,DUAL_MIC_16KHZ_16BIT_FFECNS,TRI_MIC_16KHZ_16BIT_FFECNS,QUAD_MIC_16KHZ_16BIT_FFECNS">
<!-- DEVICETX - HANDSETMIC_VA -->
<graph_kv key="0xA3000000" value="0xA3000006"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_FLUENCE_FFECNS -->
<graph_kv key="0xAD000000" value="0xAD000001"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_SENSOR_PCM_DATA"
DevicePPType="SINGLE_MIC_16KHZ_16BIT_FFEC">
<!-- DEVICETX - HANDSETMIC_VA -->
<graph_kv key="0xA3000000" value="0xA3000006"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_FLUENCE_FFEC -->
<graph_kv key="0xAD000000" value="0xAD000012"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_UI,PAL_STREAM_SENSOR_PCM_DATA"
DevicePPType="SINGLE_MIC_16KHZ_16BIT_FFNS,DUAL_MIC_16KHZ_16BIT_FFNS,TRI_MIC_16KHZ_16BIT_FFNS,QUAD_MIC_16KHZ_16BIT_FFNS">
<!-- DEVICETX - HANDSETMIC_VA -->
<graph_kv key="0xA3000000" value="0xA3000006"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_FLUENCE_FFNS -->
<graph_kv key="0xAD000000" value="0xAD00000B"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_UI,PAL_STREAM_SENSOR_PCM_DATA"
DevicePPType="SINGLE_MIC_16KHZ_16BIT_RAW_LPI,DUAL_MIC_16KHZ_16BIT_RAW_LPI">
<!-- DEVICETX - HANDSETMIC_VA -->
<graph_kv key="0xA3000000" value="0xA3000006"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_RAW_LPI -->
<graph_kv key="0xAD000000" value="0xAD00000C"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_UI"
DevicePPType="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI,DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
<!-- DEVICETX - HANDSETMIC_VA -->
<graph_kv key="0xA3000000" value="0xA3000006"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_RAW_NLPI -->
<graph_kv key="0xAD000000" value="0xAD00000E"/>
</keys_and_values>
</devicepp>
<!-- IN BT A2DP DevicePPs -->
<devicepp id="PAL_DEVICE_IN_BLUETOOTH_A2DP">
<keys_and_values StreamType="PAL_STREAM_VOIP_TX" >
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000007"/>
</keys_and_values>
</devicepp>
</devicepps>
</graph_key_value_pair_info>

View File

@@ -0,0 +1,393 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<resource_manager_info>
<pcm_ids>
<device name="PAL_DEVICE_OUT_SPEAKER" pcm_id="0" hw_intf="slim-0-rx" snd_device_name="speaker" back_end_name="SLIM-DEV1-RX-0"/>
<device name="PAL_DEVICE_OUT_HANDSET" pcm_id="0" hw_intf="slim-0-rx" snd_device_name="handset" back_end_name="SLIM-DEV1-RX-0"/>
<device name="PAL_DEVICE_OUT_WIRED_HEADPHONE" pcm_id="0" hw_intf="slim-6-rx" snd_device_name="headphones" back_end_name="SLIM-DEV1-RX-6"/>
<device name="PAL_DEVICE_OUT_WIRED_HEADSET" pcm_id="0" hw_intf="slim-6-rx" snd_device_name="headphones" back_end_name="SLIM-DEV1-RX-6"/>
<device name="PAL_DEVICE_OUT_BLUETOOTH_A2DP" pcm_id="0" hw_intf="slim-7-rx" snd_device_name="bt-a2dp" back_end_name="SLIM-DEV2-RX-7"/>
<device name="PAL_DEVICE_OUT_BLUETOOTH_SCO" pcm_id="0" hw_intf="slim-7-rx" snd_device_name="bt-a2dp" back_end_name="SLIM-DEV2-RX-7"/>
<device name="PAL_DEVICE_OUT_AUX_DIGITAL" pcm_id="0" hw_intf="dp-0-rx" snd_device_name="display-port" back_end_name="DISPLAY_PORT-RX"/>
<device name="PAL_DEVICE_OUT_HDMI" pcm_id="0" hw_intf="dp-0-rx" snd_device_name="display-port" back_end_name="DISPLAY_PORT-RX"/>
<device name="PAL_DEVICE_OUT_USB_DEVICE" pcm_id="0" hw_intf="usb_audio" snd_device_name="usb-headphones" back_end_name="USB_AUDIO-RX"/>
<device name="PAL_DEVICE_OUT_USB_HEADSET" pcm_id="0" hw_intf="usb_audio" snd_device_name="usb-headphones" back_end_name="USB_AUDIO-RX"/>
<device name="PAL_DEVICE_OUT_AUX_DIGITAL" pcm_id="0" hw_intf="dp-0-rx" snd_device_name="display-port" back_end_name="DISPLAY_PORT-RX"/>
<device name="PAL_DEVICE_OUT_HDMI" pcm_id="0" hw_intf="dp-0-rx" snd_device_name="display-port" back_end_name="DISPLAY_PORT-RX"/>
<device name="PAL_DEVICE_IN_HANDSET_MIC" pcm_id="1" hw_intf="slim-0-tx" snd_device_name="handset-mic" back_end_name="SLIM-DEV1-TX-0"/>
<device name="PAL_DEVICE_IN_SPEAKER_MIC" pcm_id="1" hw_intf="slim-0-tx" snd_device_name="speaker-tmic" back_end_name="SLIM-DEV1-TX-0"/>
<device name="PAL_DEVICE_IN_WIRED_HEADSET" pcm_id="1" hw_intf="slim-1-tx" snd_device_name="headset-mic" back_end_name="SLIM-DEV1-TX-0"/>
<device name="PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET" pcm_id="1" hw_intf="slim-7-tx" snd_device_name="bt-a2dp" back_end_name="SLIM-DEV2-TX-7"/>
<device name="PAL_DEVICE_IN_USB_DEVICE" pcm_id="1" hw_intf="usb_audio" snd_device_name="usb-headset-mic" back_end_name="USB_AUDIO-TX"/>
<device name="PAL_DEVICE_IN_USB_HEADSET" pcm_id="1" hw_intf="usb_audio" snd_device_name="usb-headset-mic" back_end_name="USB_AUDIO-TX"/>
</pcm_ids>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="max_sessions" value="128"/>
</config_params>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
</bt_codecs>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>SLIM-DEV1-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>SLIM-DEV1-TX-0</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_WIRED_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-0</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000008"/>
<!-- VOICE_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV2-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>va-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HEADSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>headset-va-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000001"/>
<!-- VOICE_UI_FLUENCE_FFECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_USB_HEADSET</id>
<back_end_name>USB_AUDIO-TX</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>usb-headset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000007"/>
<!-- VOIP_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
<kvpair key="0xAD000000" value="0xAD000002"/>
<!-- AUDIO_FLUENCE_SMECNS -->
<!-- These key and value are derived from kvh2xml.h and should always be in sync with it -->
</devicePP-metadata>
</usecase>
</in-device>
<out_devices/>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<!--<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>-->
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_LOW_LATENCY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<!--<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>-->
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<sound_trigger_platform_info>
<param version="0x0100" /> <!-- this must be the first param -->
<common_config>
<param max_sessions="8" />
<param enable_failure_detection="false" />
<param support_device_switch="false" />
<param transit_to_non_lpi_on_charging="false" />
<!-- Param used to indicate if SVA has dedicated back end path and ports not conflicting with other audio paths -->
<param dedicated_sva_path="true" />
<param dedicated_headset_path="false" />
<param lpi_enable="true" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
</common_config>
<capture_profile_list>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFNS"/>
</devicePP-metadata>
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<devicePP-metadata>
<!-- see kvh2xml.h -->
<kvpair key="DEVICEPP_TX" value="DEVICEPP_TX_FLUENCE_FFECNS"/>
</devicePP-metadata>
</capture_profile>
</capture_profile_list>
<!-- Multiple sound_model_config tags can be listed, each with unique -->
<!-- vendor_uuid. The below tag represents QTI SVA engine sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid. -->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param merge_first_stage_sound_models="false"/>
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_FFNS"/>
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_FFECNS"/>
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_FFECNS"/>
</operating_modes>
</sound_model_config>
</sound_trigger_platform_info>
</resource_manager_info>

View File

@@ -0,0 +1,171 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2019, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<KEY_DEF versionMajor="0x0" versionMinor="0x0" versionBranch="0x0" versionSubBranch="0x0">
<PLATFORMS>
<PLATFORM name="LA" id="0x1"/>
<PLATFORM name="LE" id="0x2"/>
</PLATFORMS>
<KEY_LIST>
<KEY name="Stream" id="0xa1000000" description="Type of Stream">
<VALUE val="0xa1000001" name="PCM_LL_Playback"/>
<VALUE val="0xa1000002" name="PCM_Record"/>
<VALUE val="0xa1000003" name="PCM_Loopback"/>
<VALUE val="0xa1000004" name="Voice_UI"/>
<VALUE val="0xa1000005" name="Voip_Rx"/>
<VALUE val="0xa1000006" name="Voip_Tx"/>
<VALUE val="0xa1000007" name="Voice_UI_EC_Ref_Path"/>
<VALUE val="0xa1000008" name="Voip_Tx_EC_Ref_Path"/>
<VALUE val="0xa1000009" name="PCM_Record_EC_Ref_Path"/>
</KEY>
<KEY name="Instance" id="0xab000000" description="Stream Instance Id">
<VALUE val="0x1" name="Instance_1"/>
<VALUE val="0x2" name="Instance_2"/>
<VALUE val="0x3" name="Instance_3"/>
</KEY>
<KEY name="DeviceRX" id="0xa2000000" description="Rx Device">
<VALUE val="0xa2000001" name="Speaker"/>
</KEY>
<KEY name="DeviceTX" id="0xa3000000" description="Tx Device">
<VALUE val="0xa3000001" name="HandsetMic"/>
</KEY>
<KEY name="DevicePP_Rx" id="0xac000000" description="Rx Device Post/Pre Processing Chain">
<VALUE val="0xac000001" name="Audio_LL_Default_PP"/>
</KEY>
<KEY name="DevicePP_Tx" id="0xad000000" description="Tx Device Post/Pre Processing Chain">
<VALUE val="0xad000001" name="Voice_Fluence_FFECNS"/>
<VALUE val="0xad000002" name="Audio_Fluence_SMECNS"/>
<VALUE val="0xad000003" name="Audio_Fluence_Endfire"/>
<VALUE val="0xad000004" name="Audio_Fluence_Pro"/>
</KEY>
<KEY name="Volume" id="0xa4000000" description="Volume">
<VALUE val="0x0" name="Level_0"/>
<VALUE val="0x1" name="Level_1"/>
<VALUE val="0x2" name="Level_2"/>
<VALUE val="0x3" name="Level_3"/>
<VALUE val="0x4" name="Level_4"/>
<VALUE val="0x5" name="Level_5"/>
<VALUE val="0x6" name="Level_6"/>
<VALUE val="0x7" name="Level_7"/>
<VALUE val="0x8" name="Level_8"/>
<VALUE val="0x9" name="Level_9"/>
<VALUE val="0xa" name="Level_10"/>
<VALUE val="0xb" name="Level_11"/>
<VALUE val="0xc" name="Level_12"/>
<VALUE val="0xd" name="Level_13"/>
<VALUE val="0xe" name="Level_14"/>
<VALUE val="0xf" name="Level_15"/>
</KEY>
<KEY name="SamplingRate" id="0xa5000000" sampleRate="true" description="Sampling Rate">
<VALUE val="0x1f40" name="SR_8K" sampleRate="0x1f40"/>
<VALUE val="0x3e80" name="SR_16K" sampleRate="0x3e80"/>
<VALUE val="0x7d00" name="SR_32K" sampleRate="0x7d00"/>
<VALUE val="0xac44" name="SR_44.1K" sampleRate="0xac44"/>
<VALUE val="0xbb80" name="SR_48K" sampleRate="0xbb80"/>
<VALUE val="0x17700" name="SR_96K" sampleRate="0x17700"/>
<VALUE val="0x2ee00" name="SR_192K" sampleRate="0x2ee00"/>
<VALUE val="0x5dc00" name="SR_384K" sampleRate="0x5dc00"/>
</KEY>
<KEY name="BitWidth" id="0xa6000000" description="Bit Width">
<VALUE val="0x10" name="BW_16"/>
<VALUE val="0x18" name="BW_24"/>
<VALUE val="0x20" name="BW_32"/>
</KEY>
<KEY name="Pause" id="0xa7000000" description="Pause">
<VALUE val="0x0" name="Off"/>
<VALUE val="0x1" name="On"/>
</KEY>
<KEY name="Mute" id="0xa8000000" description="Mute">
<VALUE val="0x0" name="Off"/>
<VALUE val="0x1" name="On"/>
</KEY>
<KEY name="Channels" id="0xa9000000" description="Channels">
<VALUE val="0x1" name="CHS_1"/>
<VALUE val="0x2" name="CHS_2"/>
<VALUE val="0x3" name="CHS_3"/>
<VALUE val="0x4" name="CHS_4"/>
<VALUE val="0x5" name="CHS_5"/>
<VALUE val="0x6" name="CHS_6"/>
<VALUE val="0x7" name="CHS_7"/>
<VALUE val="0x8" name="CHS_8"/>
</KEY>
<KEY name="Fluence" id="0xaa000000" description="Fluence">
<VALUE val="0x0" name="Off"/>
<VALUE val="0x1" name="On"/>
</KEY>
</KEY_LIST>
<GRAPH_KEY description="Graph Keys">
<KEY id="0xa1000000" name="Stream"/>
<KEY id="0xa2000000" name="DeviceRX"/>
<KEY id="0xa3000000" name="DeviceTX"/>
<KEY id="0xac000000" name="DevicePP_Rx"/>
<KEY id="0xad000000" name="DevicePP_Tx"/>
<KEY id="0xab000000" name="Instance"/>
</GRAPH_KEY>
<CAL_KEY description="Calibration Keys">
<KEY id="0xa4000000" name="Volume"/>
</CAL_KEY>
<MODULE_TAGS>
<TAG id="0xc0000004" name="device_hw_ep_rx" description="Hw EP Rx">
<KEY id="0xa2000000" name="DeviceRX"/>
<KEY id="0xa5000000" name="SamplingRate"/>
<KEY id="0xa6000000" name="BitWidth"/>
<KEY id="0xa9000000" name="Channels"/>
</TAG>
<TAG id="0xc0000005" name="device_hw_ep_tx" description="Hw EP Tx">
<KEY id="0xa3000000" name="DeviceTX"/>
<KEY id="0xa5000000" name="SamplingRate"/>
<KEY id="0xa6000000" name="BitWidth"/>
<KEY id="0xa9000000" name="Channels"/>
</TAG>
<TAG id="0xc0000006" name="stream_pause" description="Stream Pause">
<KEY id="0xa7000000" name="Pause"/>
</TAG>
<TAG id="0xc0000007" name="stream_mute" description="Stream Mute">
<KEY id="0xa8000000" name="Mute"/>
</TAG>
<TAG id="0xc000000a" name="device_fluence" description="Fluence On/Off">
<KEY id="0xaa000000" name="Fluence"/>
</TAG>
<TAG id="0xc000000d" name="stream_volume" description="Stream Volume">
<KEY id="0xa4000000" name="Volume"/>
</TAG>
<TAG id="0xc0000011" name="device_pp_mfc" description="Device PP MFC">
<KEY id="0xa5000000" name="SamplingRate"/>
</TAG>
<TAG id="0xc0000001" name="sh_ep"/>
<TAG id="0xc0000002" name="stream_input_media_format"/>
<TAG id="0xc0000003" name="stream_output_media_format"/>
<TAG id="0xc0000008" name="device_sva"/>
<TAG id="0xc0000009" name="device_adam"/>
<TAG id="0xc000000b" name="stream_mfc"/>
<TAG id="0xc000000c" name="device_mfc"/>
<TAG id="0xc000000e" name="stream_pcm_decoder"/>
<TAG id="0xc000000f" name="stream_pcm_encoder"/>
<TAG id="0xc0000010" name="stream_pcm_converter"/>
</MODULE_TAGS>
</KEY_DEF>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,273 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<!-- Uncomment HIFI Filter Headphones related sections when set this
hifi_filter key to true -->
<param key="hifi_filter" value="false"/>
<param key="max_sessions" value="128"/>
<param key="max_nonTunnel_sessions" value="4"/>
<param key="logging_level" value ="15" />
<param key="context_manager_enable" value ="false" />
<param key="upd_dedicated_be" value ="true" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<loopbackDelay>1000</loopbackDelay>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
<custom-config key="dual-mic">
<channels>2</channels>
<snd_device_name>handset-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="quad-mic">
<channels>4</channels>
<snd_device_name>quad-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_RAW</name>
<custom-config key="unprocessed-hdr-mic-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
</custom-config>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>OFF</sidetone_mode>
<custom-config key="dual-mic">
<channels>2</channels>
<snd_device_name>handset-dmic-endfire</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<out-device>
<id>PAL_DEVICE_NONE</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>none</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
<ext_ec_ref_enabled>0</ext_ec_ref_enabled>
<cps_enabled>0</cps_enabled>
<!--specify the supported bit format on speaker end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S16_LE</supported_bit_format>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<channels>1</channels>
<snd_device_name>speaker-mono-2</snd_device_name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRASOUND</name>
<samplerate>96000</samplerate>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
<ext_ec_ref_enabled>0</ext_ec_ref_enabled>
<samplerate>48000</samplerate>
<snd_device_name>handset</snd_device_name>
<usecase>
<name>PAL_STREAM_ULTRASOUND</name>
<samplerate>96000</samplerate>
</usecase>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_ACD</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_RAW</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
</resource_manager_info>

View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Copyright (c) 2021, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<graph_key_value_pair_info>
<streams>
<!-- Low-latency stream -->
<stream type="PAL_STREAM_LOW_LATENCY">
<keys_and_values Direction="TX" Instance="1">
<!-- STREAMTX - RAW_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000009"/>
</keys_and_values>
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - PCM_LL_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000E"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
</stream>
<!-- Deep Buffer stream -->
<stream type="PAL_STREAM_DEEP_BUFFER">
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - PCM_DEEP_BUFFER -->
<graph_kv key="0xA1000000" value="0xA1000001"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="RX" Instance="2">
<!-- STREAMRX - PCM_DEEP_BUFFER -->
<graph_kv key="0xA1000000" value="0xA1000001"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
<keys_and_values Direction="TX" Instance="1">
<!-- STREAMTX - PCM_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000001"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="TX" Instance="2">
<!-- STREAMTX - PCM_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000001"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
</stream>
</streams>
<devices>
<!-- Speaker Device -->
<device id="PAL_DEVICE_OUT_SPEAKER">
<keys_and_values>
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
</keys_and_values>
</device>
<!-- In Handset MIC Device -->
<device id="PAL_DEVICE_IN_HANDSET_MIC">
<keys_and_values>
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
</keys_and_values>
</device>
</devices>
<devicepps>
<!-- OUT Speaker DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_SPEAKER">
<keys_and_values StreamType="PAL_STREAM_LOW_LATENCY">
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000002"/>
</keys_and_values>
</devicepp>
</devicepps>
</graph_key_value_pair_info>

View File

@@ -0,0 +1,206 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted (subject to the limitations in the -->
<!-- disclaimer below) provided that the following conditions are met: -->
<!-- -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- -->
<!-- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE -->
<!-- GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT -->
<!-- HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -->
<!-- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -->
<!-- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -->
<!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -->
<!-- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -->
<!-- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -->
<!-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<haptics_param_values>
<predefined_effect>
<!-- CLICK -->
<Hapticseffect effect="0">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>0</wave_design_mode>
<auto_overdrive_brake_en>1</auto_overdrive_brake_en>
<f0_tracking_en>1</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>30</settling_time_ms>
<delay_time_ms>40</delay_time_ms>
<repetition_period_ms>500</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>65</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>35</pulse_width_ms>
<pulse_sharpness>80</pulse_sharpness>
</Hapticseffect>
<!-- DOUBLE CLICK -->
<Hapticseffect effect="1">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>1</auto_overdrive_brake_en>
<f0_tracking_en>1</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>2</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>30</settling_time_ms>
<delay_time_ms>40</delay_time_ms>
<repetition_period_ms>150</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>4</num_pwl>
<pwl_time>0,10,23,33</pwl_time>
<pwl_acc>0,33,33,0 </pwl_acc>
</Hapticseffect>
<!-- TICK -->
<Hapticseffect effect="2">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>2</wave_design_mode>
<auto_overdrive_brake_en>1</auto_overdrive_brake_en>
<f0_tracking_en>1</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>30</settling_time_ms>
<delay_time_ms>40</delay_time_ms>
<repetition_count>1</repetition_count>
<repetition_period_ms>150</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>55</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>40</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
</Hapticseffect>
<!-- THUD -->
<Hapticseffect effect="3">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>1</auto_overdrive_brake_en>
<f0_tracking_en>1</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>30</settling_time_ms>
<delay_time_ms>40</delay_time_ms>
<repetition_period_ms>250</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>4</num_pwl>
<pwl_time>0,15,40,65</pwl_time>
<pwl_acc>0,33,33,0 </pwl_acc>
</Hapticseffect>
<!-- POP -->
<Hapticseffect effect="4">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>1</auto_overdrive_brake_en>
<f0_tracking_en>1</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>30</settling_time_ms>
<delay_time_ms>40</delay_time_ms>
<repetition_period_ms>250</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>4</num_pwl>
<pwl_time>0,10,20,30</pwl_time>
<pwl_acc>0,33,33,0 </pwl_acc>
</Hapticseffect>
<!-- HEAVY CLICK -->
<Hapticseffect effect="5">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>1</auto_overdrive_brake_en>
<f0_tracking_en>1</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>30</settling_time_ms>
<delay_time_ms>40</delay_time_ms>
<repetition_period_ms>250</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>100</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>4</num_pwl>
<pwl_time>0,10,25,35</pwl_time>
<pwl_acc>0,33,33,0 </pwl_acc>
</Hapticseffect>
</predefined_effect>
<oneshot_effect>
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>2</wave_design_mode>
<auto_overdrive_brake_en>1</auto_overdrive_brake_en>
<f0_tracking_en>1</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>30</settling_time_ms>
<delay_time_ms>40</delay_time_ms>
<repetition_count>1</repetition_count>
<repetition_period_ms>120</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>85</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>50</pulse_sharpness>
</oneshot_effect>
<ringtone_effect>
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>3</wave_design_mode>
</ringtone_effect>
</haptics_param_values>

View File

@@ -0,0 +1,384 @@
<!-- Copyright (c) 2019, 2021, The Linux Foundation. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Changes from Qualcomm Innovation Center are provided under the following license:
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause-Clear
* -->
<defs>
<card>
<id>100</id>
<name>pineapplevirtualsndcard</name>
<pcm-device>
<id>100</id>
<name>PCM100</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>101</id>
<name>PCM101</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>102</id>
<name>PCM102</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>103</id>
<name>PCM103</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>104</id>
<name>PCM104</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<compress-device>
<id>105</id>
<name>COMPRESS105</name>
<compress_plugin>
<so-name>libagm_compress_plugin.so</so-name>
</compress_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</compress-device>
<pcm-device>
<id>106</id>
<name>VOICEMMODE1p</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>107</id>
<name>VOICEMMODE2p</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>108</id>
<name>VOICEMMODE1c</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>109</id>
<name>VOICEMMODE2c</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>110</id>
<name>PCM110</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>111</id>
<name>PCM111</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>112</id>
<name>PCM112</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>113</id>
<name>PCM113</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>114</id>
<name>PCM114</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>115</id>
<name>PCM115</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>116</id>
<name>PCM116</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>3</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>117</id>
<name>PCM117</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
</props>
</pcm-device>
<pcm-device>
<id>118</id>
<name>PCM118</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>119</id>
<name>PCM119</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>120</id>
<name>PCM120</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>121</id>
<name>PCM121</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>122</id>
<name>ExtEC122</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>123</id>
<name>PCM123</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<compress-device>
<id>124</id>
<name>COMPRESS124</name>
<compress_plugin>
<so-name>libagm_compress_plugin.so</so-name>
</compress_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<!-- AGM_SESSION_COMPRESS -->
<session_mode>4</session_mode>
</props>
</compress-device>
<pcm-device>
<id>125</id>
<name>PCM125</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>3</session_mode>
</props>
</pcm-device>
<mixer>
<id>1</id>
<name>agm_mixer</name>
<mixer_plugin>
<so-name>libagm_mixer_plugin.so</so-name>
</mixer_plugin>
</mixer>
</card>
</defs>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<hw_ep_info>
<codec_dma>
<codec_hw_intf name="cdc-pri" lpaif_type="LPAIF_WSA" intf_idx="CODEC_RX0"/>
<codec_hw_intf name="cdc-sec" lpaif_type="LPAIF_VA" intf_idx="CODEC_TX0"/>
</codec_dma>
<i2s>
<i2s_hw_intf name="i2s-pri" line_mask="2" ws_src="CONFIG_I2S_WS_SRC_INTERNAL" lpaif_type="LPAIF_AXI"/>
<i2s_hw_intf name="i2s-sec" line_mask="1" ws_src="CONFIG_I2S_WS_SRC_INTERNAL" lpaif_type="LPAIF_AXI"/>
</i2s>
<tdm>
<tdm_hw_intf name="tdm-pri" lpaif_type="LPAIF_AXI" sync_src="TDM_SYNC_SRC_INTERNAL" ctrl_data="TDM_CTRL_DATA_OE_DISABLE" sync_mode="TDM_LONG_SYNC_MODE" ctrl_invert_sync_pulse="TDM_SYNC_INVERT" ctrl_sync_data_delay="TDM_DATA_DELAY_1_BCLK_CYCLE"/>
</tdm>
<auxpcm>
<auxpcm_hw_intf name="auxpcm-pri-rx" lpaif_type="LPAIF_AXI" sync_src="PCM_SYNC_SRC_INTERNAL" ctrl_data="PCM_CTRL_DATA_OE_DISABLE" frame_setting="PCM_BITS_PER_FRAME_128" aux_mode="PCM_MODE" />
<auxpcm_hw_intf name="auxpcm-pri-tx" lpaif_type="LPAIF_AXI" sync_src="PCM_SYNC_SRC_INTERNAL" ctrl_data="PCM_CTRL_DATA_OE_DISABLE" frame_setting="PCM_BITS_PER_FRAME_128" aux_mode="PCM_MODE" />
</auxpcm>
</hw_ep_info>
<!-- line_mask in i2s indicates the lines that we are using
eg: 3 indicates 'line 0' and 'line 1' and 2 indicates 'line 1' -->

View File

@@ -0,0 +1,171 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2019, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<KEY_DEF versionMajor="0x0" versionMinor="0x0" versionBranch="0x0" versionSubBranch="0x0">
<PLATFORMS>
<PLATFORM name="LA" id="0x1"/>
<PLATFORM name="LE" id="0x2"/>
</PLATFORMS>
<KEY_LIST>
<KEY name="Stream" id="0xa1000000" description="Type of Stream">
<VALUE val="0xa1000001" name="PCM_LL_Playback"/>
<VALUE val="0xa1000002" name="PCM_Record"/>
<VALUE val="0xa1000003" name="PCM_Loopback"/>
<VALUE val="0xa1000004" name="Voice_UI"/>
<VALUE val="0xa1000005" name="Voip_Rx"/>
<VALUE val="0xa1000006" name="Voip_Tx"/>
<VALUE val="0xa1000007" name="Voice_UI_EC_Ref_Path"/>
<VALUE val="0xa1000008" name="Voip_Tx_EC_Ref_Path"/>
<VALUE val="0xa1000009" name="PCM_Record_EC_Ref_Path"/>
</KEY>
<KEY name="Instance" id="0xab000000" description="Stream Instance Id">
<VALUE val="0x1" name="Instance_1"/>
<VALUE val="0x2" name="Instance_2"/>
<VALUE val="0x3" name="Instance_3"/>
</KEY>
<KEY name="DeviceRX" id="0xa2000000" description="Rx Device">
<VALUE val="0xa2000001" name="Speaker"/>
</KEY>
<KEY name="DeviceTX" id="0xa3000000" description="Tx Device">
<VALUE val="0xa3000001" name="HandsetMic"/>
</KEY>
<KEY name="DevicePP_Rx" id="0xac000000" description="Rx Device Post/Pre Processing Chain">
<VALUE val="0xac000001" name="Audio_LL_Default_PP"/>
</KEY>
<KEY name="DevicePP_Tx" id="0xad000000" description="Tx Device Post/Pre Processing Chain">
<VALUE val="0xad000001" name="Voice_Fluence_FFECNS"/>
<VALUE val="0xad000002" name="Audio_Fluence_SMECNS"/>
<VALUE val="0xad000003" name="Audio_Fluence_Endfire"/>
<VALUE val="0xad000004" name="Audio_Fluence_Pro"/>
</KEY>
<KEY name="Volume" id="0xa4000000" description="Volume">
<VALUE val="0x0" name="Level_0"/>
<VALUE val="0x1" name="Level_1"/>
<VALUE val="0x2" name="Level_2"/>
<VALUE val="0x3" name="Level_3"/>
<VALUE val="0x4" name="Level_4"/>
<VALUE val="0x5" name="Level_5"/>
<VALUE val="0x6" name="Level_6"/>
<VALUE val="0x7" name="Level_7"/>
<VALUE val="0x8" name="Level_8"/>
<VALUE val="0x9" name="Level_9"/>
<VALUE val="0xa" name="Level_10"/>
<VALUE val="0xb" name="Level_11"/>
<VALUE val="0xc" name="Level_12"/>
<VALUE val="0xd" name="Level_13"/>
<VALUE val="0xe" name="Level_14"/>
<VALUE val="0xf" name="Level_15"/>
</KEY>
<KEY name="SamplingRate" id="0xa5000000" sampleRate="true" description="Sampling Rate">
<VALUE val="0x1f40" name="SR_8K" sampleRate="0x1f40"/>
<VALUE val="0x3e80" name="SR_16K" sampleRate="0x3e80"/>
<VALUE val="0x7d00" name="SR_32K" sampleRate="0x7d00"/>
<VALUE val="0xac44" name="SR_44.1K" sampleRate="0xac44"/>
<VALUE val="0xbb80" name="SR_48K" sampleRate="0xbb80"/>
<VALUE val="0x17700" name="SR_96K" sampleRate="0x17700"/>
<VALUE val="0x2ee00" name="SR_192K" sampleRate="0x2ee00"/>
<VALUE val="0x5dc00" name="SR_384K" sampleRate="0x5dc00"/>
</KEY>
<KEY name="BitWidth" id="0xa6000000" description="Bit Width">
<VALUE val="0x10" name="BW_16"/>
<VALUE val="0x18" name="BW_24"/>
<VALUE val="0x20" name="BW_32"/>
</KEY>
<KEY name="Pause" id="0xa7000000" description="Pause">
<VALUE val="0x0" name="Off"/>
<VALUE val="0x1" name="On"/>
</KEY>
<KEY name="Mute" id="0xa8000000" description="Mute">
<VALUE val="0x0" name="Off"/>
<VALUE val="0x1" name="On"/>
</KEY>
<KEY name="Channels" id="0xa9000000" description="Channels">
<VALUE val="0x1" name="CHS_1"/>
<VALUE val="0x2" name="CHS_2"/>
<VALUE val="0x3" name="CHS_3"/>
<VALUE val="0x4" name="CHS_4"/>
<VALUE val="0x5" name="CHS_5"/>
<VALUE val="0x6" name="CHS_6"/>
<VALUE val="0x7" name="CHS_7"/>
<VALUE val="0x8" name="CHS_8"/>
</KEY>
<KEY name="Fluence" id="0xaa000000" description="Fluence">
<VALUE val="0x0" name="Off"/>
<VALUE val="0x1" name="On"/>
</KEY>
</KEY_LIST>
<GRAPH_KEY description="Graph Keys">
<KEY id="0xa1000000" name="Stream"/>
<KEY id="0xa2000000" name="DeviceRX"/>
<KEY id="0xa3000000" name="DeviceTX"/>
<KEY id="0xac000000" name="DevicePP_Rx"/>
<KEY id="0xad000000" name="DevicePP_Tx"/>
<KEY id="0xab000000" name="Instance"/>
</GRAPH_KEY>
<CAL_KEY description="Calibration Keys">
<KEY id="0xa4000000" name="Volume"/>
</CAL_KEY>
<MODULE_TAGS>
<TAG id="0xc0000004" name="device_hw_ep_rx" description="Hw EP Rx">
<KEY id="0xa2000000" name="DeviceRX"/>
<KEY id="0xa5000000" name="SamplingRate"/>
<KEY id="0xa6000000" name="BitWidth"/>
<KEY id="0xa9000000" name="Channels"/>
</TAG>
<TAG id="0xc0000005" name="device_hw_ep_tx" description="Hw EP Tx">
<KEY id="0xa3000000" name="DeviceTX"/>
<KEY id="0xa5000000" name="SamplingRate"/>
<KEY id="0xa6000000" name="BitWidth"/>
<KEY id="0xa9000000" name="Channels"/>
</TAG>
<TAG id="0xc0000006" name="stream_pause" description="Stream Pause">
<KEY id="0xa7000000" name="Pause"/>
</TAG>
<TAG id="0xc0000007" name="stream_mute" description="Stream Mute">
<KEY id="0xa8000000" name="Mute"/>
</TAG>
<TAG id="0xc000000a" name="device_fluence" description="Fluence On/Off">
<KEY id="0xaa000000" name="Fluence"/>
</TAG>
<TAG id="0xc000000d" name="stream_volume" description="Stream Volume">
<KEY id="0xa4000000" name="Volume"/>
</TAG>
<TAG id="0xc0000011" name="device_pp_mfc" description="Device PP MFC">
<KEY id="0xa5000000" name="SamplingRate"/>
</TAG>
<TAG id="0xc0000001" name="sh_ep"/>
<TAG id="0xc0000002" name="stream_input_media_format"/>
<TAG id="0xc0000003" name="stream_output_media_format"/>
<TAG id="0xc0000008" name="device_sva"/>
<TAG id="0xc0000009" name="device_adam"/>
<TAG id="0xc000000b" name="stream_mfc"/>
<TAG id="0xc000000c" name="device_mfc"/>
<TAG id="0xc000000e" name="stream_pcm_decoder"/>
<TAG id="0xc000000f" name="stream_pcm_encoder"/>
<TAG id="0xc0000010" name="stream_pcm_converter"/>
</MODULE_TAGS>
</KEY_DEF>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<resource_manager_info>
<pcm_ids>
<device name="QAL_DEVICE_OUT_SPEAKER" pcm_id="2" hw_intf="cdc-pri" snd_device_name="speaker"/>
<device name="QAL_DEVICE_IN_HANDSET_MIC" pcm_id="0" hw_intf="cdc-sec" snd_device_name="handset-mic"/>
<device name="QAL_DEVICE_IN_SPEAKER_MIC" pcm_id="0" hw_intf="cdc-sec" snd_device_name="speaker-mic"/>
<device name="QAL_DEVICE_IN_TRI_MIC" pcm_id="0" hw_intf="cdc-sec" snd_device_name="three-mic"/>
</pcm_ids>
</resource_manager_info>

View File

@@ -0,0 +1,245 @@
<!-- Copyright (c) 2019, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<!-- Changes from Qualcomm Innovation Center, Inc. are provided under the following license: -->
<!-- Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved. -->
<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<defs>
<card>
<id>100</id>
<name>sdxautovirtualsndcard</name>
<pcm-device>
<id>100</id>
<name>PCM100</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
</props>
</pcm-device>
<pcm-device>
<id>101</id>
<name>PCM101</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
</props>
</pcm-device>
<pcm-device>
<id>102</id>
<name>PCM102</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
</props>
</pcm-device>
<pcm-device>
<id>103</id>
<name>PCM103</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>104</id>
<name>PCM104</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<compress-device>
<id>105</id>
<name>COMPRESS105</name>
<compress_plugin>
<so-name>libagm_compress_plugin.so</so-name>
</compress_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</compress-device>
<pcm-device>
<id>106</id>
<name>VOICEMMODE1p</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>107</id>
<name>VOICEMMODE2p</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>108</id>
<name>VOICEMMODE1c</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>109</id>
<name>VOICEMMODE2c</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>110</id>
<name>PCM110</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
</props>
</pcm-device>
<pcm-device>
<id>111</id>
<name>PCM111</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
</props>
</pcm-device>
<pcm-device>
<id>112</id>
<name>PCM112</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
</props>
</pcm-device>
<pcm-device>
<id>113</id>
<name>PCM113</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>114</id>
<name>PCM114</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<compress-device>
<id>115</id>
<name>COMPRESS115</name>
<compress_plugin>
<so-name>libagm_compress_plugin.so</so-name>
</compress_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>2</session_mode>
</props>
</compress-device>
<mixer>
<id>1</id>
<name>agm_mixer</name>
<mixer_plugin>
<so-name>libagm_mixer_plugin.so</so-name>
</mixer_plugin>
</mixer>
</card>
</defs>

View File

@@ -0,0 +1,319 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2015-2018, 2019-2020 The Linux Foundation. -->
<!-- All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<!-- -->
<!-- Changes from Qualcomm Innovation Center, Inc. are provided under the following license: -->
<!-- -->
<!-- Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. -->
<!-- All rights reserved. -->
<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<!-- These are the initial mixer settings -->
<ctl name="Voice Rx Device Mute" id="0" value="0" />
<ctl name="Voice Rx Device Mute" id="1" value="-1" />
<ctl name="Voice Rx Device Mute" id="2" value="20" />
<ctl name="Voice Tx Mute" id="0" value="0" />
<ctl name="Voice Tx Mute" id="1" value="-1" />
<ctl name="Voice Tx Mute" id="2" value="500" />
<ctl name="Voice Rx Gain" id="0" value="0" />
<ctl name="Voice Rx Gain" id="1" value="-1" />
<ctl name="Voice Rx Gain" id="2" value="20" />
<ctl name="HPHL Volume" value="97" />
<ctl name="HPHR Volume" value="97" />
<ctl name="RX1 Digital Volume" value="84" />
<ctl name="RX2 Digital Volume" value="84" />
<ctl name="RX3 Digital Volume" value="84" />
<ctl name="RX4 Digital Volume" value="84" />
<ctl name="ADC2 Volume" value="14" />
<ctl name="DEC5 Volume" value="84" />
<ctl name="DEC10 Volume" value="84" />
<ctl name="COMP0 Switch" value="0" />
<ctl name="COMP1 Switch" value="0" />
<ctl name="IIR1 INP1 MUX" value="ZERO" />
<ctl name="SLIM TX6 MUX" value="ZERO" />
<ctl name="DEC10 MUX" value="ZERO" />
<ctl name="DEC5 MUX" value="ZERO" />
<ctl name="RX2 MIX2 INP1" value="ZERO" />
<ctl name="RX1 MIX2 INP1" value="ZERO" />
<ctl name="RX7 MIX1 INP1" value="ZERO" />
<ctl name="RX2 MIX1 INP2" value="ZERO" />
<ctl name="RX2 MIX1 INP1" value="ZERO" />
<ctl name="RX1 MIX1 INP1" value="ZERO" />
<ctl name="HPHL DAC Switch" value="0" />
<ctl name="SLIM RX4 MUX" value="AIF1_PB" />
<ctl name="SLIM RX3 MUX" value="AIF1_PB" />
<ctl name="CLASS_H_DSM MUX" value="ZERO" />
<!-- These are actual sound device specific mixer settings -->
<path name="adc2">
<ctl name="AIF1_CAP Mixer I2S TX6" value="1"/>
<ctl name="CDC_IF TX6 MUX" value="DEC6" />
<ctl name="ADC MUX6" value="AMIC" />
<ctl name="AMIC MUX6" value="ADC2" />
</path>
<path name="dmic1">
<ctl name="AIF1_CAP Mixer I2S TX6" value="1"/>
<ctl name="CDC_IF TX6 MUX" value="DEC6" />
<ctl name="ADC MUX6" value="DMIC" />
<ctl name="DMIC MUX6" value="DMIC1" />
</path>
<path name="dmic2">
<ctl name="AIF1_CAP Mixer I2S TX6" value="1"/>
<ctl name="CDC_IF TX6 MUX" value="DEC6" />
<ctl name="ADC MUX6" value="DMIC" />
<ctl name="DMIC MUX6" value="DMIC2" />
</path>
<path name="speaker">
<ctl name="RX7 Digital Volume" value="84" />
<ctl name="I2S RX0 MUX" value="AIF1_PB" />
<ctl name="CDC_IF RX0 MUX" value="I2S RX0" />
<ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
<ctl name="COMP7 Switch" value="1" />
<ctl name="SpkrLeft COMP Switch" value="1" />
<ctl name="SpkrLeft BOOST Switch" value="1" />
<ctl name="SpkrLeft VISENSE Switch" value="1" />
<ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
<ctl name="PCM Playback Volume" value="127 127" />
</path>
<path name="speaker-mic">
<path name="dmic2" />
<ctl name="DEC6 Volume" value="110" />
<ctl name="PGA Capture Volume" value="18 18" />
</path>
<path name="handset">
<ctl name="I2S RX0 MUX" value="AIF1_PB" />
<ctl name="CDC_IF RX0 MUX" value="I2S RX0" />
<ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
<ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="EAR PA Gain" value="G_6_DB" />
</path>
<path name="handset-mic">
<path name="dmic2" />
</path>
<path name="headphones">
<ctl name="I2S RX0 MUX" value="AIF1_PB" />
<ctl name="I2S RX1 MUX" value="AIF1_PB" />
<ctl name="CDC_IF RX0 MUX" value="I2S RX0" />
<ctl name="CDC_IF RX1 MUX" value="I2S RX1" />
<ctl name="RX INT1_2 MUX" value="RX0" />
<ctl name="RX INT2_2 MUX" value="RX1" />
<ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX INT2 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="COMP1 Switch" value="1" />
<ctl name="COMP2 Switch" value="1" />
</path>
<path name="voice-handset">
<path name="handset" />
</path>
<path name="headset-mic">
<path name="adc2" />
<ctl name="DEC6 Volume" value="84" />
</path>
<path name="voice-speaker">
<path name="speaker" />
</path>
<path name="voice-speaker-mic">
<path name="speaker-mic" />
</path>
<path name="voice-headphones">
<path name="headphones" />
</path>
<path name="afe-proxy">
</path>
<path name="voice-headset-mic">
<path name="headset-mic" />
<ctl name="ADC2 Volume" value="13" />
</path>
<path name="voice-rec-mic">
<path name="handset-mic" />
<ctrl name="DEC6 Volume" value="102" />
</path>
<path name="wsa-speaker">
<path name="speaker" />
</path>
<path name="wsa-voice-speaker">
<path name="speaker" />
</path>
<!-- Dual MIC devices -->
<path name="handset-dmic-endfire">
<ctl name="AIF1_CAP Mixer I2S TX6" value="1" />
<ctl name="AIF1_CAP Mixer I2S TX7" value="1" />
<ctl name="CDC_IF TX6 MUX" value="DEC6" />
<ctl name="ADC MUX6" value="DMIC" />
<ctl name="DMIC MUX6" value="DMIC1" />
<ctl name="CDC_IF TX7 MUX" value="DEC7" />
<ctl name="ADC MUX7" value="DMIC" />
<ctl name="DMIC MUX7" value="DMIC2" />
</path>
<path name="speaker-dmic-endfire">
<ctl name="AIF1_CAP Mixer I2S TX6" value="1" />
<ctl name="AIF1_CAP Mixer I2S TX7" value="1" />
<ctl name="CDC_IF TX6 MUX" value="DEC6" />
<ctl name="ADC MUX6" value="DMIC" />
<ctl name="DMIC MUX6" value="DMIC1" />
<ctl name="CDC_IF TX7 MUX" value="DEC7" />
<ctl name="ADC MUX7" value="DMIC" />
<ctl name="DMIC MUX7" value="DMIC2" />
</path>
<path name="dmic-endfire">
<path name="handset-dmic-endfire" />
<ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic-endfire-liquid">
<path name="handset-dmic-endfire" />
<ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="handset-stereo-dmic-ef">
<path name="handset-dmic-endfire" />
</path>
<path name="speaker-stereo-dmic-ef">
<path name="speaker-dmic-endfire" />
</path>
<path name="voice-dmic-ef-tmus">
<path name="dmic-endfire" />
</path>
<path name="voice-dmic-ef">
<path name="dmic-endfire" />
</path>
<path name="voice-speaker-dmic-ef">
<path name="speaker-dmic-endfire" />
</path>
<path name="voice-rec-dmic-ef">
<path name="dmic-endfire" />
</path>
<path name="voice-rec-dmic-ef-fluence">
<path name="dmic-endfire" />
</path>
<path name="handset-stereo-dmic-ef-liquid">
<path name="handset-dmic-endfire" />
</path>
<path name="speaker-stereo-dmic-ef-liquid">
<path name="speaker-dmic-endfire" />
</path>
<path name="voice-dmic-ef-liquid-liquid">
<path name="dmic-endfire-liquid" />
</path>
<path name="voice-speaker-dmic-ef-liquid">
<path name="dmic-endfire-liquid" />
</path>
<path name="voice-rec-dmic-ef-liquid">
<path name="dmic-endfire-liquid" />
</path>
<path name="voice-rec-dmic-ef-fluence-liquid">
<path name="dmic-endfire-liquid" />
</path>
<path name="speaker-dmic-broadside">
<ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
<ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
<ctl name="CDC_IF TX7 MUX" value="DEC7" />
<ctl name="ADC MUX7" value="DMIC" />
<ctl name="DMIC MUX7" value="DMIC1" />
<ctl name="CDC_IF TX8 MUX" value="DEC8" />
<ctl name="ADC MUX8" value="DMIC" />
<ctl name="DMIC MUX8" value="DMIC2" />
</path>
<path name="dmic-broadside">
<path name="speaker-dmic-broadside" />
<ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="voice-speaker-dmic-broadside">
<path name="dmic-broadside" />
</path>
<!-- TTY devices -->
<path name="tty-headphones">
<path name="headphones" />
</path>
<path name="voice-tty-full-headphones">
<ctl name="TTY Mode" value="FULL" />
<path name="tty-headphones" />
</path>
<path name="voice-tty-vco-headphones">
<ctl name="TTY Mode" value="VCO" />
<path name="tty-headphones" />
</path>
<path name="voice-tty-hco-handset">
<ctl name="TTY Mode" value="HCO" />
<path name="handset" />
</path>
<path name="voice-tty-full-headset-mic">
<path name="adc2" />
<ctl name="ADC2 Volume" value="0" />
</path>
<path name="voice-tty-hco-headset-mic">
<path name="voice-tty-full-headset-mic" />
</path>
<path name="voice-tty-vco-handset-mic">
<path name="dmic2" />
</path>
</mixer>

View File

@@ -0,0 +1,233 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<!-- Changes from Qualcomm Innovation Center, Inc. are provided under the following license: -->
<!-- Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.-->
<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<resource_manager_info>
<config_params>
<param key="max_sessions" value="128"/>
<param key="skip_stream_restart" value="1"/>
</config_params>
<config_voice>
<vsid>0xB3000000</vsid>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>MI2S-LPAIF-TX-SECONDARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>MI2S-LPAIF-TX-PRIMARY</back_end_name>
<max_channels>4</max_channels>
<channels>2</channels>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>OFF</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>AUXPCM-LPAIF-TX-SECONDARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<bit_width>16</bit_width>
<snd_device_name>bt-sco-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_COMPRESSED</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>OFF</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_PROXY</id>
<back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>afe-proxy</snd_device_name>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_WIRED_HEADSET</id>
<back_end_name>MI2S-LPAIF-TX-TERTIARY</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<devicePP-metadata>
</devicePP-metadata>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_VI_FEEDBACK</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>vi-feedback</snd_device_name>
</in-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>MI2S-LPAIF-RX-PRIMARY</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<quick_cal_time>0</quick_cal_time> <!-- Time in seconds for Quick cal. Set 0 to disable -->
<ras_enabled>0</ras_enabled> <!-- RAS should be enabled with speaker protection always -->
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>MI2S-LPAIF-RX-SECONDARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_PROXY</id>
<back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
<fractional_sr>0</fractional_sr>
<samplerate>48000</samplerate>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
<back_end_name>MI2S-LPAIF-RX-TERTIARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
<back_end_name>MI2S-LPAIF-RX-TERTIARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>AUXPCM-LPAIF-RX-SECONDARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>bt-sco</snd_device_name>
<bit_width>16</bit_width>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_VOIP_RX</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
</resource_manager_info>

View File

@@ -0,0 +1,575 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Changes from Qualcomm Innovation Center, Inc. are provided under the following license:
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause-Clear
* -->
<graph_key_value_pair_info>
<streams>
<!-- Low-latency stream -->
<stream type="PAL_STREAM_LOW_LATENCY">
<keys_and_values Direction="TX" Instance="1">
<!-- STREAMTX - RAW_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000009"/>
</keys_and_values>
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - PCM_LL_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000E"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="RX" Instance="2">
<!-- STREAMRX - PCM_LL_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000E"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
</stream>
<!-- Deep Buffer stream -->
<stream type="PAL_STREAM_DEEP_BUFFER">
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - PCM_DEEP_BUFFER -->
<graph_kv key="0xA1000000" value="0xA1000001"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="RX" Instance="2">
<!-- STREAMRX - PCM_DEEP_BUFFER -->
<graph_kv key="0xA1000000" value="0xA1000001"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
<keys_and_values Direction="TX" Instance="1">
<!-- STREAMTX - PCM_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000001"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="TX" Instance="2">
<!-- STREAMTX - PCM_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000001"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
</stream>
<!-- Compress stream -->
<stream type="PAL_STREAM_COMPRESSED">
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - COMPRESSED_OFFLOAD_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000A"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="TX" Instance="1">
<!-- STREAMTX - compress capture stream -->
<graph_kv key="0xB1000000" value="0xB1000012"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
</stream>
<!-- VOIP RX stream -->
<stream type="PAL_STREAM_VOIP_RX">
<keys_and_values>
<!-- STREAMRX - VOIP_RX_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA1000005"/>
</keys_and_values>
</stream>
<!-- VOIP TX stream -->
<stream type="PAL_STREAM_VOIP_TX">
<keys_and_values>
<!-- STREAMTX - VOIP_TX_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000004"/>
</keys_and_values>
</stream>
<!-- Voice Call Music stream -->
<stream type="PAL_STREAM_VOICE_CALL_MUSIC">
<keys_and_values>
<!-- STREAMRX - INCALL_MUSIC-->
<graph_kv key="0xA1000000" value="0xA1000013"/>
</keys_and_values>
</stream>
<!-- Voice Call Record stream -->
<stream type="PAL_STREAM_VOICE_CALL_RECORD">
<keys_and_values>
<!-- STREAMTX - INCALL_RECORD -->
<graph_kv key="0xB1000000" value="0xB100000C"/>
</keys_and_values>
</stream>
<!-- Voice stream -->
<stream type="PAL_STREAM_VOICE_CALL">
<keys_and_values Direction="RX" VSID="VOICEMMODE1,VOICEMMODE2">
<!-- STREAMRX - VOICE_CALL_RX -->
<graph_kv key="0xA1000000" value="0xA1000010"/>
<!-- VSID - VSID_DEFAULT -->
<graph_kv key="0xB3000000" value="0xB3000001"/>
</keys_and_values>
<keys_and_values Direction="TX" VSID="VOICEMMODE1,VOICEMMODE2">
<!-- STREAMTX - VOICE_CALL_TX -->
<graph_kv key="0xB1000000" value="0xB1000007"/>
<!-- VSID - VSID_DEFAULT -->
<graph_kv key="0xB3000000" value="0xB3000001"/>
</keys_and_values>
</stream>
<!-- Loopback stream -->
<stream type="PAL_STREAM_LOOPBACK">
<keys_and_values Direction="RX_TX" SubType="PAL_STREAM_LOOPBACK_PCM">
<!-- STREAMRX - PCM_RX_LOOPBACK -->
<graph_kv key="0xA1000000" value="0xA1000003"/>
</keys_and_values>
<keys_and_values Direction="RX" SubType="PAL_STREAM_LOOPBACK_PLAYBACK_ONLY">
<!-- STREAMRX - PCM_RX_LOOPBACK -->
<graph_kv key="0xA1000000" value="0xA1000003"/>
</keys_and_values>
</stream>
<!-- PCM-Offload stream -->
<stream type="PAL_STREAM_PCM_OFFLOAD">
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - PCM_OFFLOAD_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000F"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
</stream>
<!-- Ultra-Low-latency stream -->
<stream type="PAL_STREAM_ULTRA_LOW_LATENCY">
<keys_and_values Direction="RX">
<!-- STREAMRX - PCM_ULL_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA1000011"/>
</keys_and_values>
<keys_and_values Direction="TX">
<!-- STREAMTX - PCM_ULL_RECORD -->
<graph_kv key="0xB1000000" value="0xB100000A"/>
</keys_and_values>
</stream>
<!-- Proxy stream -->
<stream type="PAL_STREAM_PROXY">
<keys_and_values Direction="TX">
<!-- STREAMTX - PCM_PROXY_RECORD -->
<graph_kv key="0xB1000000" value="0xB100000B"/>
</keys_and_values>
<keys_and_values Direction="TX" SubType="PAL_STREAM_PROXY_TX_WFD">
<!-- STREAMTX - PCM_PROXY_RECORD -->
<graph_kv key="0xB1000000" value="0xB100000B"/>
<!-- PROXY_TX_TYPE - PROXY_TX_WFD -->
<graph_kv key="0xD1000000" value="0xD1000002"/>
</keys_and_values>
<keys_and_values Direction="TX" SubType="PAL_STREAM_PROXY_TX_TELEPHONY_RX">
<!-- STREAMTX - PCM_PROXY_RECORD -->
<graph_kv key="0xB1000000" value="0xB100000B"/>
<!-- PROXY_TX_TYPE - PROXY_TX_VOICE_RX -->
<graph_kv key="0xD1000000" value="0xD1000003"/>
</keys_and_values>
<keys_and_values Direction="RX">
<!-- STREAMRX - PCM_PROXY_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA1000012"/>
</keys_and_values>
</stream>
</streams>
<streampps>
<!-- Voice Call stream PP -->
<streampp type="PAL_STREAM_VOICE_CALL">
<keys_and_values>
<!-- STREAMPP_RX - STREAMPP_RX_DEFAULT -->
<graph_kv key="0xAF000000" value="0xAF000001"/>
</keys_and_values>
</streampp>
</streampps>
<devices>
<!-- Speaker Device -->
<device id="PAL_DEVICE_OUT_SPEAKER">
<keys_and_values>
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
</keys_and_values>
</device>
<!-- Handset Device -->
<device id="PAL_DEVICE_OUT_HANDSET">
<keys_and_values>
<!-- DEVICERX - HANDSET -->
<graph_kv key="0xA2000000" value="0xA2000004"/>
</keys_and_values>
</device>
<!-- wired USB Device-->
<device id="PAL_DEVICE_OUT_WIRED_HEADSET,PAL_DEVICE_OUT_WIRED_HEADPHONE">
<keys_and_values>
<!-- DEVICERX - HEADPHONES -->
<graph_kv key="0xA2000000" value="0xA2000002"/>
</keys_and_values>
</device>
<!-- In Handset MIC Device -->
<device id="PAL_DEVICE_IN_HANDSET_MIC">
<keys_and_values>
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
</keys_and_values>
<keys_and_values SidetoneMode="SW">
<!-- SW_SIDETONE - SW_SIDETONE_ON -->
<graph_kv key="0xBA000000" value="0xBA000001"/>
</keys_and_values>
</device>
<!-- In speaker MIC Device-->
<device id="PAL_DEVICE_IN_SPEAKER_MIC">
<keys_and_values>
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
</keys_and_values>
<keys_and_values SidetoneMode="SW">
<!-- SW_SIDETONE - SW_SIDETONE_ON -->
<graph_kv key="0xBA000000" value="0xBA000001"/>
</keys_and_values>
</device>
<!-- In wired Headset Device -->
<device id="PAL_DEVICE_IN_WIRED_HEADSET">
<keys_and_values>
<!-- DEVICETX - HEADPHONE_MIC -->
<graph_kv key="0xA3000000" value="0xA3000003"/>
</keys_and_values>
<keys_and_values SidetoneMode="SW">
<!-- SW_SIDETONE - SW_SIDETONE_ON -->
<graph_kv key="0xBA000000" value="0xBA000001"/>
</keys_and_values>
</device>
<!-- Proxy IN Device -->
<device id="PAL_DEVICE_IN_PROXY">
<keys_and_values>
<!-- DEVICETX - PROXY_TX -->
<graph_kv key="0xA3000000" value="0xA3000008"/>
</keys_and_values>
<keys_and_values SubType="PAL_STREAM_PROXY_TX_WFD">
<!-- DEVICETX - PROXY_TX -->
<graph_kv key="0xA3000000" value="0xA3000008"/>
<!-- PROXY_TX_TYPE - PROXY_TX_WFD -->
<graph_kv key="0xD1000000" value="0xD1000002"/>
</keys_and_values>
</device>
<!-- Proxy Record IN Device -->
<device id="PAL_DEVICE_IN_RECORD_PROXY">
<keys_and_values>
<!-- DEVICETX - PROXY_TX -->
<graph_kv key="0xA3000000" value="0xA3000008"/>
</keys_and_values>
</device>
<!-- Proxy Out Device -->
<device id="PAL_DEVICE_OUT_PROXY">
<keys_and_values>
<!-- DEVICERX - PROXY_RX -->
<graph_kv key="0xA2000000" value="0xA2000007"/>
</keys_and_values>
</device>
<!-- Proxy Out Record Device -->
<device id="PAL_DEVICE_OUT_RECORD_PROXY">
<keys_and_values>
<!-- DEVICERX - PROXY_RX -->
<graph_kv key="0xA2000000" value="0xA2000007"/>
</keys_and_values>
</device>
<!-- In Telephony RX Device -->
<device id="PAL_DEVICE_IN_TELEPHONY_RX">
<keys_and_values>
<!-- DEVICETX - PROXY_TX -->
<graph_kv key="0xA3000000" value="0xA3000008"/>
</keys_and_values>
<keys_and_values SubType="PAL_STREAM_PROXY_TX_TELEPHONY_RX">
<!-- DEVICETX - PROXY_TX -->
<graph_kv key="0xA3000000" value="0xA3000008"/>
<!-- PROXY_TX_TYPE - PROXY_TX_VOICE_RX -->
<graph_kv key="0xD1000000" value="0xD1000003"/>
</keys_and_values>
</device>
<!-- In VI feedback Device -->
<device id="PAL_DEVICE_IN_VI_FEEDBACK">
<keys_and_values>
<!-- DEVICETX - VI_TX -->
<graph_kv key="0xA3000000" value="0xA3000009"/>
</keys_and_values>
</device>
<!-- BT SCO OUT Device -->
<device id="PAL_DEVICE_OUT_BLUETOOTH_SCO">
<keys_and_values CodecFormat="CODEC_TYPE_INVALID">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_APTX_AD_SPEECH">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
<!-- BT_FORMAT - SWB -->
<graph_kv key="0xB5000000" value="0xB5000004"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_LC3">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
<!-- BT_FORMAT - LC3 -->
<graph_kv key="0xB5000000" value="0xB5000005"/>
</keys_and_values>
</device>
<!-- BT SCO In Headset Device -->
<device id="PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET">
<keys_and_values CodecFormat="CODEC_TYPE_INVALID">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_APTX_AD_SPEECH">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
<!-- BT_FORMAT - SWB -->
<graph_kv key="0xB5000000" value="0xB5000004"/>
</keys_and_values>
<keys_and_values CodecFormat="CODEC_TYPE_LC3">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
<!-- BT_FORMAT - LC3 -->
<graph_kv key="0xB5000000" value="0xB5000005"/>
</keys_and_values>
</device>
</devices>
<devicepps>
<!-- OUT Speaker DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_SPEAKER">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY">
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_RX">
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000003"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_LOOPBACK">
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000005"/>
</keys_and_values>
</devicepp>
<!-- OUT Handset DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_HANDSET">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY,PAL_STREAM_GENERIC">
<!-- DEVICERX - HANDSET -->
<graph_kv key="0xA2000000" value="0xA2000004"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_RX">
<!-- DEVICERX - HANDSET -->
<graph_kv key="0xA2000000" value="0xA2000004"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000003"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICERX - HANDSET -->
<graph_kv key="0xA2000000" value="0xA2000004"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000005"/>
</keys_and_values>
</devicepp>
<!-- OUT Headset and Headphone Digital DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_WIRED_HEADSET,PAL_DEVICE_OUT_WIRED_HEADPHONE">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY,PAL_STREAM_GENERIC,PAL_STREAM_SPATIAL_AUDIO">
<!-- DEVICERX - HEADPHONES -->
<graph_kv key="0xA2000000" value="0xA2000002"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_RX">
<!-- DEVICERX - HEADPHONES -->
<graph_kv key="0xA2000000" value="0xA2000002"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000003"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICERX - HEADPHONES -->
<graph_kv key="0xA2000000" value="0xA2000002"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000005"/>
</keys_and_values>
</devicepp>
<!-- OUT BT SCO DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_BLUETOOTH_SCO">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_RX">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000003"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000005"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_LOOPBACK">
<!-- DEVICERX - BT_RX -->
<graph_kv key="0xA2000000" value="0xA2000003"/>
<!-- BT_PROFILE - SCO -->
<graph_kv key="0xB4000000" value="0xB4000001"/>
</keys_and_values>
</devicepp>
<!-- OUT Device Proxy DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_PROXY">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY">
<!-- DEVICERX - PROXY_RX -->
<graph_kv key="0xA2000000" value="0xA2000007"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000001"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICERX - PROXY_RX -->
<graph_kv key="0xA2000000" value="0xA2000007"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
<graph_kv key="0xAC000000" value="0xAC000005"/>
</keys_and_values>
</devicepp>
<!-- IN Handset MIC DevicePPs -->
<devicepp id="PAL_DEVICE_IN_HANDSET_MIC">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dm-ec">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000008"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX">
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000007"/>
</keys_and_values>
</devicepp>
<!-- IN Speaker MIC DevicePPs -->
<devicepp id="PAL_DEVICE_IN_SPEAKER_MIC">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dm-ec">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000008"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000007"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_LOOPBACK">
<!-- DEVICETX - SPEAKER_MIC -->
<graph_kv key="0xA3000000" value="0xA3000001"/>
</keys_and_values>
</devicepp>
<!-- IN BT_SCO_Headset DevicePPs -->
<devicepp id="PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000008"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX">
<!-- DEVICETX - BT_TX -->
<graph_kv key="0xA3000000" value="0xA3000002"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000007"/>
</keys_and_values>
</devicepp>
<!--IN Wired headset_IN DevicePPs -->
<devicepp id="PAL_DEVICE_IN_WIRED_HEADSET">
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED">
<!-- DEVICETX - HEADPHONE_MIC -->
<graph_kv key="0xA3000000" value="0xA3000003"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000002"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dm-ec">
<!-- DEVICETX - HEADPHONE_MIC -->
<graph_kv key="0xA3000000" value="0xA3000003"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000008"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_VOIP_TX">
<!-- DEVICETX - HEADPHONE_MIC -->
<graph_kv key="0xA3000000" value="0xA3000003"/>
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000007"/>
</keys_and_values>
</devicepp>
<!-- IN Proxy Record DevicePPs -->
<devicepp id="PAL_DEVICE_IN_RECORD_PROXY">
<keys_and_values StreamType="PAL_STREAM_VOIP_TX">
<!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000007"/>
</keys_and_values>
<keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED">
<!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
<graph_kv key="0xAD000000" value="0xAD000002"/>
</keys_and_values>
</devicepp>
</devicepps>
</graph_key_value_pair_info>

View File

@@ -0,0 +1,414 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted (subject to the limitations in the -->
<!-- disclaimer below) provided that the following conditions are met: -->
<!-- -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- -->
<!-- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE -->
<!-- GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT -->
<!-- HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -->
<!-- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -->
<!-- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -->
<!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -->
<!-- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -->
<!-- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -->
<!-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<haptics_param_values>
<predefined_effect>
<!-- CLICK -->
<Hapticseffect effect="0">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>0</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>0</tracked_freq_warmup_time_ms>
<settling_time_ms>0</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>0</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>65</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>35</pulse_width_ms>
<pulse_sharpness>80</pulse_sharpness>
</Hapticseffect>
<!-- DOUBLE CLICK -->
<Hapticseffect effect="1">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>0</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>2</repetition_count>
<tracked_freq_warmup_time_ms>0</tracked_freq_warmup_time_ms>
<settling_time_ms>0</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>75</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>4</num_pwl>
<pwl_time>0,10,25,35</pwl_time>
<pwl_acc>0,70,70,0</pwl_acc>
</Hapticseffect>
<!-- TICK -->
<Hapticseffect effect="2">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>4</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<tracked_freq_warmup_time_ms>0</tracked_freq_warmup_time_ms>
<settling_time_ms>0</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_count>1</repetition_count>
<repetition_period_ms>0</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
</Hapticseffect>
<!-- THUD -->
<Hapticseffect effect="3">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>0</tracked_freq_warmup_time_ms>
<settling_time_ms>0</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>0</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>4</num_pwl>
<pwl_time>0,15,40,65</pwl_time>
<pwl_acc>0,70,70,0</pwl_acc>
</Hapticseffect>
<!-- POP -->
<Hapticseffect effect="4">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>0</tracked_freq_warmup_time_ms>
<settling_time_ms>0</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>0</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>4</num_pwl>
<pwl_time>0,10,20,30</pwl_time>
<pwl_acc>0,70,70,0</pwl_acc>
</Hapticseffect>
<!-- HEAVY CLICK -->
<Hapticseffect effect="5">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>0</tracked_freq_warmup_time_ms>
<settling_time_ms>0</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>0</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>4</num_pwl>
<pwl_time>0,10,25,35</pwl_time>
<pwl_acc>0,70,70,0 </pwl_acc>
</Hapticseffect>
</predefined_effect>
<compose_effect>
<!-- NOOP -->
<Hapticseffect effect="0">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>0</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>0</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>50</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>65</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>2</pulse_width_ms>
<pulse_sharpness>100</pulse_sharpness>
</Hapticseffect>
<!-- CLICK -->
<Hapticseffect effect="1">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>5</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>50</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>4</num_pwl>
<pwl_time>0,7,14,21</pwl_time>
<pwl_acc>0,33,33,0</pwl_acc>
</Hapticseffect>
<!-- THUD -->
<Hapticseffect effect="2">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>2</wave_design_mode>
<auto_overdrive_brake_en>1</auto_overdrive_brake_en>
<f0_tracking_en>1</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>5</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_count>1</repetition_count>
<repetition_period_ms>50</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>55</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>10</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
</Hapticseffect>
<!-- SPIN -->
<Hapticseffect effect="3">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>0</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>5</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>50</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>60</mid_pulse_intensity>
<high_pulse_intensity>100</high_pulse_intensity>
<pulse_width_ms>3</pulse_width_ms>
<pulse_sharpness>100</pulse_sharpness>
</Hapticseffect>
<!-- QUICK RISE -->
<Hapticseffect effect="4">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>0</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>50</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>60</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>4</num_pwl>
<pwl_time>0,7,14,21</pwl_time>
<pwl_acc>0,100,100,0</pwl_acc>
</Hapticseffect>
<!-- SLOW RISE -->
<Hapticseffect effect="5">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>2</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>1</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>5</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>50</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>70</mid_pulse_intensity>
<high_pulse_intensity>100</high_pulse_intensity>
<pulse_width_ms>10</pulse_width_ms>
</Hapticseffect>
<!-- QUICK FALL -->
<Hapticseffect effect="6">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>0</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>0</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>50</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>75</mid_pulse_intensity>
<high_pulse_intensity>100</high_pulse_intensity>
<pulse_width_ms>3</pulse_width_ms>
<pulse_sharpness>100</pulse_sharpness>
</Hapticseffect>
<!-- LIGHT TICK -->
<Hapticseffect effect="7">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>1</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>0</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>50</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>100</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
<num_pwl>3</num_pwl>
<pwl_time>0,10,20</pwl_time>
<pwl_acc>0,70,0</pwl_acc>
</Hapticseffect>
<!-- LOW TICK -->
<Hapticseffect effect="8">
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>2</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>0</f0_tracking_en>
<f0_tracking_param_reset_flag>1</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<repetition_count>1</repetition_count>
<tracked_freq_warmup_time_ms>50</tracked_freq_warmup_time_ms>
<settling_time_ms>5</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_period_ms>50</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>60</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>10</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
</Hapticseffect>
</compose_effect>
<oneshot_effect>
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>2</wave_design_mode>
<auto_overdrive_brake_en>0</auto_overdrive_brake_en>
<f0_tracking_en>1</f0_tracking_en>
<f0_tracking_param_reset_flag>0</f0_tracking_param_reset_flag>
<override_flag>7</override_flag>
<wavegen_fstart_hz_q20>0</wavegen_fstart_hz_q20>
<tracked_freq_warmup_time_ms>0</tracked_freq_warmup_time_ms>
<settling_time_ms>30</settling_time_ms>
<delay_time_ms>0</delay_time_ms>
<repetition_count>1</repetition_count>
<repetition_period_ms>120</repetition_period_ms>
<pilot_tone_en>0</pilot_tone_en>
<low_pulse_intensity>30</low_pulse_intensity>
<mid_pulse_intensity>85</mid_pulse_intensity>
<high_pulse_intensity>90</high_pulse_intensity>
<pulse_width_ms>0</pulse_width_ms>
<pulse_sharpness>0</pulse_sharpness>
</oneshot_effect>
<ringtone_effect>
<num_channels>1</num_channels>
<channel_mask>1</channel_mask>
<wave_design_mode>3</wave_design_mode>
</ringtone_effect>
</haptics_param_values>

View File

@@ -0,0 +1,423 @@
<!-- Copyright (c) 2019, 2021, The Linux Foundation. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Changes from Qualcomm Innovation Center are provided under the following license:
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause-Clear
* -->
<defs>
<card>
<id>100</id>
<name>sunvirtualsndcard</name>
<pcm-device>
<id>100</id>
<name>PCM100</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>101</id>
<name>PCM101</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>102</id>
<name>PCM102</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>103</id>
<name>PCM103</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>104</id>
<name>PCM104</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<compress-device>
<id>105</id>
<name>COMPRESS105</name>
<compress_plugin>
<so-name>libagm_compress_plugin.so</so-name>
</compress_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</compress-device>
<pcm-device>
<id>106</id>
<name>VOICEMMODE1p</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>107</id>
<name>VOICEMMODE2p</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>108</id>
<name>VOICEMMODE1c</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>109</id>
<name>VOICEMMODE2c</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>110</id>
<name>PCM110</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>111</id>
<name>PCM111</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>112</id>
<name>PCM112</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>113</id>
<name>PCM113</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>114</id>
<name>PCM114</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>115</id>
<name>PCM115</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>116</id>
<name>PCM116</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>3</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>117</id>
<name>PCM117</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
</props>
</pcm-device>
<pcm-device>
<id>118</id>
<name>PCM118</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>119</id>
<name>PCM119</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>120</id>
<name>PCM120</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>121</id>
<name>PCM121</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>122</id>
<name>ExtEC122</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>123</id>
<name>PCM123</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>1</session_mode>
</props>
</pcm-device>
<compress-device>
<id>124</id>
<name>COMPRESS124</name>
<compress_plugin>
<so-name>libagm_compress_plugin.so</so-name>
</compress_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<!-- AGM_SESSION_COMPRESS -->
<session_mode>4</session_mode>
</props>
</compress-device>
<pcm-device>
<id>125</id>
<name>PCM125</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>3</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>126</id>
<name>PCM126</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>0</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>127</id>
<name>PCM127</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>0</playback>
<capture>1</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<pcm-device>
<id>128</id>
<name>PCM128</name>
<pcm_plugin>
<so-name>libagm_pcm_plugin.so</so-name>
</pcm_plugin>
<props>
<playback>1</playback>
<capture>0</capture>
<session_mode>2</session_mode>
</props>
</pcm-device>
<mixer>
<id>1</id>
<name>agm_mixer</name>
<mixer_plugin>
<so-name>libagm_mixer_plugin.so</so-name>
</mixer_plugin>
</mixer>
</card>
</defs>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<hw_ep_info>
<codec_dma>
<codec_hw_intf name="cdc-pri" lpaif_type="LPAIF_WSA" intf_idx="CODEC_RX0"/>
<codec_hw_intf name="cdc-sec" lpaif_type="LPAIF_VA" intf_idx="CODEC_TX0"/>
</codec_dma>
<i2s>
<i2s_hw_intf name="i2s-pri" line_mask="2" ws_src="CONFIG_I2S_WS_SRC_INTERNAL" lpaif_type="LPAIF_AXI"/>
<i2s_hw_intf name="i2s-sec" line_mask="1" ws_src="CONFIG_I2S_WS_SRC_INTERNAL" lpaif_type="LPAIF_AXI"/>
</i2s>
<tdm>
<tdm_hw_intf name="tdm-pri" lpaif_type="LPAIF_AXI" sync_src="TDM_SYNC_SRC_INTERNAL" ctrl_data="TDM_CTRL_DATA_OE_DISABLE" sync_mode="TDM_LONG_SYNC_MODE" ctrl_invert_sync_pulse="TDM_SYNC_INVERT" ctrl_sync_data_delay="TDM_DATA_DELAY_1_BCLK_CYCLE"/>
</tdm>
<auxpcm>
<auxpcm_hw_intf name="auxpcm-pri-rx" lpaif_type="LPAIF_AXI" sync_src="PCM_SYNC_SRC_INTERNAL" ctrl_data="PCM_CTRL_DATA_OE_DISABLE" frame_setting="PCM_BITS_PER_FRAME_128" aux_mode="PCM_MODE" />
<auxpcm_hw_intf name="auxpcm-pri-tx" lpaif_type="LPAIF_AXI" sync_src="PCM_SYNC_SRC_INTERNAL" ctrl_data="PCM_CTRL_DATA_OE_DISABLE" frame_setting="PCM_BITS_PER_FRAME_128" aux_mode="PCM_MODE" />
</auxpcm>
</hw_ep_info>
<!-- line_mask in i2s indicates the lines that we are using
eg: 3 indicates 'line 0' and 'line 1' and 2 indicates 'line 1' -->

View File

@@ -0,0 +1,171 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2019, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<KEY_DEF versionMajor="0x0" versionMinor="0x0" versionBranch="0x0" versionSubBranch="0x0">
<PLATFORMS>
<PLATFORM name="LA" id="0x1"/>
<PLATFORM name="LE" id="0x2"/>
</PLATFORMS>
<KEY_LIST>
<KEY name="Stream" id="0xa1000000" description="Type of Stream">
<VALUE val="0xa1000001" name="PCM_LL_Playback"/>
<VALUE val="0xa1000002" name="PCM_Record"/>
<VALUE val="0xa1000003" name="PCM_Loopback"/>
<VALUE val="0xa1000004" name="Voice_UI"/>
<VALUE val="0xa1000005" name="Voip_Rx"/>
<VALUE val="0xa1000006" name="Voip_Tx"/>
<VALUE val="0xa1000007" name="Voice_UI_EC_Ref_Path"/>
<VALUE val="0xa1000008" name="Voip_Tx_EC_Ref_Path"/>
<VALUE val="0xa1000009" name="PCM_Record_EC_Ref_Path"/>
</KEY>
<KEY name="Instance" id="0xab000000" description="Stream Instance Id">
<VALUE val="0x1" name="Instance_1"/>
<VALUE val="0x2" name="Instance_2"/>
<VALUE val="0x3" name="Instance_3"/>
</KEY>
<KEY name="DeviceRX" id="0xa2000000" description="Rx Device">
<VALUE val="0xa2000001" name="Speaker"/>
</KEY>
<KEY name="DeviceTX" id="0xa3000000" description="Tx Device">
<VALUE val="0xa3000001" name="HandsetMic"/>
</KEY>
<KEY name="DevicePP_Rx" id="0xac000000" description="Rx Device Post/Pre Processing Chain">
<VALUE val="0xac000001" name="Audio_LL_Default_PP"/>
</KEY>
<KEY name="DevicePP_Tx" id="0xad000000" description="Tx Device Post/Pre Processing Chain">
<VALUE val="0xad000001" name="Voice_Fluence_FFECNS"/>
<VALUE val="0xad000002" name="Audio_Fluence_SMECNS"/>
<VALUE val="0xad000003" name="Audio_Fluence_Endfire"/>
<VALUE val="0xad000004" name="Audio_Fluence_Pro"/>
</KEY>
<KEY name="Volume" id="0xa4000000" description="Volume">
<VALUE val="0x0" name="Level_0"/>
<VALUE val="0x1" name="Level_1"/>
<VALUE val="0x2" name="Level_2"/>
<VALUE val="0x3" name="Level_3"/>
<VALUE val="0x4" name="Level_4"/>
<VALUE val="0x5" name="Level_5"/>
<VALUE val="0x6" name="Level_6"/>
<VALUE val="0x7" name="Level_7"/>
<VALUE val="0x8" name="Level_8"/>
<VALUE val="0x9" name="Level_9"/>
<VALUE val="0xa" name="Level_10"/>
<VALUE val="0xb" name="Level_11"/>
<VALUE val="0xc" name="Level_12"/>
<VALUE val="0xd" name="Level_13"/>
<VALUE val="0xe" name="Level_14"/>
<VALUE val="0xf" name="Level_15"/>
</KEY>
<KEY name="SamplingRate" id="0xa5000000" sampleRate="true" description="Sampling Rate">
<VALUE val="0x1f40" name="SR_8K" sampleRate="0x1f40"/>
<VALUE val="0x3e80" name="SR_16K" sampleRate="0x3e80"/>
<VALUE val="0x7d00" name="SR_32K" sampleRate="0x7d00"/>
<VALUE val="0xac44" name="SR_44.1K" sampleRate="0xac44"/>
<VALUE val="0xbb80" name="SR_48K" sampleRate="0xbb80"/>
<VALUE val="0x17700" name="SR_96K" sampleRate="0x17700"/>
<VALUE val="0x2ee00" name="SR_192K" sampleRate="0x2ee00"/>
<VALUE val="0x5dc00" name="SR_384K" sampleRate="0x5dc00"/>
</KEY>
<KEY name="BitWidth" id="0xa6000000" description="Bit Width">
<VALUE val="0x10" name="BW_16"/>
<VALUE val="0x18" name="BW_24"/>
<VALUE val="0x20" name="BW_32"/>
</KEY>
<KEY name="Pause" id="0xa7000000" description="Pause">
<VALUE val="0x0" name="Off"/>
<VALUE val="0x1" name="On"/>
</KEY>
<KEY name="Mute" id="0xa8000000" description="Mute">
<VALUE val="0x0" name="Off"/>
<VALUE val="0x1" name="On"/>
</KEY>
<KEY name="Channels" id="0xa9000000" description="Channels">
<VALUE val="0x1" name="CHS_1"/>
<VALUE val="0x2" name="CHS_2"/>
<VALUE val="0x3" name="CHS_3"/>
<VALUE val="0x4" name="CHS_4"/>
<VALUE val="0x5" name="CHS_5"/>
<VALUE val="0x6" name="CHS_6"/>
<VALUE val="0x7" name="CHS_7"/>
<VALUE val="0x8" name="CHS_8"/>
</KEY>
<KEY name="Fluence" id="0xaa000000" description="Fluence">
<VALUE val="0x0" name="Off"/>
<VALUE val="0x1" name="On"/>
</KEY>
</KEY_LIST>
<GRAPH_KEY description="Graph Keys">
<KEY id="0xa1000000" name="Stream"/>
<KEY id="0xa2000000" name="DeviceRX"/>
<KEY id="0xa3000000" name="DeviceTX"/>
<KEY id="0xac000000" name="DevicePP_Rx"/>
<KEY id="0xad000000" name="DevicePP_Tx"/>
<KEY id="0xab000000" name="Instance"/>
</GRAPH_KEY>
<CAL_KEY description="Calibration Keys">
<KEY id="0xa4000000" name="Volume"/>
</CAL_KEY>
<MODULE_TAGS>
<TAG id="0xc0000004" name="device_hw_ep_rx" description="Hw EP Rx">
<KEY id="0xa2000000" name="DeviceRX"/>
<KEY id="0xa5000000" name="SamplingRate"/>
<KEY id="0xa6000000" name="BitWidth"/>
<KEY id="0xa9000000" name="Channels"/>
</TAG>
<TAG id="0xc0000005" name="device_hw_ep_tx" description="Hw EP Tx">
<KEY id="0xa3000000" name="DeviceTX"/>
<KEY id="0xa5000000" name="SamplingRate"/>
<KEY id="0xa6000000" name="BitWidth"/>
<KEY id="0xa9000000" name="Channels"/>
</TAG>
<TAG id="0xc0000006" name="stream_pause" description="Stream Pause">
<KEY id="0xa7000000" name="Pause"/>
</TAG>
<TAG id="0xc0000007" name="stream_mute" description="Stream Mute">
<KEY id="0xa8000000" name="Mute"/>
</TAG>
<TAG id="0xc000000a" name="device_fluence" description="Fluence On/Off">
<KEY id="0xaa000000" name="Fluence"/>
</TAG>
<TAG id="0xc000000d" name="stream_volume" description="Stream Volume">
<KEY id="0xa4000000" name="Volume"/>
</TAG>
<TAG id="0xc0000011" name="device_pp_mfc" description="Device PP MFC">
<KEY id="0xa5000000" name="SamplingRate"/>
</TAG>
<TAG id="0xc0000001" name="sh_ep"/>
<TAG id="0xc0000002" name="stream_input_media_format"/>
<TAG id="0xc0000003" name="stream_output_media_format"/>
<TAG id="0xc0000008" name="device_sva"/>
<TAG id="0xc0000009" name="device_adam"/>
<TAG id="0xc000000b" name="stream_mfc"/>
<TAG id="0xc000000c" name="device_mfc"/>
<TAG id="0xc000000e" name="stream_pcm_decoder"/>
<TAG id="0xc000000f" name="stream_pcm_encoder"/>
<TAG id="0xc0000010" name="stream_pcm_converter"/>
</MODULE_TAGS>
</KEY_DEF>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<resource_manager_info>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<!-- Uncomment HIFI Filter Headphones related sections when set this
hifi_filter key to true -->
<param key="hifi_filter" value="false"/>
<param key="max_sessions" value="128"/>
<param key="max_nonTunnel_sessions" value="4"/>
<param key="logging_level" value ="15" />
<param key="context_manager_enable" value ="false" />
<param key="upd_dedicated_be" value ="true" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<loopbackDelay>1000</loopbackDelay>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_VI_FEEDBACK</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<bit_width>32</bit_width>
<snd_device_name>vi-feedback</snd_device_name>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
<custom-config key="dual-mic">
<channels>2</channels>
<snd_device_name>handset-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="quad-mic">
<channels>4</channels>
<snd_device_name>quad-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_RAW</name>
<custom-config key="unprocessed-hdr-mic-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
</custom-config>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>OFF</sidetone_mode>
<custom-config key="dual-mic">
<channels>2</channels>
<snd_device_name>handset-dmic-endfire</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<out-device>
<id>PAL_DEVICE_NONE</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>none</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>1</speaker_protection_enabled>
<!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
<ext_ec_ref_enabled>0</ext_ec_ref_enabled>
<cps_enabled>0</cps_enabled>
<!--specify the supported bit format on speaker end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S16_LE</supported_bit_format>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<channels>1</channels>
<snd_device_name>speaker-mono-2</snd_device_name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRASOUND</name>
<samplerate>96000</samplerate>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
<ext_ec_ref_enabled>0</ext_ec_ref_enabled>
<samplerate>48000</samplerate>
<snd_device_name>handset</snd_device_name>
<usecase>
<name>PAL_STREAM_ULTRASOUND</name>
<samplerate>96000</samplerate>
</usecase>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_ACD</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_RAW</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
</resource_manager_info>

View File

@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Copyright (c) 2021, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<graph_key_value_pair_info>
<streams>
<!-- Low-latency stream -->
<stream type="PAL_STREAM_LOW_LATENCY">
<keys_and_values Direction="TX" Instance="1">
<!-- STREAMTX - RAW_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000009"/>
</keys_and_values>
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - PCM_LL_PLAYBACK -->
<graph_kv key="0xA1000000" value="0xA100000E"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
</stream>
<!-- Deep Buffer stream -->
<stream type="PAL_STREAM_DEEP_BUFFER">
<keys_and_values Direction="RX" Instance="1">
<!-- STREAMRX - PCM_DEEP_BUFFER -->
<graph_kv key="0xA1000000" value="0xA1000001"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="RX" Instance="2">
<!-- STREAMRX - PCM_DEEP_BUFFER -->
<graph_kv key="0xA1000000" value="0xA1000001"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
<keys_and_values Direction="TX" Instance="1">
<!-- STREAMTX - PCM_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000001"/>
<!-- INSTANCE - INSTANCE_1 -->
<graph_kv key="0xAB000000" value="0x1"/>
</keys_and_values>
<keys_and_values Direction="TX" Instance="2">
<!-- STREAMTX - PCM_RECORD -->
<graph_kv key="0xB1000000" value="0xB1000001"/>
<!-- INSTANCE - INSTANCE_2 -->
<graph_kv key="0xAB000000" value="0x2"/>
</keys_and_values>
</stream>
</streams>
<devices>
<!-- In VI feedback Device -->
<device id="PAL_DEVICE_IN_VI_FEEDBACK">
<keys_and_values>
<!-- DEVICETX - VI_TX -->
<graph_kv key="0xA3000000" value="0xA3000009"/>
</keys_and_values>
</device>
<!-- Speaker Device -->
<device id="PAL_DEVICE_OUT_SPEAKER">
<keys_and_values>
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
</keys_and_values>
</device>
<!-- In Handset MIC Device -->
<device id="PAL_DEVICE_IN_HANDSET_MIC">
<keys_and_values>
<!-- DEVICETX - HANDSETMIC -->
<graph_kv key="0xA3000000" value="0xA3000004"/>
</keys_and_values>
</device>
</devices>
<devicepps>
<!-- OUT Speaker DevicePPs -->
<devicepp id="PAL_DEVICE_OUT_SPEAKER">
<keys_and_values StreamType="PAL_STREAM_LOW_LATENCY">
<!-- DEVICERX - SPEAKER -->
<graph_kv key="0xA2000000" value="0xA2000001"/>
<!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
<graph_kv key="0xAC000000" value="0xAC000002"/>
</keys_and_values>
</devicepp>
</devicepps>
</graph_key_value_pair_info>

View File

@@ -0,0 +1,955 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<!-- -->
<!-- Changes from Qualcomm Innovation Center are provided under the following license: -->
<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted (subject to the limitations in the -->
<!-- disclaimer below) provided that the following conditions are met: -->
<!-- -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- -->
<!-- * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE -->
<!-- GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT -->
<!-- HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -->
<!-- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -->
<!-- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -->
<!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -->
<!-- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -->
<!-- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -->
<!-- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<resource_manager_info>
<version>2.0</version>
<config_params>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<!-- Uncomment HIFI Filter Headphones related sections when set this
hifi_filter key to true -->
<param key="hifi_filter" value="false"/>
<param key="max_sessions" value="128"/>
<param key="max_nonTunnel_sessions" value="4"/>
<param key="logging_level" value ="3" />
<param key="context_manager_enable" value ="false" />
<param key="lpi_logging_enable" value ="false" />
<param key="upd_dedicated_be" value ="true" />
</config_params>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<loopbackDelay>1000</loopbackDelay>
<maxVolIndex>5</maxVolIndex>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
<custom-config key="dual-mic">
<channels>2</channels>
<snd_device_name>handset-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="quad-mic">
<channels>4</channels>
<snd_device_name>quad-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_RAW</name>
<custom-config key="unprocessed-hdr-mic-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
</custom-config>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>1</channels>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>OFF</sidetone_mode>
<custom-config key="dual-mic">
<channels>2</channels>
<snd_device_name>handset-dmic-endfire</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_WIRED_HEADSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
<id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-sco-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>va-mic</snd_device_name>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HEADSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>headset-va-mic</snd_device_name>
<ec_rx_device>
<id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
<id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_USB_HEADSET</id>
<back_end_name>USB_AUDIO-TX</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>usb-headset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>HW</sidetone_mode>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_FM_TUNER</id>
<back_end_name>MI2S-LPAIF-TX-TERTIARY</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>play-fm</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_PROXY</id>
<back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>afe-proxy</snd_device_name>
<usecase>
<name>PAL_STREAM_PROXY</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_VI_FEEDBACK</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>vi-feedback</snd_device_name>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-TX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp-mic</snd_device_name>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_TELEPHONY_RX</id>
<back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
<usecase>
<name>PAL_STREAM_PROXY</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_ULTRASOUND_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-4</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>ultrasound-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_ULTRASOUND</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_EXT_EC_REF</id>
<back_end_name>MI2S-LPAIF-TX-TERTIARY</back_end_name>
<snd_device_name>ext_ec_ref_tx</snd_device_name>
<max_channels>2</max_channels>
<channels>2</channels>
<bit_width>16</bit_width>
<samplerate>48000</samplerate>
</in-device>
<out-device>
<id>PAL_DEVICE_NONE</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>none</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>0</speaker_protection_enabled>
<!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
<ext_ec_ref_enabled>0</ext_ec_ref_enabled>
<cps_enabled>0</cps_enabled>
<vbat_enabled>0</vbat_enabled>
<!--specify the supported bit format on speaker end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S16_LE</supported_bit_format>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<channels>1</channels>
<snd_device_name>speaker-mono-2</snd_device_name>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRASOUND</name>
<samplerate>96000</samplerate>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
<ext_ec_ref_enabled>0</ext_ec_ref_enabled>
<samplerate>48000</samplerate>
<snd_device_name>handset-wcd</snd_device_name>
<usecase>
<name>PAL_STREAM_ULTRASOUND</name>
<samplerate>96000</samplerate>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>headphones</snd_device_name>
<!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
<usecase>
<name>PAL_STREAM_COMPRESSED</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_PCM_OFFLOAD</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
-->
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>headphones</snd_device_name>
<!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
<usecase>
<name>PAL_STREAM_COMPRESSED</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_PCM_OFFLOAD</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
-->
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>SLIM-DEV1-RX-7</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-sco</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_AUX_DIGITAL</id>
<back_end_name>DISPLAY_PORT-RX</back_end_name>
<max_channels>32</max_channels>
<channels>2</channels>
<snd_device_name>display-port</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HDMI</id>
<back_end_name>DISPLAY_PORT-RX</back_end_name>
<max_channels>32</max_channels>
<channels>2</channels>
<snd_device_name>display-port</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_USB_DEVICE</id>
<back_end_name>USB_AUDIO-RX</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>usb-headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_USB_HEADSET</id>
<back_end_name>USB_AUDIO-RX</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>usb-headphones</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_AUX_DIGITAL_1</id>
<back_end_name>DISPLAY_PORT-RX</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>display-port</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_PROXY</id>
<back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HEARING_AID</id>
<back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HAPTICS_DEVICE</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-6</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>haptics-dev</snd_device_name>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_ULTRASOUND</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-1</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>ultrasound-handset-wcd</snd_device_name>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_ACD</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_RAW</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<sound_trigger_platform_info>
<common_config>
<!-- Sound trigger streams common params -->
<param lpi_enable="true" />
<param support_nlpi_switch="true" />
<param support_device_switch="true" />
<param enable_debug_dumps="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="true" />
<param concurrent_voip_call="true" />
<param low_latency_bargein_enable="false" />
</common_config>
<capture_profile_list>
<!-- Common Profiles -->
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
<param ec_ref="true" />
</capture_profile>
<!-- ACD Specific Profiles -->
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
<param ec_ref="false" />
</capture_profile>
<!-- Sensor PCM Data Specific Profiles -->
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFEC">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
<param ec_ref="true" />
</capture_profile>
<!-- SVA/Hotword Specific Profiles -->
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<param snd_name="va-mic-tmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<param snd_name="va-mic-qmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<param snd_name="va-mic-tmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<param snd_name="va-mic-qmic" />
<param ec_ref="true" />
</capture_profile>
</capture_profile_list>
<acd_platform_info>
<config>
<param acd_enable="true" />
</config>
<!-- ACD -->
<stream_config>
<name>QC_ACD</name>
<param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db" />
<param sample_rate="16000" />
<param bit_width="16" />
<!-- Module output channels -->
<param out_channels="1" />
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI" />
<high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
</operating_modes>
<sound_model_info>
<sound_model>
<name>ACD_SOUND_MODEL_ID_EVENT</name>
<bin>event.eai</bin>
<uuid>0x0B001007</uuid>
<contexts>
<context id="0x0800132D" /> <!-- EVENT_ALARM -->
<context id="0x0800132E" /> <!-- EVENT_BABYCRYING -->
<context id="0x0800132F" /> <!-- EVENT_DOGBARKING -->
<context id="0x08001330" /> <!-- EVENT_DOORBELL -->
<context id="0x08001331" /> <!-- EVENT_DOORCLOSE -->
<context id="0x08001332" /> <!-- EVENT_DOOROPEN -->
<context id="0x08001333" /> <!-- EVENT_GLASSBREAKING -->
<context id="0x08001334" /> <!-- EVENT_SIREN -->
</contexts>
</sound_model>
<sound_model>
<name>ACD_SOUND_MODEL_ID_SPEECH</name>
<bin>speech.eai</bin>
<uuid>0x0B001008</uuid>
<contexts>
<context id="0x08001335" /> <!-- AMBIENCE_SPEECH -->
</contexts>
</sound_model>
<sound_model>
<name>ACD_SOUND_MODEL_ID_MUSIC</name>
<bin>music.eai</bin>
<uuid>0x0B001009</uuid>
<contexts>
<context id="0x08001336" /> <!-- AMBIENCE_MUSIC -->
</contexts>
</sound_model>
<sound_model>
<name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
<bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
<uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
<contexts>
<context id="0x08001337" /> <!-- AMBIENCE_NOISY_SPL -->
<context id="0x08001338" /> <!-- AMBIENCE_SILENT_SPL -->
<context id="0x08001339" /> <!-- AMBIENCE_NOISY_SFLUX -->
<context id="0x0800133A" /> <!-- AMBIENCE_SILENT_SFLUX -->
</contexts>
</sound_model>
</sound_model_info>
</stream_config>
<!-- Sensor PCM Data -->
<stream_config>
<name>QC_SENSOR_PCM_DATA</name>
<param vendor_uuid="c88a2c89-7a55-498c-836f-5d7ec8582990" />
<param sample_rate="16000" />
<param bit_width="16" />
<!-- Module output channels -->
<param out_channels="1" />
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
<low_power_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS" />
<high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFEC" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC" />
<high_performance_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
</operating_modes>
</stream_config>
</acd_platform_info>
<!-- Voice UI -->
<vui_platform_info>
<config>
<!-- Voice UI Params used by apk to indicate the Voice UI version current platform supports -->
<param version="0x0103" />
<param enable_failure_detection="false" />
<param mmap_enable="true" />
<param mmap_buffer_duration="5000" />
<!-- 5ms duration of data -->
<param mmap_frame_length="5" />
<!-- Move this flag to common_config if ACD/Sensor PCM Data support car mode in the future -->
<param transit_to_non_lpi_on_charging="false" />
</config>
<!-- Multiple stream_config tags can be listed, each with unique -->
<!-- vendor_uuid. The below tag represents QC Voice UI sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid. -->
<stream_config>
<name>QC_VOICE_UI</name>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
<param merge_first_stage_sound_models="false" />
<!-- Profile specific data which the algorithm can support -->
<param capture_keyword="2000" /> <!-- Default history buffer length -->
<param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
<param pre_roll_duration="500" /> <!-- Default preroll duration -->
<!-- durations in us -->
<param kw_start_tolerance="360000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="480000" />
<param sample_rate="16000" />
<param bit_width="16" />
<!-- Module output channels -->
<param out_channels="1" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS" />
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
</operating_modes>
<sound_model_info>
<first_stage_module_params>
<param module_type="GMM" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</first_stage_module_params>
<first_stage_module_params>
<param module_type="PDK" />
<param load_sound_model_ids="0xC0000008, 0x0800124E" />
<param unload_sound_model_ids="0xC0000008, 0x08001250" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x0800124F" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</first_stage_module_params>
<arm_ss_module_params>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnnvendor.so" />
<param sample_rate="16000" />
<param bit_width="16" />
<param channel_count="1" />
</arm_ss_module_params>
<arm_ss_module_params>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2uvvendor.so" />
<param sample_rate="16000" />
<param bit_width="16" />
<param channel_count="1" />
</arm_ss_module_params>
<arm_ss_module_params>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnnvendor.so" />
<param sample_rate="16000" />
<param bit_width="16" />
<param channel_count="1" />
</arm_ss_module_params>
</sound_model_info>
</stream_config>
<!-- Hotword Voice UI-->
<stream_config>
<name>HOTWORD_VOICE_UI</name>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
<param get_module_version="false" />
<param merge_first_stage_sound_models="false" />
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param sample_rate="16000" />
<param bit_width="16" />
<!-- Module output channels -->
<param out_channels="1" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
<high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
<high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
</operating_modes>
<sound_model_info>
<first_stage_module_params>
<param module_type="HOTWORD" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param unload_sound_model_ids="0xC0000008, 0x00012C15" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param version_ids="0xC0000008, 0x18000101" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</first_stage_module_params>
</sound_model_info>
</stream_config>
</vui_platform_info>
</sound_trigger_platform_info>
</resource_manager_info>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
# -*- Autoconf -*-
# configure.ac -- Autoconf script for pal
#
# Process this file with autoconf to produce a configure script
# Requires autoconf tool later than 2.61
AC_PREREQ(2.69)
# Initialize the pal package version 1.0.0
AC_INIT([pal],1.0.1)
# Does not strictly follow GNU Coding standards
AM_INIT_AUTOMAKE([foreign subdir-objects])
# Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_CXX
AC_PROG_LIBTOOL
AC_PROG_AWK
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
PKG_PROG_PKG_CONFIG
#basemachine
AC_MSG_CHECKING([which base machine to use])
AC_ARG_WITH([basemachine],
[AS_HELP_STRING([--with-basemachine],
[Specify the base machine])],
[machine_selected="$withval"],
[machine_selected=none])
AC_MSG_RESULT([$machine_selected])
AC_SUBST([MACHINE_ENABLED],[$machine_selected])
AC_ARG_WITH([openwrt],
AS_HELP_STRING([use openwrt (default is no)]),
[with_openwrt=$withval],
[with_openwrt=no])
AM_CONDITIONAL([BUILDSYSTEM_OPENWRT], [test "x${with_openwrt}" = "xyes"])
AC_ARG_WITH([glib],
AS_HELP_STRING([--with-glib],
[enable glib, Build against glib. Use this when building for HLOS systems which use glib]))
if (test "x${with_glib}" = "xyes"); then
PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.16, dummy=yes,
AC_MSG_ERROR(GThread >= 2.16 is required))
PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.16, dummy=yes,
AC_MSG_ERROR(GLib >= 2.16 is required))
GLIB_CFLAGS="$GLIB_CFLAGS $GTHREAD_CFLAGS"
GLIB_LIBS="$GLIB_LIBS $GTHREAD_LIBS"
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
fi
AM_CONDITIONAL(USE_GLIB, test "x${with_glib}" = "xyes")
AM_CONDITIONAL([IS_SDXLEMUR], [test x$IS_SDXLEMUR_TARGET = xtrue])
AM_CONDITIONAL([IS_SA525M], [test x$IS_SA525M_TARGET = xtrue])
# Checks for libraries
PKG_CHECK_MODULES([AGM], [agm])
AC_SUBST([AGM_CFLAGS])
PKG_CHECK_MODULES([SPF], [spf])
AC_SUBST([SPF_CFLAGS])
PKG_CHECK_MODULES([MMHEADERS], [mm-audio-headers])
AC_SUBST([MMHEADERS_CFLAGS])
AC_ARG_WITH([compress],
AS_HELP_STRING([compile compress (default is no)]),
[with_compress=$withval],
[with_compress=no])
AM_CONDITIONAL([COMPILE_COMPRESS], [test "x${with_compress}" = "xyes"])
AC_CONFIG_FILES([ Makefile pal.pc ])
AC_OUTPUT

View File

@@ -0,0 +1,271 @@
/*
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Changes from Qualcomm Innovation Center are provided under the following license:
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause-Clear
*/
#ifndef CONTEXTMANAGER_H
#define CONTEXTMANAGER_H
#include <vector>
#include <thread>
#include <queue>
#include <condition_variable>
#include <PalApi.h>
#include <PalCommon.h>
#include "kvh2xml.h"
#include "ACDPlatformInfo.h"
#include "SoundTriggerPlatformInfo.h"
enum PCM_DATA_EFFECT {
PCM_DATA_EFFECT_RAW = 1,
PCM_DATA_EFFECT_NS = 2,
};
class ContextManager; /* forward declaration for RequestCommand */
class ACDPlatformInfo;
using ACDUUID = SoundTriggerUUID;
class Usecase
{
protected:
uint32_t usecase_id;
uint32_t no_of_devices;
pal_device *pal_devices;
pal_stream_attributes *stream_attributes;
pal_stream_handle_t *pal_stream;
public:
Usecase(uint32_t usecase_id);
virtual ~Usecase();
uint32_t GetUseCaseID();
int32_t Open();
int32_t Start();
int32_t StopAndClose();
int32_t GetModuleIIDs(std::vector<int32_t> tags,
std::map<int32_t, std::vector<uint32_t>> &tag_miid_map);
//virtual fucntions
virtual int32_t SetUseCaseData(uint32_t size, void *data);
virtual int32_t Configure();
// caller should allocate sufficient memory the first time to avoid
// calling this api twice. Size, will be updated to actual size;
virtual int32_t GetAckDataOnSuccessfullStart(uint32_t *size, void *data) = 0;
};
class UsecaseACD :public Usecase
{
private:
struct pal_param_context_list *requested_context_list;
std::vector<int32_t> tags;
public:
UsecaseACD(uint32_t usecase_id);
~UsecaseACD();
int32_t SetUseCaseData(uint32_t size, void *data);
int32_t Configure();
// caller can allocate sufficient memory the first time to avoid
// calling this api twice. Size, will be updated to actual size;
int32_t GetAckDataOnSuccessfullStart(uint32_t *size, void *data);
//static functions
// caller should allocate sufficient memory the first time to avoid
// calling this api twice. Size, will be updated to actual size;
static int32_t GetSupportedContextIDs(std::vector<uint32_t> &context_ids);
static std::shared_ptr<ACDPlatformInfo> GetAcdPlatformInfo();
};
class UsecaseUPD : public Usecase
{
private:
std::vector<int32_t> tags;
public:
UsecaseUPD(uint32_t usecase_id);
~UsecaseUPD();
// caller can allocate sufficient memory the first time to avoid
// calling this api twice. Size, will be updated to actual size;
int32_t GetAckDataOnSuccessfullStart(uint32_t *size, void *data);
};
class UsecasePCMData : public Usecase
{
private:
std::vector<int32_t> tags;
uint32_t pcm_data_type;
uint32_t pcm_data_buffering;
public:
UsecasePCMData(uint32_t usecase_id);
~UsecasePCMData();
int32_t SetUseCaseData(uint32_t size, void *data);
int32_t Configure();
// caller can allocate sufficient memory the first time to avoid
// calling this api twice. Size, will be updated to actual size;
int32_t GetAckDataOnSuccessfullStart(uint32_t *size, void *data);
};
class UsecasePCMRenderer : public Usecase
{
private:
std::vector<int32_t> tags;
public:
UsecasePCMRenderer(uint32_t usecase_id);
~UsecasePCMRenderer();
int32_t SetUseCaseData(uint32_t size, void *data);
// caller can allocate sufficient memory the first time to avoid
// calling this api twice. Size, will be updated to actual size;
int32_t GetAckDataOnSuccessfullStart(uint32_t *size, void *data);
};
class UsecaseFactory
{
public:
static Usecase* UsecaseCreate(int32_t usecase_id);
};
class see_client
{
private:
uint32_t see_id;
std::map<uint32_t, Usecase*> usecases;
protected:
static std::mutex see_client_mutex;
public:
see_client(uint32_t id);
~see_client();
uint32_t Get_SEE_ID();
Usecase* Usecase_Get(uint32_t usecase_id);
int32_t Usecase_Remove(uint32_t usecase_id);
int32_t Usecase_Add(uint32_t usecase_id, Usecase* uc);
void lock_see_client() { see_client_mutex.lock(); };
void unlock_see_client() { see_client_mutex.unlock(); };
void CloseAllUsecases();
};
class RequestCommand {
public:
RequestCommand(uint32_t event_id, uint32_t *event_data);
virtual ~RequestCommand();
virtual int32_t Process(ContextManager& cm) = 0;
};
class CommandRegister : public RequestCommand {
public:
CommandRegister(uint32_t event_id, uint32_t* event_data);
~CommandRegister();
int32_t Process(ContextManager& cm);
private:
uint32_t see_sensor_iid;
uint32_t usecase_id;
uint32_t payload_size;
uint32_t *payload;
};
class CommandDeregister : public RequestCommand {
public:
CommandDeregister(uint32_t event_id, uint32_t* event_data);
int32_t Process(ContextManager& cm);
private:
uint32_t see_sensor_iid;
uint32_t usecase_id;
};
class CommandGetContextIDs : public RequestCommand {
public:
CommandGetContextIDs(uint32_t event_id, uint32_t* event_data);
int32_t Process(ContextManager& cm);
private:
uint32_t see_sensor_iid;
};
class CommandCloseAll : public RequestCommand {
public:
CommandCloseAll(uint32_t event_id, uint32_t* event_data);
int32_t Process(ContextManager& cm);
};
class RequestCommandFactory
{
public:
static RequestCommand *RequestCommandCreate(uint32_t event_id,
uint32_t* event_data);
};
class ContextManager
{
private:
std::map<uint32_t, see_client *> see_clients;
pal_stream_handle_t *proxy_stream;
bool exit_cmd_thread_;
std::condition_variable request_queue_cv;
std::mutex request_queue_mtx;
std::thread cmd_thread_;
std::queue<RequestCommand *> request_cmd_queue;
see_client* SEE_Client_CreateIf_And_Get(uint32_t see_id);
see_client * SEE_Client_Get_Existing(uint32_t see_id);
int32_t OpenAndStartProxyStream();
int32_t StopAndCloseProxyStream();
int32_t CreateCommandProcessingThread();
void DestroyCommandProcessingThread();
void CloseAll();
static void CommandThreadRunner(ContextManager& cm);
int32_t build_and_send_register_ack(Usecase *uc, uint32_t see_id, uint32_t uc_id);
public:
//functions
ContextManager();
~ContextManager();
int32_t Init();
void DeInit();
static int32_t StreamProxyCallback(pal_stream_handle_t *stream_handle,
uint32_t event_id, uint32_t *event_data,
uint32_t event_size, uint64_t cookie);
int32_t ssrDownHandler();
int32_t ssrUpHandler();
int32_t process_deregister_request(uint32_t see_id, uint32_t usecase_id);
int32_t process_register_request(uint32_t see_id, uint32_t usecase, uint32_t payload_size,
void *payload);
int32_t process_close_all();
int32_t send_asps_response(uint32_t param_id, pal_param_payload *payload);
int32_t send_asps_basic_response(int32_t status, uint32_t event_id, uint32_t see_id);
static ACDUUID GetUUID();
};
#endif /*CONTEXTMANAGER_H*/

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More