ASoC: wm_adsp: Take prefix into account in control name length
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Thu, 19 Jul 2018 10:50:36 +0000 (11:50 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 19 Jul 2018 14:11:54 +0000 (15:11 +0100)
Currently when creating ALSA control names for the DSP the length of any
prefix applied to the CODEC is not taken into account. Whilst this is
mostly harmless it does result in ALSA doing the truncation of the
control names and printing a warning. It is better to have the driver do
the truncation so it can truncate from the start of parameter name
itself to give a greater chance of the result maintain a unique name.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wm_adsp.c

index 99108d18de8d88388520b1c8d5a4b2e60a89e208..eec73c98a141998ab26f40875a03ba72f3b5b46a 100644 (file)
@@ -1343,6 +1343,9 @@ static int wm_adsp_create_control(struct wm_adsp *dsp,
                        int avail = SNDRV_CTL_ELEM_ID_NAME_MAXLEN - ret - 2;
                        int skip = 0;
 
+                       if (dsp->component->name_prefix)
+                               avail -= strlen(dsp->component->name_prefix) + 1;
+
                        if (subname_len > avail)
                                skip = subname_len - avail;