From b12f10836f3120d0e614ae1f34705435c7e53ce6 Mon Sep 17 00:00:00 2001 From: ronghuiz Date: Wed, 1 Feb 2023 10:28:05 +0800 Subject: [PATCH 1/5] asoc: kona: Add QUAD I2S EBIT clk define to kona Hdmi-in used QUAD-I2S to input, need configure I2S to slave mode. Change-Id: I1d27d51c766538bb8f61cd74c5dcb6cc18954e81 Signed-off-by: ronghuiz --- asoc/kona.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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]; From 8972574067e47c05d4011e9bea21110e5b372cfe Mon Sep 17 00:00:00 2001 From: Boyuan Yan Date: Tue, 7 Feb 2023 14:51:14 +0530 Subject: [PATCH 2/5] asoc: Add build option for qcs6490 Add build option for qcs6490. Change-Id: I2cd3ac1e296c8eb64702d26d0cb461052bc3ade2 Signed-off-by: Boyuan Yan --- Makefile.am | 10 ++++++++++ asoc/Kbuild | 5 +++++ asoc/codecs/Kbuild | 5 +++++ asoc/codecs/bolero/Kbuild | 5 +++++ asoc/codecs/wcd937x/Kbuild | 5 +++++ asoc/codecs/wcd938x/Kbuild | 5 +++++ asoc/codecs/wsa883x/Kbuild | 1 + dsp/Kbuild | 4 ++++ dsp/codecs/Kbuild | 5 +++++ ipc/Kbuild | 5 +++++ soc/Kbuild | 5 +++++ 11 files changed, 55 insertions(+) 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/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/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 From 60eaf5fe50079a65a815e04d08cdd4b2de629b33 Mon Sep 17 00:00:00 2001 From: Manoj Kumar N D Date: Tue, 7 Feb 2023 18:47:55 +0530 Subject: [PATCH 3/5] asoc : mark used cal block as stale Mark the used cal block as stale so that it is not reused. Change-Id: I142d21d6d32a1b5ad24c3a2708b1df023d70947e Signed-off-by: Manoj Kumar N D --- asoc/msm-pcm-routing-auto.c | 1 + 1 file changed, 1 insertion(+) 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; From 8440c8f13756f5baa81396cb57625d0e6879b1ad Mon Sep 17 00:00:00 2001 From: Manoj Kumar N D Date: Tue, 14 Feb 2023 14:52:54 +0530 Subject: [PATCH 4/5] asoc : Update proper comment for endpoint 2 Update proper description to explain the usage of endpoint ID 2. Change-Id: I45a52ef43c3fcd42f97de37e7bb80517dfe09db3 Signed-off-by: Manoj Kumar N D --- include/dsp/apr_audio-v2.h | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) 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 From 6a133ce3b43dbb08de378b1e4ba2ad77de0d4514 Mon Sep 17 00:00:00 2001 From: Kishan Kumar Majeti Date: Thu, 9 Feb 2023 11:35:41 +0530 Subject: [PATCH 5/5] asoc: Fix possible overflow in routing driver Send SOC_NO_PM in reg filed to avoid overflow in DAPM operation Change-Id: Id4845f1513612b54c7949d7c5c921f0529e5b847 Signed-off-by: Kishan Kumar Majeti --- asoc/msm-pcm-routing-v2.c | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) 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);