linux-stable/include/sound
Takashi Iwai 46397622a3 ALSA: seq: Add UMP support
Starting from this commit, we add the basic support of UMP (Universal
MIDI Packet) events on ALSA sequencer infrastructure.  The biggest
change here is that, for transferring UMP packets that are up to 128
bits, we extend the data payload of ALSA sequencer event record when
the client is declared to support for the new UMP events.

A new event flag bit, SNDRV_SEQ_EVENT_UMP, is defined and it shall be
set for the UMP packet events that have the larger payload of 128
bits, defined as struct snd_seq_ump_event.

For controlling the UMP feature enablement in kernel, a new Kconfig,
CONFIG_SND_SEQ_UMP is introduced.  The extended event for UMP is
available only when this Kconfig item is set.  Similarly, the size of
the internal snd_seq_event_cell also increases (in 4 bytes) when the
Kconfig item is set.  (But the size increase is effective only for
32bit architectures; 64bit archs already have padding there.)
Overall, when CONFIG_SND_SEQ_UMP isn't set, there is no change in the
event and cell, keeping the old sizes.

For applications that want to access the UMP packets, first of all, a
sequencer client has to declare the user-protocol to match with the
latest one via the new SNDRV_SEQ_IOCTL_USER_PVERSION; otherwise it's
treated as if a legacy client without UMP support.

Then the client can switch to the new UMP mode (MIDI 1.0 or MIDI 2.0)
with a new field, midi_version, in snd_seq_client_info.  When switched
to UMP mode (midi_version = 1 or 2), the client can write the UMP
events with SNDRV_SEQ_EVENT_UMP flag.  For reads, the alignment size
is changed from snd_seq_event (28 bytes) to snd_seq_ump_event (32
bytes).  When a UMP sequencer event is delivered to a legacy sequencer
client, it's ignored or handled as an error.

Conceptually, ALSA sequencer client and port correspond to the UMP
Endpoint and Group, respectively; each client may have multiple ports
and each port has the fixed number (16) of channels, total up to 256
channels.

As of this commit, ALSA sequencer core just sends and receives the UMP
events as-is from/to clients.  The automatic conversions between the
legacy events and the new UMP events will be implemented in a later
patch.

Along with this commit, bump the sequencer protocol version to 1.0.3.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20230523075358.9672-26-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-05-23 12:11:21 +02:00
..
ac97 ALSA: ac97: make remove callback of ac97 driver void returned 2023-01-25 09:34:20 +01:00
sof ASoC: SOF: ipc4: Add macros for chain-dma message bits 2023-03-21 12:13:30 +00:00
ac97_codec.h ALSA: ac97: Define dummy functions for snd_ac97_suspend() and resume() 2023-03-30 17:04:56 +02:00
aci.h
acp63_chip_offset_byte.h ASoC: amd: update ps platform acp header file 2023-02-03 12:04:02 +00:00
ad1816a.h
ad1843.h
adau1373.h
ak4xxx-adda.h
ak4113.h
ak4114.h
ak4117.h
ak4531_codec.h
ak4641.h
alc5623.h
asequencer.h ALSA: seq: Add UMP support 2023-05-23 12:11:21 +02:00
asound.h
asoundef.h
compress_driver.h ALSA: compress: Drop unused functions 2021-07-15 10:22:30 +02:00
control.h ALSA: control: add snd_ctl_rename() 2022-10-21 08:17:08 +02:00
core.h ALSA: core: Make snd_card_free() return void 2023-02-08 13:39:27 +01:00
cs35l33.h
cs35l34.h
cs35l35.h
cs35l36.h
cs35l41.h ALSA: cs35l41: Add shared boost feature 2023-03-05 23:36:43 +00:00
cs35l56.h ASoC: cs35l56: Rename mixer source defines for SoundWire DP1 2023-04-18 17:09:16 +01:00
cs42l42.h ASoC: cs42l42: Add SOFT_RESET_REBOOT register 2023-01-31 12:10:46 +00:00
cs42l52.h
cs42l56.h
cs42l73.h
cs4231-regs.h
cs4271.h
cs8403.h
cs8427.h
da7213.h
da7218.h
da7219-aad.h
da7219.h
da9055.h
designware_i2s.h
dmaengine_pcm.h ALSA: dmaengine: Fix missing return value comments for kernel docs 2022-07-13 13:42:35 +02:00
emu10k1.h ALSA: emu10k1: use high-level I/O in set_filterQ() 2023-04-24 08:16:26 +02:00
emu10k1_synth.h
emu8000.h ALSA: sb: Allocate resources with device-managed APIs 2021-07-19 16:17:14 +02:00
emu8000_reg.h
emux_legacy.h
emux_synth.h
es1688.h ALSA: es1688: Avoid devres management for es1688 object creation 2021-08-05 08:24:17 +02:00
graph_card.h ASoC: audio-graph-card2: add Codec2Codec support 2021-10-15 16:10:41 +01:00
gus.h ALSA: isa/gus: remove -Wmissing-prototypes warnings 2020-07-07 11:59:59 +02:00
hda-mlink.h ASoC: SOF: Intel: hda-mlink: add helper to retrieve eml_lock 2023-04-06 16:45:50 +01:00
hda_chmap.h
hda_codec.h ALSA: hda: Fix the control element identification for multiple codecs 2023-02-03 17:19:20 +01:00
hda_component.h
hda_hwdep.h
hda_i915.h
hda_register.h ALSA: hda: add HDaudio Extended link definitions 2023-04-06 16:45:34 +01:00
hda_regmap.h
hda_verbs.h ALSA: cleanup double word in comment 2022-02-11 15:18:56 +01:00
hdaudio.h Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
hdaudio_ext.h ALSA: hda: Allow for compress stream to hdac_ext_stream assignment 2022-12-05 14:05:18 +00:00
hdmi-codec.h ASoC: hdmi-codec: Allow playback and capture to be disabled 2022-12-02 14:07:12 +00:00
hwdep.h
i2c.h
info.h
initval.h
intel-dsp-config.h ASoC: Intel: avs: PCI driver implementation 2022-05-17 11:58:04 +01:00
intel-nhlt.h ALSA: hda: intel-nhlt: add intel_nhlt_ssp_mclk_mask() 2022-09-20 12:25:03 +01:00
jack.h ALSA: jack: Access input_dev under mutex 2022-04-12 12:19:05 +02:00
l3.h
madera-pdata.h ASoC: madera: Replace kernel.h with the necessary inclusions 2022-07-05 13:00:49 +01:00
max9768.h
max98088.h
max98090.h
max98095.h
memalloc.h ALSA: memalloc: Drop special handling of GFP for CONTINUOUS allocation 2022-08-24 08:00:26 +02:00
minors.h
mixer_oss.h
mpu401.h
omap-hdmi-audio.h ALSA: Replace HTTP links with HTTPS ones 2020-07-19 20:49:25 +02:00
opl3.h
opl4.h
pcm-indirect.h ALSA: pcm: Improved XRUN handling for indirect PCM helpers 2023-03-24 14:52:58 +01:00
pcm.h ALSA: pcm: rewrite snd_pcm_playback_silence() 2023-04-21 12:21:04 +02:00
pcm_drm_eld.h
pcm_iec958.h ALSA: iec958: Split status creation and fill 2021-06-08 17:05:41 +02:00
pcm_oss.h
pcm_params.h ALSA: pcm: Remove unused inline function snd_mask_sizeof 2020-09-09 18:43:07 +02:00
pt2258.h
pxa2xx-lib.h Input: touchscreen: use wrapper for pxa2xx ac97 registers 2022-05-07 22:55:48 +02:00
rawmidi.h ALSA: ump: Additional proc output 2023-05-23 12:10:59 +02:00
rt286.h
rt298.h
rt1015.h ASoC: rt1015: add delay to fix pop noise from speaker 2020-11-05 17:25:17 +00:00
rt5514.h
rt5659.h
rt5660.h
rt5663.h
rt5665.h
rt5668.h
rt5682.h ASoC: rt5682: Add a new property for the DMIC clock driving 2020-11-13 14:22:09 +00:00
rt5682s.h ASoC: rt5682s: add delay time to fix pop sound issue 2021-12-08 13:07:58 +00:00
sb.h
sb16_csp.h
sdw.h sound: sdw: Add hw_params to SoundWire config helper function 2022-11-28 13:04:24 +00:00
seq_device.h
seq_kernel.h ALSA: seq: Add UMP support 2023-05-23 12:11:21 +02:00
seq_midi_emul.h
seq_midi_event.h
seq_oss.h
seq_oss_legacy.h
seq_virmidi.h
sh_dac_audio.h
sh_fsi.h
simple_card.h
simple_card_utils.h ASoC: simple-card-utils: create jack inputs for aux_devs 2023-01-27 12:20:55 +00:00
snd_wavefront.h
soc-acpi-intel-match.h ASoC: Intel: HSW and BDW updates 2022-08-16 17:33:11 +01:00
soc-acpi.h ASoC: Intel: avs: Generic soc component driver 2022-05-17 11:57:53 +01:00
soc-card.h ASoC: add snd_soc_card_mutex_lock/unlock() 2023-04-17 12:57:26 +01:00
soc-component.h ASoC: soc-pcm: add option to start DMA after DAI 2023-02-28 13:58:48 +00:00
soc-dai.h ASoC: soc-dai.h: cleanup Playback/Capture data for snd_soc_dai 2023-01-31 11:05:12 +00:00
soc-dapm.h ASoC: expand snd_soc_dapm_mutex_lock/unlock() 2023-04-17 12:57:24 +01:00
soc-dpcm.h ASoC: soc-pcm.c: remove indirect runtime copy 2023-03-14 13:58:57 +00:00
soc-jack.h ASoC: add soc-jack.h 2020-11-30 12:54:02 +00:00
soc-link.h ASoC: soc-pcm: care trigger rollback 2020-12-09 12:13:38 +00:00
soc-topology.h ASoC: topology: Use unload() op directly 2023-01-30 16:56:41 +00:00
soc.h ASoC: expand snd_soc_dpcm_mutex_lock/unlock() 2023-04-17 12:57:25 +01:00
sof.h ASoC: SOF: Add flag and state which will be used for DSP-less mode 2023-04-04 12:42:33 +01:00
soundfont.h
spear_dma.h
spear_spdif.h
sta32x.h
sta350.h
tas2552-plat.h
tas5086.h
tea6330t.h
timer.h ALSA: timer: Replace tasklet with work 2020-09-09 18:32:52 +02:00
tlv.h
tlv320aic32x4.h
tlv320dac33-plat.h
tpa6130a2-plat.h
uda134x.h
uda1380.h
ump.h ALSA: ump: Add legacy raw MIDI support 2023-05-23 12:11:09 +02:00
ump_msg.h ALSA: ump: Add legacy raw MIDI support 2023-05-23 12:11:09 +02:00
util_mem.h
vx_core.h
wavefront.h
wm0010.h
wm1250-ev1.h
wm2000.h
wm2200.h
wm5100.h
wm8903.h
wm8904.h
wm8955.h
wm8960.h ASoC: wm8960: Support headphone jack detection function 2020-06-15 20:58:33 +01:00
wm8962.h
wm8993.h
wm8996.h
wm9081.h
wm9090.h
wss.h