summarylogtreecommitdiffstats
path: root/0001-ALSA-usb-audio-Fix-the-missing-ctl-name-suffix-at-pa.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-ALSA-usb-audio-Fix-the-missing-ctl-name-suffix-at-pa.patch')
-rw-r--r--0001-ALSA-usb-audio-Fix-the-missing-ctl-name-suffix-at-pa.patch77
1 files changed, 0 insertions, 77 deletions
diff --git a/0001-ALSA-usb-audio-Fix-the-missing-ctl-name-suffix-at-pa.patch b/0001-ALSA-usb-audio-Fix-the-missing-ctl-name-suffix-at-pa.patch
deleted file mode 100644
index fe62f65af163..000000000000
--- a/0001-ALSA-usb-audio-Fix-the-missing-ctl-name-suffix-at-pa.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 16b5ff888e251b8c4dedd3994d2e85ab25ea7fa4 Mon Sep 17 00:00:00 2001
-Message-Id: <16b5ff888e251b8c4dedd3994d2e85ab25ea7fa4.1514245036.git.jan.steffens@gmail.com>
-From: Takashi Iwai <tiwai@suse.de>
-Date: Mon, 18 Dec 2017 23:36:57 +0100
-Subject: [PATCH] ALSA: usb-audio: Fix the missing ctl name suffix at parsing
- SU
-
-The commit 89b89d121ffc ("ALSA: usb-audio: Add check return value for
-usb_string()") added the check of the return value from
-snd_usb_copy_string_desc(), which is correct per se, but it introduced
-a regression. In the original code, either the "Clock Source",
-"Playback Source" or "Capture Source" suffix is added after the
-terminal string, while the commit changed it to add the suffix only
-when get_term_name() is failing. It ended up with an incorrect ctl
-name like "PCM" instead of "PCM Capture Source".
-
-Also, even the original code has a similar bug: when the ctl name is
-generated from snd_usb_copy_string_desc() for the given iSelector, it
-also doesn't put the suffix.
-
-This patch addresses these issues: the suffix is added always when no
-static mapping is found. Also the patch tries to put more comments
-and cleans up the if/else block for better readability in order to
-avoid the same pitfall again.
-
-Fixes: 89b89d121ffc ("ALSA: usb-audio: Add check return value for usb_string()")
-Reported-and-tested-by: Mauro Santos <registo.mailling@gmail.com>
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
----
- sound/usb/mixer.c | 27 ++++++++++++++++-----------
- 1 file changed, 16 insertions(+), 11 deletions(-)
-
-diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
-index 4fde4f8d4444a597..75bce127d768c613 100644
---- a/sound/usb/mixer.c
-+++ b/sound/usb/mixer.c
-@@ -2173,20 +2173,25 @@ static int parse_audio_selector_unit(struct mixer_build *state, int unitid,
- kctl->private_value = (unsigned long)namelist;
- kctl->private_free = usb_mixer_selector_elem_free;
-
-- nameid = uac_selector_unit_iSelector(desc);
-+ /* check the static mapping table at first */
- len = check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name));
-- if (len)
-- ;
-- else if (nameid)
-- len = snd_usb_copy_string_desc(state, nameid, kctl->id.name,
-- sizeof(kctl->id.name));
-- else
-- len = get_term_name(state, &state->oterm,
-- kctl->id.name, sizeof(kctl->id.name), 0);
--
- if (!len) {
-- strlcpy(kctl->id.name, "USB", sizeof(kctl->id.name));
-+ /* no mapping ? */
-+ /* if iSelector is given, use it */
-+ nameid = uac_selector_unit_iSelector(desc);
-+ if (nameid)
-+ len = snd_usb_copy_string_desc(state, nameid,
-+ kctl->id.name,
-+ sizeof(kctl->id.name));
-+ /* ... or pick up the terminal name at next */
-+ if (!len)
-+ len = get_term_name(state, &state->oterm,
-+ kctl->id.name, sizeof(kctl->id.name), 0);
-+ /* ... or use the fixed string "USB" as the last resort */
-+ if (!len)
-+ strlcpy(kctl->id.name, "USB", sizeof(kctl->id.name));
-
-+ /* and add the proper suffix */
- if (desc->bDescriptorSubtype == UAC2_CLOCK_SELECTOR)
- append_ctl_name(kctl, " Clock Source");
- else if ((state->oterm.type & 0xff00) == 0x0100)
---
-2.15.1
-