alistair23-linux/sound/firewire
Takashi Sakamoto 585d7cba5e ALSA: firewire-lib: add helper functions for asynchronous transactions to transfer MIDI messages
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>
2015-10-09 09:57:04 +02:00
..
bebob ALSA: bebob: support Firewire I/O card of Mackie Onyx 1220/1620/1640 2015-10-04 17:21:34 +02:00
dice ALSA: firewire-lib: rename macros with AM824 prefix 2015-09-29 12:50:23 +02:00
digi00x ALSA: firewire-digi00x: add support for asynchronous messaging 2015-09-30 15:37:55 +02:00
fireworks ALSA: firewire-lib: rename macros with AM824 prefix 2015-09-29 12:50:23 +02:00
oxfw Merge branch 'topic/firewire-update' into for-next 2015-09-29 12:52:07 +02:00
tascam ALSA: firewire-tascam: add hwdep interface 2015-10-02 18:17:04 +02:00
amdtp-am824.c ALSA: firewire-lib: process_rx_data_blocks() can be static 2015-09-29 16:52:52 +02:00
amdtp-am824.h ALSA: firewire-lib: complete AM824 data block processing layer 2015-09-29 12:51:20 +02:00
amdtp-stream.c ALSA: firewire-lib: complete AM824 data block processing layer 2015-09-29 12:51:20 +02:00
amdtp-stream.h ALSA: firewire-lib: complete AM824 data block processing layer 2015-09-29 12:51:20 +02:00
cmp.c ALSA: firewire-lib: fix kerneldoc errors 2014-11-18 18:10:23 +01:00
cmp.h ALSA: firewire-lib: Add a new function to check others' connection 2014-05-26 14:22:46 +02:00
fcp.c ALSA: firewire-lib: rename 'amdtp' to 'amdtp-stream' to prepare for functional separation 2015-09-29 12:47:11 +02:00
fcp.h ALSA: firewire-lib: Add some AV/C general commands 2014-05-26 14:23:13 +02:00
isight.c ALSA: pcm: Add snd_pcm_stop_xrun() helper 2014-11-09 18:20:40 +01:00
iso-resources.c ALSA: firewire-lib: leave unit reference counting completely 2015-03-10 15:27:19 +01:00
iso-resources.h
Kconfig ALSA: firewire-tascam: add hwdep interface 2015-10-02 18:17:04 +02:00
lib.c ALSA: firewire-lib: add helper functions for asynchronous transactions to transfer MIDI messages 2015-10-09 09:57:04 +02:00
lib.h ALSA: firewire-lib: add helper functions for asynchronous transactions to transfer MIDI messages 2015-10-09 09:57:04 +02:00
Makefile ALSA: firewire-tascam: add skeleton for TASCAM FireWire series 2015-10-02 18:16:59 +02:00
packets-buffer.c
packets-buffer.h
scs1x.c