diff --git a/Makefile.am b/Makefile.am index 5a1b82f16a5f..e9fd72731fa5 100755 --- a/Makefile.am +++ b/Makefile.am @@ -18,6 +18,9 @@ endif ifeq ($(TARGET_SUPPORT), qrb5165) KBUILD_OPTIONS += CONFIG_ARCH_KONA=y endif +ifeq ($(TARGET_SUPPORT), qcs6490) +KBUILD_OPTIONS += CONFIG_ARCH_LAHAINA=y +endif subdir-ccflags-y += -I$(AUDIO_ROOT)/include/uapi/ @@ -48,6 +51,13 @@ obj-m += asoc/codecs/wcd938x/ bj-m += asoc/codecs/wsa883x/ KBUILD_CFLAGS += -Wno-error endif +ifeq ($(TARGET_SUPPORT), $(filter $(TARGET_SUPPORT), qcs6490)) +obj-m += asoc/codecs/bolero/ +obj-m += asoc/codecs/wcd937x/ +obj-m += asoc/codecs/wcd938x/ +obj-m += asoc/codecs/wsa883x/ +KBUILD_CFLAGS += -Wno-error +endif ifeq ($(TARGET_SUPPORT), sdmsteppe) obj-m += asoc/codecs/bolero/ obj-m += asoc/codecs/wcd937x/ diff --git a/asoc/Kbuild b/asoc/Kbuild index 6014ba9c5634..c3a0458ccf3e 100755 --- a/asoc/Kbuild +++ b/asoc/Kbuild @@ -72,6 +72,11 @@ else include $(AUDIO_ROOT)/config/konaauto.conf INCS += -include $(AUDIO_ROOT)/config/konaautoconf.h endif + ifeq ($(CONFIG_ARCH_LAHAINA), y) + include $(AUDIO_ROOT)/config/lahainaauto.conf + export + INCS += -include $(AUDIO_ROOT)/config/lahainaautoconf.h + endif ifeq ($(CONFIG_ARCH_LITO), y) include $(AUDIO_ROOT)/config/litoauto.conf export diff --git a/asoc/codecs/Kbuild b/asoc/codecs/Kbuild index 8f19011f6f02..e8cb6f140854 100755 --- a/asoc/codecs/Kbuild +++ b/asoc/codecs/Kbuild @@ -72,6 +72,11 @@ else include $(AUDIO_ROOT)/config/konaauto.conf INCS += -include $(AUDIO_ROOT)/config/konaautoconf.h endif + ifeq ($(CONFIG_ARCH_LAHAINA), y) + include $(AUDIO_ROOT)/config/lahainaauto.conf + export + INCS += -include $(AUDIO_ROOT)/config/lahainaautoconf.h + endif ifeq ($(CONFIG_ARCH_LITO), y) include $(AUDIO_ROOT)/config/litoauto.conf export diff --git a/asoc/codecs/bolero/Kbuild b/asoc/codecs/bolero/Kbuild index a6a11c1a0e7d..4552b59ea7ee 100644 --- a/asoc/codecs/bolero/Kbuild +++ b/asoc/codecs/bolero/Kbuild @@ -30,6 +30,11 @@ ifeq ($(KERNEL_BUILD), 0) include $(AUDIO_ROOT)/config/konaauto.conf INCS += -include $(AUDIO_ROOT)/config/konaautoconf.h endif + ifeq ($(CONFIG_ARCH_LAHAINA), y) + include $(AUDIO_ROOT)/config/lahainaauto.conf + export + INCS += -include $(AUDIO_ROOT)/config/lahainaautoconf.h + endif ifeq ($(CONFIG_ARCH_LITO), y) include $(AUDIO_ROOT)/config/litoauto.conf export diff --git a/asoc/codecs/wcd937x/Kbuild b/asoc/codecs/wcd937x/Kbuild index c7286d0cd875..12efaf338108 100644 --- a/asoc/codecs/wcd937x/Kbuild +++ b/asoc/codecs/wcd937x/Kbuild @@ -36,6 +36,11 @@ ifeq ($(KERNEL_BUILD), 0) export INCS += -include $(AUDIO_ROOT)/config/litoautoconf.h endif + ifeq ($(CONFIG_ARCH_LAHAINA), y) + include $(AUDIO_ROOT)/config/lahainaauto.conf + export + INCS += -include $(AUDIO_ROOT)/config/lahainaautoconf.h + endif endif # As per target team, build is done as follows: diff --git a/asoc/codecs/wcd938x/Kbuild b/asoc/codecs/wcd938x/Kbuild index 873a7b29d434..21181c0f8b5f 100644 --- a/asoc/codecs/wcd938x/Kbuild +++ b/asoc/codecs/wcd938x/Kbuild @@ -23,6 +23,11 @@ ifeq ($(KERNEL_BUILD), 0) export INCS += -include $(AUDIO_ROOT)/config/litoautoconf.h endif + ifeq ($(CONFIG_ARCH_LAHAINA), y) + include $(AUDIO_ROOT)/config/lahainaauto.conf + export + INCS += -include $(AUDIO_ROOT)/config/lahainaautoconf.h + endif endif diff --git a/asoc/codecs/wsa883x/Kbuild b/asoc/codecs/wsa883x/Kbuild index 6cda76756dc2..e9ca09d0eb60 100644 --- a/asoc/codecs/wsa883x/Kbuild +++ b/asoc/codecs/wsa883x/Kbuild @@ -16,6 +16,7 @@ endif ifeq ($(KERNEL_BUILD), 0) ifeq ($(CONFIG_ARCH_LAHAINA), y) include $(AUDIO_ROOT)/config/lahainaauto.conf + export INCS += -include $(AUDIO_ROOT)/config/lahainaautoconf.h endif ifeq ($(CONFIG_ARCH_LITO), y) diff --git a/asoc/kona.c b/asoc/kona.c index 2c1a86c8b973..d801702c667c 100644 --- a/asoc/kona.c +++ b/asoc/kona.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. - * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved. */ #include @@ -328,6 +328,7 @@ static u32 mi2s_ebit_clk[MI2S_MAX] = { Q6AFE_LPASS_CLK_ID_PRI_MI2S_EBIT, Q6AFE_LPASS_CLK_ID_SEC_MI2S_EBIT, Q6AFE_LPASS_CLK_ID_TER_MI2S_EBIT, + Q6AFE_LPASS_CLK_ID_QUAD_MI2S_EBIT, }; static struct mi2s_conf mi2s_intf_conf[MI2S_MAX]; diff --git a/asoc/msm-pcm-routing-auto.c b/asoc/msm-pcm-routing-auto.c index 10e94d74f8f9..73960cb46e65 100644 --- a/asoc/msm-pcm-routing-auto.c +++ b/asoc/msm-pcm-routing-auto.c @@ -1818,6 +1818,7 @@ static int msm_routing_find_topology_on_index(int fedai_id, int session_type, in if (cal_block != NULL) { topology = ((struct audio_cal_info_adm_top *) cal_block->cal_info)->topology; + cal_utils_mark_cal_used(cal_block); } mutex_unlock(&cal_data[idx]->lock); return topology; diff --git a/asoc/msm-pcm-routing-v2.c b/asoc/msm-pcm-routing-v2.c index 6ec26e7d53b9..d77844984bdb 100644 --- a/asoc/msm-pcm-routing-v2.c +++ b/asoc/msm-pcm-routing-v2.c @@ -1,6 +1,39 @@ // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2012-2021, The Linux Foundation. All rights reserved. - * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * + * 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. */ /* * Add support for 24 and 32bit format for ASM loopback and playback session. @@ -33189,7 +33222,7 @@ static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum = wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value); static const struct soc_enum mi2s_rx_vi_fb_mux_enum = - SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0, + SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0, ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text), mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value); diff --git a/dsp/Kbuild b/dsp/Kbuild index 2c5506ff7c5c..060ce5d88009 100755 --- a/dsp/Kbuild +++ b/dsp/Kbuild @@ -61,6 +61,10 @@ else include $(AUDIO_ROOT)/config/konaauto.conf INCS += -include $(AUDIO_ROOT)/config/konaautoconf.h endif + ifeq ($(CONFIG_ARCH_LAHAINA), y) + include $(AUDIO_ROOT)/config/lahainaauto.conf + INCS += -include $(AUDIO_ROOT)/config/lahainaautoconf.h + endif ifeq ($(CONFIG_ARCH_LITO), y) include $(AUDIO_ROOT)/config/litoauto.conf export diff --git a/dsp/codecs/Kbuild b/dsp/codecs/Kbuild index 68b05ffacced..c87c4224de79 100644 --- a/dsp/codecs/Kbuild +++ b/dsp/codecs/Kbuild @@ -28,6 +28,11 @@ ifeq ($(KERNEL_BUILD), 0) include $(AUDIO_ROOT)/config/konaauto.conf INCS += -include $(AUDIO_ROOT)/config/konaautoconf.h endif + ifeq ($(CONFIG_ARCH_LAHAINA), y) + include $(AUDIO_ROOT)/config/lahainaauto.conf + export + INCS += -include $(AUDIO_ROOT)/config/lahainaautoconf.h + endif ifeq ($(CONFIG_ARCH_LITO), y) include $(AUDIO_ROOT)/config/litoauto.conf export diff --git a/include/dsp/apr_audio-v2.h b/include/dsp/apr_audio-v2.h index f1c73e5087b8..ed5963474da6 100644 --- a/include/dsp/apr_audio-v2.h +++ b/include/dsp/apr_audio-v2.h @@ -333,9 +333,11 @@ struct adm_cmd_device_open_v5 { */ u16 endpoint_id_2; -/* Logical and physical endpoint ID 2 for a voice processor - * Tx block. - * This is not applicable to audio COPP. +/* Endpoint 2 is set with 0xFFFF by default. + * In cases of ECREF, Endpoint 2 can be set with the ecref AFE port id, + * which will be connected to the TX block. + * ECREF data is given as input to the TX block. + * Endpoint 2 is applicable to audio CoPreP. * Supported values: * - AFE Rx port * - 0xFFFF -- Endpoint 2 is unavailable and the voice @@ -423,9 +425,11 @@ struct adm_cmd_device_open_v6 { */ u16 endpoint_id_2; -/* Logical and physical endpoint ID 2 for a voice processor - * Tx block. - * This is not applicable to audio COPP. +/* Endpoint 2 is set with 0xFFFF by default. + * In cases of ECREF, Endpoint 2 can be set with the ecref AFE port id, + * which will be connected to the TX block. + * ECREF data is given as input to the TX block. + * Endpoint 2 is applicable to audio CoPreP. * Supported values: * - AFE Rx port * - 0xFFFF -- Endpoint 2 is unavailable and the voice @@ -589,9 +593,11 @@ struct adm_cmd_device_open_v8 { */ u16 endpoint_id_2; -/* Logical and physical endpoint ID 2 for a voice processor - * Tx block. - * This is not applicable to audio COPP. +/* Endpoint 2 is set with 0xFFFF by default. + * In cases of ECREF, Endpoint 2 can be set with the ecref AFE port id, + * which will be connected to the TX block. + * ECREF data is given as input to the TX block. + * Endpoint 2 is applicable to audio CoPreP. * Supported values: * - AFE Rx port * - 0xFFFF -- Endpoint 2 is unavailable and the voice diff --git a/ipc/Kbuild b/ipc/Kbuild index 06a1f42b9063..1a70731e6dfc 100755 --- a/ipc/Kbuild +++ b/ipc/Kbuild @@ -62,6 +62,11 @@ else include $(AUDIO_ROOT)/config/konaauto.conf INCS += -include $(AUDIO_ROOT)/config/konaautoconf.h endif + ifeq ($(CONFIG_ARCH_LAHAINA), y) + include $(AUDIO_ROOT)/config/lahainaauto.conf + export + INCS += -include $(AUDIO_ROOT)/config/lahainaautoconf.h + endif ifeq ($(CONFIG_ARCH_LITO), y) include $(AUDIO_ROOT)/config/litoauto.conf export diff --git a/soc/Kbuild b/soc/Kbuild index edb9aeee478b..6548624ad390 100755 --- a/soc/Kbuild +++ b/soc/Kbuild @@ -56,6 +56,11 @@ else include $(AUDIO_ROOT)/config/konaauto.conf INCS += -include $(AUDIO_ROOT)/config/konaautoconf.h endif + ifeq ($(CONFIG_ARCH_LAHAINA), y) + include $(AUDIO_ROOT)/config/lahainaauto.conf + export + INCS += -include $(AUDIO_ROOT)/config/lahainaautoconf.h + endif ifeq ($(CONFIG_ARCH_LITO), y) include $(AUDIO_ROOT)/config/litoauto.conf export