ASoC: Intel: avs: Use topology information for endpoint numbers
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Mon, 7 Apr 2025 12:41:36 +0000 (14:41 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 7 Apr 2025 14:04:04 +0000 (15:04 +0100)
Use DAI PCM ID from topology as Front End device endpoint number. This
allows devices to be more naturally enumerated starting from 0, like
most cards, instead of values like 1 or 2.

Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Acked-by: Jaroslav Kysela <perex@perex.cz>
Link: https://patch.msgid.link/20250407124154.1713039-3-amadeuszx.slawinski@linux.intel.com
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/avs/avs.h
sound/soc/intel/avs/board_selection.c
sound/soc/intel/avs/pcm.c
sound/soc/intel/avs/probes.c
sound/soc/intel/avs/utils.h

index 585543f872fccc0e4d82a4799aea5dbc4600b88e..71973918e027b52f1e2e8b13474f52025c0d25ee 100644 (file)
@@ -340,7 +340,7 @@ struct avs_soc_component {
 extern const struct snd_soc_dai_ops avs_dai_fe_ops;
 
 int avs_soc_component_register(struct device *dev, const char *name,
-                              const struct snd_soc_component_driver *drv,
+                              struct snd_soc_component_driver *drv,
                               struct snd_soc_dai_driver *cpu_dais, int num_cpu_dais);
 int avs_dmic_platform_register(struct avs_dev *adev, const char *name);
 int avs_i2s_platform_register(struct avs_dev *adev, const char *name, unsigned long port_mask,
index d00addb24d40a9881473e81a11e408682a611580..d021503149a39ae379f499d198e1657ec85749ae 100644 (file)
@@ -23,7 +23,7 @@ static bool i2s_test;
 module_param(i2s_test, bool, 0444);
 MODULE_PARM_DESC(i2s_test, "Probe I2S test-board and skip all other I2S boards");
 
-static bool obsolete_card_names = IS_ENABLED(CONFIG_SND_SOC_INTEL_AVS_CARDNAME_OBSOLETE);
+bool obsolete_card_names = IS_ENABLED(CONFIG_SND_SOC_INTEL_AVS_CARDNAME_OBSOLETE);
 module_param_named(obsolete_card_names, obsolete_card_names, bool, 0444);
 MODULE_PARM_DESC(obsolete_card_names, "Use obsolete card names 0=no, 1=yes");
 
index 7e077c97123bbbed7f5d694d75b8b2e4807f8e88..0f4e35dab7e48590983fe46d1219611f31ad2b1c 100644 (file)
@@ -1267,7 +1267,7 @@ static int avs_component_construct(struct snd_soc_component *component,
        return 0;
 }
 
-static const struct snd_soc_component_driver avs_component_driver = {
+static struct snd_soc_component_driver avs_component_driver = {
        .name                   = "avs-pcm",
        .probe                  = avs_component_probe,
        .remove                 = avs_component_remove,
@@ -1282,7 +1282,7 @@ static const struct snd_soc_component_driver avs_component_driver = {
 };
 
 int avs_soc_component_register(struct device *dev, const char *name,
-                              const struct snd_soc_component_driver *drv,
+                              struct snd_soc_component_driver *drv,
                               struct snd_soc_dai_driver *cpu_dais, int num_cpu_dais)
 {
        struct avs_soc_component *acomp;
@@ -1300,6 +1300,8 @@ int avs_soc_component_register(struct device *dev, const char *name,
        acomp->base.name = name;
        INIT_LIST_HEAD(&acomp->node);
 
+       drv->use_dai_pcm_id = !obsolete_card_names;
+
        return snd_soc_add_component(&acomp->base, cpu_dais, num_cpu_dais);
 }
 
@@ -1626,7 +1628,7 @@ static int avs_component_hda_open(struct snd_soc_component *component,
        return 0;
 }
 
-static const struct snd_soc_component_driver avs_hda_component_driver = {
+static struct snd_soc_component_driver avs_hda_component_driver = {
        .name                   = "avs-hda-pcm",
        .probe                  = avs_component_hda_probe,
        .remove                 = avs_component_hda_remove,
index f0b0109563038802434feebfaed194b5aff82a33..a42736b9aa55b7b41fce0011898d112b66d31c8e 100644 (file)
@@ -284,7 +284,7 @@ static struct snd_soc_dai_driver probe_cpu_dais[] = {
 },
 };
 
-static const struct snd_soc_component_driver avs_probe_component_driver = {
+static struct snd_soc_component_driver avs_probe_component_driver = {
        .name                   = "avs-probe-compr",
        .compress_ops           = &avs_probe_compress_ops,
        .module_get_upon_open   = 1, /* increment refcount when a stream is opened */
index a7aa13a48cf3d959a188a9384c950d8872258d96..955a40d2c30c2000b25668ce581faf948c847da7 100644 (file)
@@ -11,6 +11,8 @@
 
 #include <sound/soc-acpi.h>
 
+extern bool obsolete_card_names;
+
 struct avs_mach_pdata {
        struct hda_codec *codec;
        unsigned long *tdms;