ALSA: ump: Don't create unused substreams for static blocks
authorTakashi Iwai <tiwai@suse.de>
Thu, 24 Aug 2023 07:51:07 +0000 (09:51 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 24 Aug 2023 08:03:17 +0000 (10:03 +0200)
commitb2bcbd031d34d1ba1f491b9152474cf9f6d4d51b
treef0bc905e40200f14cad8bd2264a0d6d86038b32e
parent1761f4cc114af531020ea190df6a24dd288a8221
ALSA: ump: Don't create unused substreams for static blocks

When the UMP Endpoint is declared as "static", that is, no dynamic
reassignment of UMP Groups, it makes little sense to expose always all
16 groups with 16 substreams.  Many of those substreams are disabled
groups, hence they are useless, but applications don't know it and try
to open / access all those substreams unnecessarily.

This patch limits the number of UMP legacy rawmidi substreams only to
the active groups.  The behavior is changed only for the static
endpoint (i.e. devices without UMP v1.1 feature implemented or with
the static block flag is set).

Fixes: 0b5288f5fe63 ("ALSA: ump: Add legacy raw MIDI support")
Link: https://lore.kernel.org/r/20230824075108.29958-4-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/ump.h
sound/core/ump.c