mirror of
https://github.com/torvalds/linux.git
synced 2024-10-27 15:21:45 +00:00
585d7cba5e
Some models receive MIDI messages via IEEE 1394 asynchronous transactions. In this case, MIDI messages are transferred in fixed-length payload. It's nice that firewire-lib module has common helper functions. This commit implements this idea. Each driver adds 'struct snd_fw_async_midi_port' in its instance structure. In probing, it should call snd_fw_async_midi_port_init() to initialize the structure with some parameters such as target address, the length of payload in a transaction and a pointer for callback function to fill the payload buffer. At 'struct snd_rawmidi_ops.trigger()' callback, it should call 'snd_fw_async_midi_port_run()' to start transactions. Each driver should ensure that the lifetime of MIDI substream continues till calling 'snd_fw_async_midi_port_finish()'. The helper functions support retries to transferring MIDI messages when transmission errors occur. When transactions are successful, the helper functions call 'snd_rawmidi_transmit_ack()' internally to consume MIDI bytes in the buffer. Therefore, Each driver is expected to use 'snd_rawmidi_transmit_peek()' to tell the number of bytes to transfer to return value of 'fill' callback. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de> |
||
---|---|---|
.. | ||
bebob | ||
dice | ||
digi00x | ||
fireworks | ||
oxfw | ||
tascam | ||
amdtp-am824.c | ||
amdtp-am824.h | ||
amdtp-stream.c | ||
amdtp-stream.h | ||
cmp.c | ||
cmp.h | ||
fcp.c | ||
fcp.h | ||
isight.c | ||
iso-resources.c | ||
iso-resources.h | ||
Kconfig | ||
lib.c | ||
lib.h | ||
Makefile | ||
packets-buffer.c | ||
packets-buffer.h | ||
scs1x.c |