diff options
author | Takashi Iwai <tiwai@suse.de> | 2025-05-16 09:58:27 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2025-05-16 09:58:35 +0200 |
commit | a3d14d1602ca11429d242d230c31af8f822f614f (patch) | |
tree | cb15a4235841e657753505538e6715711e7cd151 /sound/usb/midi.c | |
parent | 1c116e5569ef3bd33be1d6f687b0270c0932838d (diff) | |
parent | 7b9938a14460e8ec7649ca2e80ac0aae9815bf02 (diff) |
Merge branch 'for-linus' into for-next
Back-merge of 6.15 devel branch for further development of HD-audio
stuff.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/midi.c')
-rw-r--r-- | sound/usb/midi.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/sound/usb/midi.c b/sound/usb/midi.c index 5f98276113d7..9ab746ba367d 100644 --- a/sound/usb/midi.c +++ b/sound/usb/midi.c @@ -1885,10 +1885,18 @@ static void snd_usbmidi_init_substream(struct snd_usb_midi *umidi, } port_info = find_port_info(umidi, number); - name_format = port_info ? port_info->name : - (jack_name != default_jack_name ? "%s %s" : "%s %s %d"); - snprintf(substream->name, sizeof(substream->name), - name_format, umidi->card->shortname, jack_name, number + 1); + if (port_info || jack_name == default_jack_name || + strncmp(umidi->card->shortname, jack_name, strlen(umidi->card->shortname)) != 0) { + name_format = port_info ? port_info->name : + (jack_name != default_jack_name ? "%s %s" : "%s %s %d"); + snprintf(substream->name, sizeof(substream->name), + name_format, umidi->card->shortname, jack_name, number + 1); + } else { + /* The manufacturer included the iProduct name in the jack + * name, do not use both + */ + strscpy(substream->name, jack_name); + } *rsubstream = substream; } |