diff mbox series

ALSA: ump: Force 1 Group for MIDI1 FBs

Message ID 20240722140610.10845-1-tiwai@suse.de (mailing list archive)
State Accepted
Commit ac29d8ae05b770ed3f52d7a60908ab9b126f69d7
Headers show
Series ALSA: ump: Force 1 Group for MIDI1 FBs | expand

Commit Message

Takashi Iwai July 22, 2024, 2:06 p.m. UTC
When a Function Block declares it being a legacy MIDI1 device, it has
to be only with a single UMP Group.  Correct the attribute when a
device declares it wrongly.

Fixes: 37e0e14128e0 ("ALSA: ump: Support UMP Endpoint and Function Block parsing")
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/core/ump.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox series

Patch

diff --git a/sound/core/ump.c b/sound/core/ump.c
index 3f61220c23b4..4b10aa5819bf 100644
--- a/sound/core/ump.c
+++ b/sound/core/ump.c
@@ -733,6 +733,12 @@  static void fill_fb_info(struct snd_ump_endpoint *ump,
 		info->block_id, info->direction, info->active,
 		info->first_group, info->num_groups, info->midi_ci_version,
 		info->sysex8_streams, info->flags);
+
+	if ((info->flags & SNDRV_UMP_BLOCK_IS_MIDI1) && info->num_groups != 1) {
+		info->num_groups = 1;
+		ump_dbg(ump, "FB %d: corrected groups to 1 for MIDI1\n",
+			info->block_id);
+	}
 }
 
 /* check whether the FB info gets updated by the current message */