]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: SOF: Intel: Use codec_info_list.is_amp directly
authorBard Liao <yung-chuan.liao@linux.intel.com>
Fri, 5 Jun 2026 10:18:05 +0000 (18:18 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 10 Jun 2026 11:06:08 +0000 (12:06 +0100)
Now we set is_amp to all amp type codecs. We can use the flag directly
instead of using a local flag to check if the codec is an AMP type.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20260605101805.121428-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/hda.c

index 8662b422eb8074fb5ea3de7ea45347bcd8f97f52..dc85903b8d46d5c5dfc086f7dbf8f904cb5a2186 100644 (file)
@@ -1159,7 +1159,6 @@ static struct snd_soc_acpi_adr_device *find_acpi_adr_device(struct device *dev,
        struct snd_soc_acpi_adr_device *adr_dev;
        const char *name_prefix = "";
        int index = link->num_adr;
-       bool is_amp = true; /* Set it to false if the codec wiah any NON-AMP DAI type */
        int ep_index = 0;
        int i, j;
 
@@ -1216,7 +1215,6 @@ static struct snd_soc_acpi_adr_device *find_acpi_adr_device(struct device *dev,
                                endpoints[ep_index].aggregated = 0;
                                endpoints[ep_index].group_id = 0;
                                endpoints[ep_index].group_position = 0;
-                               is_amp = false;
                        }
                        ep_index++;
                }
@@ -1230,16 +1228,6 @@ static struct snd_soc_acpi_adr_device *find_acpi_adr_device(struct device *dev,
                return NULL;
        }
 
-       /*
-        * codec_info_list[].is_amp is a codec-level override: for multi-function
-        * codecs we must treat the whole codec as an AMP when it is described as
-        * such in the codec info table, even if some endpoints were detected as
-        * non-AMP above. Callers/UCM rely on this to keep name_prefix and AMP
-        * indexing stable and backwards compatible.
-        */
-       if (codec_info_list[i].is_amp)
-               is_amp = true;
-
        adr_dev[index].adr = ((u64)sdw_device->id.class_id & 0xFF) |
                        ((u64)sdw_device->id.part_id & 0xFFFF) << 8 |
                        ((u64)sdw_device->id.mfg_id & 0xFFFF) << 24 |
@@ -1247,7 +1235,7 @@ static struct snd_soc_acpi_adr_device *find_acpi_adr_device(struct device *dev,
                        ((u64)(sdw_device->id.sdw_version & 0xF) << 44) |
                        ((u64)(sdw_device->bus->link_id & 0xF) << 48);
 
-       if (!is_amp) {
+       if (!codec_info_list[i].is_amp) {
                /* For non-amp codecs, get name_prefix from codec_info_list[] */
                adr_dev[index].name_prefix = devm_kasprintf(dev, GFP_KERNEL, "%s", name_prefix);
                goto done_name_prefix;