diff options
| author | Vijendar Mukunda <Vijendar.Mukunda@amd.com> | 2024-08-01 14:44:26 +0530 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2024-08-01 12:44:01 +0100 |
| commit | a9831fd1c0e6353366bbde6e1dd7b15a2dd6d825 (patch) | |
| tree | a2e2b01e2b89102be5980154d74fe85025dd1a89 /sound/soc/sdw_utils | |
| parent | 4776d0c9088634677749e42ae8b36b4da46226db (diff) | |
| download | linux-a9831fd1c0e6353366bbde6e1dd7b15a2dd6d825.tar.gz linux-a9831fd1c0e6353366bbde6e1dd7b15a2dd6d825.tar.bz2 linux-a9831fd1c0e6353366bbde6e1dd7b15a2dd6d825.zip | |
ASoC: intel/sdw_utils: move rtk dmic helper functions
Move rtk SoundWire dmic helper functions implementation to sdw_utils
folder to make it generic.
Link: https://github.com/thesofproject/linux/pull/5068
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240801091446.10457-12-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sdw_utils')
| -rw-r--r-- | sound/soc/sdw_utils/Makefile | 2 | ||||
| -rw-r--r-- | sound/soc/sdw_utils/soc_sdw_rt_dmic.c | 43 |
2 files changed, 44 insertions, 1 deletions
diff --git a/sound/soc/sdw_utils/Makefile b/sound/soc/sdw_utils/Makefile index de8aff8744d8..2c8f70465a12 100644 --- a/sound/soc/sdw_utils/Makefile +++ b/sound/soc/sdw_utils/Makefile @@ -1,3 +1,3 @@ # SPDX-License-Identifier: GPL-2.0-only -snd-soc-sdw-utils-y := soc_sdw_utils.o soc_sdw_dmic.o +snd-soc-sdw-utils-y := soc_sdw_utils.o soc_sdw_dmic.o soc_sdw_rt_dmic.o obj-$(CONFIG_SND_SOC_SDW_UTILS) += snd-soc-sdw-utils.o diff --git a/sound/soc/sdw_utils/soc_sdw_rt_dmic.c b/sound/soc/sdw_utils/soc_sdw_rt_dmic.c new file mode 100644 index 000000000000..7f24806d809d --- /dev/null +++ b/sound/soc/sdw_utils/soc_sdw_rt_dmic.c @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: GPL-2.0-only +// This file incorporates work covered by the following copyright notice: +// Copyright (c) 2024 Intel Corporation +// Copyright (c) 2024 Advanced Micro Devices, Inc. + +/* + * soc_sdw_rt_dmic - Helpers to handle Realtek SDW DMIC from generic machine driver + */ + +#include <linux/device.h> +#include <linux/errno.h> +#include <sound/soc.h> +#include <sound/soc-acpi.h> +#include <sound/soc_sdw_utils.h> + +int asoc_sdw_rt_dmic_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd_soc_dai *dai) +{ + struct snd_soc_card *card = rtd->card; + struct snd_soc_component *component; + char *mic_name; + + component = dai->component; + + /* + * rt715-sdca (aka rt714) is a special case that uses different name in card->components + * and component->name_prefix. + */ + if (!strcmp(component->name_prefix, "rt714")) + mic_name = devm_kasprintf(card->dev, GFP_KERNEL, "rt715-sdca"); + else + mic_name = devm_kasprintf(card->dev, GFP_KERNEL, "%s", component->name_prefix); + + card->components = devm_kasprintf(card->dev, GFP_KERNEL, + "%s mic:%s", card->components, + mic_name); + if (!card->components) + return -ENOMEM; + + dev_dbg(card->dev, "card->components: %s\n", card->components); + + return 0; +} +EXPORT_SYMBOL_NS(asoc_sdw_rt_dmic_rtd_init, SND_SOC_SDW_UTILS); |
