ASoC: intel/sdw_utils: move dmic codec helper function
authorVijendar Mukunda <Vijendar.Mukunda@amd.com>
Thu, 1 Aug 2024 09:14:25 +0000 (14:44 +0530)
committerMark Brown <broonie@kernel.org>
Thu, 1 Aug 2024 11:44:00 +0000 (12:44 +0100)
Move generic dmic codec helper function implementation to
sdw_utils folder so that this function can be used by other platform
machine drivers.

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-11-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc_sdw_utils.h
sound/soc/intel/boards/Makefile
sound/soc/intel/boards/sof_sdw_common.h
sound/soc/intel/boards/sof_sdw_dmic.c [deleted file]
sound/soc/sdw_utils/Makefile
sound/soc/sdw_utils/soc_sdw_dmic.c [new file with mode: 0644]

index 7ca3a6afdfb1372c753d44a761626b29f0242a1c..0ffbd9847532df436bc81175c526f394548dd446 100644 (file)
@@ -68,4 +68,8 @@ const char *asoc_sdw_get_codec_name(struct device *dev,
                                    const struct asoc_sdw_codec_info *codec_info,
                                    const struct snd_soc_acpi_link_adr *adr_link,
                                    int adr_index);
+
+/* DMIC support */
+int asoc_sdw_dmic_init(struct snd_soc_pcm_runtime *rtd);
+
 #endif
index dc6fe110f279764aab1752917a70d52fb4e0a8fc..8ac6f7b5fbeed35b8b23ec9b0ce1554f8775d1b8 100644 (file)
@@ -43,7 +43,6 @@ snd-soc-sof-sdw-y += sof_sdw.o                                \
                        sof_sdw_rt_dmic.o                       \
                        sof_sdw_cs42l42.o sof_sdw_cs42l43.o     \
                        sof_sdw_cs_amp.o                        \
-                       sof_sdw_dmic.o                          \
                        sof_sdw_hdmi.o
 obj-$(CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH) += snd-soc-sof_rt5682.o
 obj-$(CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH) += snd-soc-sof_cs42l42.o
index 688cbc3afb29787afd5710577658f0e9b30fa499..81b654407651ade3ddb661fa0373e450709a50c6 100644 (file)
@@ -97,9 +97,6 @@ int sof_sdw_hdmi_init(struct snd_soc_pcm_runtime *rtd);
 
 int sof_sdw_hdmi_card_late_probe(struct snd_soc_card *card);
 
-/* DMIC support */
-int asoc_sdw_dmic_init(struct snd_soc_pcm_runtime *rtd);
-
 /* RT711 support */
 int asoc_sdw_rt711_init(struct snd_soc_card *card,
                        struct snd_soc_dai_link *dai_links,
diff --git a/sound/soc/intel/boards/sof_sdw_dmic.c b/sound/soc/intel/boards/sof_sdw_dmic.c
deleted file mode 100644 (file)
index d9f2e07..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-// Copyright (c) 2020 Intel Corporation
-
-/*
- *  sof_sdw_dmic - Helpers to handle dmic from generic machine driver
- */
-
-#include <sound/soc.h>
-#include <sound/soc-acpi.h>
-#include <sound/soc-dapm.h>
-#include "sof_sdw_common.h"
-
-static const struct snd_soc_dapm_widget dmic_widgets[] = {
-       SND_SOC_DAPM_MIC("SoC DMIC", NULL),
-};
-
-static const struct snd_soc_dapm_route dmic_map[] = {
-       /* digital mics */
-       {"DMic", NULL, "SoC DMIC"},
-};
-
-int asoc_sdw_dmic_init(struct snd_soc_pcm_runtime *rtd)
-{
-       struct snd_soc_card *card = rtd->card;
-       int ret;
-
-       ret = snd_soc_dapm_new_controls(&card->dapm, dmic_widgets,
-                                       ARRAY_SIZE(dmic_widgets));
-       if (ret) {
-               dev_err(card->dev, "DMic widget addition failed: %d\n", ret);
-               /* Don't need to add routes if widget addition failed */
-               return ret;
-       }
-
-       ret = snd_soc_dapm_add_routes(&card->dapm, dmic_map,
-                                     ARRAY_SIZE(dmic_map));
-
-       if (ret)
-               dev_err(card->dev, "DMic map addition failed: %d\n", ret);
-
-       return ret;
-}
-
index 29b2852be2875d279ce0140b04196d2f520fe7ef..de8aff8744d81819a647f5c823eea9c94d869f1e 100644 (file)
@@ -1,3 +1,3 @@
 # SPDX-License-Identifier: GPL-2.0-only
-snd-soc-sdw-utils-y := soc_sdw_utils.o
+snd-soc-sdw-utils-y := soc_sdw_utils.o soc_sdw_dmic.o
 obj-$(CONFIG_SND_SOC_SDW_UTILS) += snd-soc-sdw-utils.o
diff --git a/sound/soc/sdw_utils/soc_sdw_dmic.c b/sound/soc/sdw_utils/soc_sdw_dmic.c
new file mode 100644 (file)
index 0000000..fc2aae9
--- /dev/null
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier: GPL-2.0-only
+// This file incorporates work covered by the following copyright notice:
+// Copyright (c) 2020 Intel Corporation
+// Copyright (c) 2024 Advanced Micro Devices, Inc.
+
+/*
+ *  soc_sdw_dmic - Helpers to handle dmic from generic machine driver
+ */
+
+#include <sound/soc.h>
+#include <sound/soc-acpi.h>
+#include <sound/soc-dapm.h>
+#include <sound/soc_sdw_utils.h>
+
+static const struct snd_soc_dapm_widget dmic_widgets[] = {
+       SND_SOC_DAPM_MIC("SoC DMIC", NULL),
+};
+
+static const struct snd_soc_dapm_route dmic_map[] = {
+       /* digital mics */
+       {"DMic", NULL, "SoC DMIC"},
+};
+
+int asoc_sdw_dmic_init(struct snd_soc_pcm_runtime *rtd)
+{
+       struct snd_soc_card *card = rtd->card;
+       int ret;
+
+       ret = snd_soc_dapm_new_controls(&card->dapm, dmic_widgets,
+                                       ARRAY_SIZE(dmic_widgets));
+       if (ret) {
+               dev_err(card->dev, "DMic widget addition failed: %d\n", ret);
+               /* Don't need to add routes if widget addition failed */
+               return ret;
+       }
+
+       ret = snd_soc_dapm_add_routes(&card->dapm, dmic_map,
+                                     ARRAY_SIZE(dmic_map));
+
+       if (ret)
+               dev_err(card->dev, "DMic map addition failed: %d\n", ret);
+
+       return ret;
+}
+EXPORT_SYMBOL_NS(asoc_sdw_dmic_init, SND_SOC_SDW_UTILS);