OSDN Git Service

ALSA: seq: Bind UMP device
authorTakashi Iwai <tiwai@suse.de>
Tue, 23 May 2023 07:53:53 +0000 (09:53 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 23 May 2023 10:11:33 +0000 (12:11 +0200)
commit81fd444aa371261cd33f31d4ffd80faeeeab0cc9
tree6a2a4eabc82533e6e1e93935f6ae93fb031fce27
parent329ffe11a014834fdef9167c7ea24bd459829f86
ALSA: seq: Bind UMP device

This patch introduces a new ALSA sequencer client for the kernel UMP
object, snd-seq-ump-client.  It's a UMP version of snd-seq-midi
driver, while this driver creates a sequencer client per UMP endpoint
which contains (fixed) 16 ports.

The UMP rawmidi device is opened in APPEND mode for output, so that
multiple sequencer clients can share the same UMP endpoint, as well as
the legacy UMP rawmidi devices that are opened in APPEND mode, too.
For input, on the other hand, the incoming data is processed on the
fly in the dedicated hook, hence it doesn't open a rawmidi device.

The UMP packet group is updated upon delivery depending on the target
sequencer port (which corresponds to the actual UMP group).

Each sequencer port sets a new port type bit,
SNDRV_SEQ_PORT_TYPE_MIDI_UMP, in addition to the other standard
types for MIDI.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20230523075358.9672-33-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/seq_device.h
include/sound/ump.h
include/uapi/sound/asequencer.h
sound/core/seq/Kconfig
sound/core/seq/Makefile
sound/core/seq/seq_ump_client.c [new file with mode: 0644]
sound/core/ump.c