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')\" 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), 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 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