From c0b9e1dcd84d1ddcb30e8657a6a4990e42d00325 Mon Sep 17 00:00:00 2001 From: Vijay Kumar Maddula Date: Wed, 12 Oct 2022 16:36:13 +0530 Subject: [PATCH 1/4] asoc: tavil: modify TX routes and dapm widgets Observed audio capture has no data after upgrade to 5.4 kernel due to change in dapm power up sequence in 5.4 kernel. Modified tavil TX routes and dapm widgets to meet the recent kenrel dapm power up sequence. Change-Id: I15965a4f221b396e670a5b2888a60557c302db51 Signed-off-by: Vijay Kumar Maddula --- asoc/codecs/wcd934x/wcd934x-routing.h | 10 +++++++--- asoc/codecs/wcd934x/wcd934x.c | 24 +++++++++++++++--------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/asoc/codecs/wcd934x/wcd934x-routing.h b/asoc/codecs/wcd934x/wcd934x-routing.h index 85ff7db3d9b6..77ca86896dd4 100644 --- a/asoc/codecs/wcd934x/wcd934x-routing.h +++ b/asoc/codecs/wcd934x/wcd934x-routing.h @@ -212,9 +212,13 @@ const struct snd_soc_dapm_route tavil_audio_map[] = { */ /* Virtual input widgets */ - {"AIF1 CAP", NULL, "AIF1_CAP Mixer"}, - {"AIF2 CAP", NULL, "AIF2_CAP Mixer"}, - {"AIF3 CAP", NULL, "AIF3_CAP Mixer"}, + {"AIF1 CAP", NULL, "AIF1_CAP_MIX"}, + {"AIF2 CAP", NULL, "AIF2_CAP_MIX"}, + {"AIF3 CAP", NULL, "AIF3_CAP_MIX"}, + + {"AIF1_CAP_MIX", NULL, "AIF1_CAP Mixer"}, + {"AIF2_CAP_MIX", NULL, "AIF2_CAP Mixer"}, + {"AIF3_CAP_MIX", NULL, "AIF3_CAP Mixer"}, /* WDMA3 */ {"WDMA3 PORT0 MUX", "DEC0", "ADC MUX0"}, diff --git a/asoc/codecs/wcd934x/wcd934x.c b/asoc/codecs/wcd934x/wcd934x.c index 98c5b011e060..bd98a054572c 100644 --- a/asoc/codecs/wcd934x/wcd934x.c +++ b/asoc/codecs/wcd934x/wcd934x.c @@ -8187,15 +8187,21 @@ static const struct snd_soc_dapm_widget tavil_dapm_widgets[] = { tavil_codec_force_enable_micbias, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), - SND_SOC_DAPM_AIF_OUT_E("AIF1 CAP", "AIF1 Capture", 0, SND_SOC_NOPM, - AIF1_CAP, 0, tavil_codec_enable_tx, - SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), - SND_SOC_DAPM_AIF_OUT_E("AIF2 CAP", "AIF2 Capture", 0, SND_SOC_NOPM, - AIF2_CAP, 0, tavil_codec_enable_tx, - SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), - SND_SOC_DAPM_AIF_OUT_E("AIF3 CAP", "AIF3 Capture", 0, SND_SOC_NOPM, - AIF3_CAP, 0, tavil_codec_enable_tx, - SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), + SND_SOC_DAPM_AIF_OUT("AIF1 CAP", "AIF1 Capture", 0, SND_SOC_NOPM, 0, 0), + SND_SOC_DAPM_AIF_OUT("AIF2 CAP", "AIF2 Capture", 0, SND_SOC_NOPM, 0, 0), + SND_SOC_DAPM_AIF_OUT("AIF3 CAP", "AIF3 Capture", 0, SND_SOC_NOPM, 0, 0), + + SND_SOC_DAPM_MIXER_E("AIF1_CAP_MIX", SND_SOC_NOPM, AIF1_CAP, 0, + NULL, 0, tavil_codec_enable_tx, + SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), + + SND_SOC_DAPM_MIXER_E("AIF2_CAP_MIX", SND_SOC_NOPM, AIF2_CAP, 0, + NULL, 0, tavil_codec_enable_tx, + SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), + + SND_SOC_DAPM_MIXER_E("AIF3_CAP_MIX", SND_SOC_NOPM, AIF3_CAP, 0, + NULL, 0, tavil_codec_enable_tx, + SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_MIXER("SLIM TX0", SND_SOC_NOPM, 0, 0, NULL, 0), SND_SOC_DAPM_MIXER("SLIM TX1", SND_SOC_NOPM, 0, 0, NULL, 0), From b39574b943cb656bdb132c5d1e6a9ccdbdd29ded Mon Sep 17 00:00:00 2001 From: Kogara Naveen Kumar Date: Mon, 7 Nov 2022 18:16:44 +0530 Subject: [PATCH 2/4] asoc : modify spf_machine_dlkm module name for GVM Suggested-by: Ahamed Rasim. Change-Id : I642ddf5fd475ba5e6a1f27ab60339c0287fe5678 --- asoc/Kbuild | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/asoc/Kbuild b/asoc/Kbuild index 6bfe53412acb..6014ba9c5634 100755 --- a/asoc/Kbuild +++ b/asoc/Kbuild @@ -329,8 +329,8 @@ machine_dlkm-y := $(MACHINE_OBJS) obj-$(CONFIG_SND_SOC_CPE) += cpe_lsm_dlkm.o cpe_lsm_dlkm-y := $(CPE_LSM_OBJS) -obj-$(CONFIG_SND_SOC_GVM_AUTO_SPF) += spf_machine_dlkm.o -spf_machine_dlkm-y := $(SPF_MACHINE_OBJS) +obj-$(CONFIG_SND_SOC_GVM_AUTO_SPF) += gvm_spf_machine_dlkm.o +gvm_spf_machine_dlkm-y := $(SPF_MACHINE_OBJS) # inject some build related information DEFINES += -DBUILD_TIMESTAMP=\"$(shell date -u +'%Y-%m-%dT%H:%M:%SZ')\" From 457009dc9409bf87cea33b0c50c36e36fe50436a Mon Sep 17 00:00:00 2001 From: Jiazai Wu Date: Thu, 17 Nov 2022 12:11:31 +0800 Subject: [PATCH 3/4] uapi:align msm_audio_ar.h with AR need to align msm_audio_ar.h with AR. Change-Id: Ib3d7bad7e2e3b1320927d1d2ce7f891bfd7bd065 --- include/uapi/audio/linux/msm_audio_ar.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/uapi/audio/linux/msm_audio_ar.h b/include/uapi/audio/linux/msm_audio_ar.h index 5edce37bb6d8..32dec4d63185 100644 --- a/include/uapi/audio/linux/msm_audio_ar.h +++ b/include/uapi/audio/linux/msm_audio_ar.h @@ -113,7 +113,11 @@ #define AUDIO_PM_RELAX _IOW(AUDIO_IOCTL_MAGIC, 106, unsigned int) #define AUDIO_REGISTER_ION _IOW(AUDIO_IOCTL_MAGIC, 107, struct msm_audio_ion_info) #define AUDIO_DEREGISTER_ION _IOW(AUDIO_IOCTL_MAGIC, 108, struct msm_audio_ion_info) -#define AUDIO_MAX_COMMON_IOCTL_NUM 109 +#define IOCTL_MAP_HYP_ASSIGN _IOW(AUDIO_IOCTL_MAGIC, 109, int) +#define IOCTL_UNMAP_HYP_ASSIGN _IOW(AUDIO_IOCTL_MAGIC, 110, int) +#define IOCTL_MAP_HYP_ASSIGN_V2 _IOW(AUDIO_IOCTL_MAGIC, 111, int) +#define IOCTL_UNMAP_HYP_ASSIGN_V2 _IOW(AUDIO_IOCTL_MAGIC, 112, int) +#define AUDIO_MAX_COMMON_IOCTL_NUM 113 #define HANDSET_MIC 0x01 From 73e13435c9432c1a1bc95c8adf6c361d4cd24312 Mon Sep 17 00:00:00 2001 From: Hari Krishna chowdary Yennana Date: Fri, 23 Sep 2022 19:28:58 +0530 Subject: [PATCH 4/4] asoc: Update wcd937x codec driver controls Amic2 recording is failing due to missing of mixer controls. Change is to add support of ADC and DMIC control for swr master channel map. Change-Id: I0377ec84a49d2eaa390872a29e2d8cf8909794b1 Signed-off-by: Hari Krishna Chowdary Yennana --- asoc/codecs/wcd937x/wcd937x.c | 3 ++- asoc/codecs/wcd937x/wcd937x.h | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/asoc/codecs/wcd937x/wcd937x.c b/asoc/codecs/wcd937x/wcd937x.c index a7b3a5a0e8d4..c002574d26b2 100644 --- a/asoc/codecs/wcd937x/wcd937x.c +++ b/asoc/codecs/wcd937x/wcd937x.c @@ -2074,7 +2074,8 @@ const char * const tx_master_ch_text[] = { "ZERO", "SWRM_TX1_CH1", "SWRM_TX1_CH2", "SWRM_TX1_CH3", "SWRM_TX1_CH4", "SWRM_TX2_CH1", "SWRM_TX2_CH2", "SWRM_TX2_CH3", "SWRM_TX2_CH4", "SWRM_TX3_CH1", "SWRM_TX3_CH2", "SWRM_TX3_CH3", "SWRM_TX3_CH4", - "SWRM_PCM_IN", + "SWRM_PCM_IN", "ADC1", "ADC3", "ADC4", "DMIC0", "DMIC1", "DMIC2", + "DMIC4", "DMIC5", "DMIC6", "DMIC7", }; const struct soc_enum tx_master_ch_enum = diff --git a/asoc/codecs/wcd937x/wcd937x.h b/asoc/codecs/wcd937x/wcd937x.h index c97ee78254ad..a868eeb32b9a 100644 --- a/asoc/codecs/wcd937x/wcd937x.h +++ b/asoc/codecs/wcd937x/wcd937x.h @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (c) 2018, 2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. */ #ifndef _WCD937X_H @@ -50,6 +51,16 @@ static int wcd937x_swr_master_ch_map[] = { SWRM_TX3_CH3, SWRM_TX3_CH4, SWRM_PCM_IN, + ADC1, + ADC3, + ADC4, + DMIC0, + DMIC1, + DMIC2, + DMIC4, + DMIC5, + DMIC6, + DMIC7, }; #ifdef CONFIG_SND_SOC_WCD937X