ALSA: firewire-motu: add MIDI functionality
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 22 Mar 2017 12:30:23 +0000 (21:30 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 28 Mar 2017 10:33:56 +0000 (12:33 +0200)
commit9e796e7d59e71f8a556cfbdc2ffa3aff0555dd0e
tree2248865f8f2695690589c5792cda0092f0afc1e8
parentdd49b2d1f04af9b1f44e9fe82c85f374f662c61b
ALSA: firewire-motu: add MIDI functionality

In MOTU FireWire series, MIDI messages are multiplexed to isochronous
packets as well as PCM frames, while the way is different from the one
in IEC 61883-6.

MIDI messages are put into a certain position in message chunks. One data
block can includes one byte of the MIDI messages. When data block includes
a MIDI byte, the block has a flag in a certain position of the message
chunk. These positions are unique depending on protocols.

Once a data block includes a MIDI byte, some following data blocks includes
no MIDI bytes. Next MIDI byte appears on a data block corresponding to
next cycle of physical MIDI bus. This seems to avoid buffer overflow caused
by bandwidth differences between IEEE 1394 bus and physical MIDI bus.

This commit adds MIDI functionality to transfer/receive MIDI messages.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/motu/Makefile
sound/firewire/motu/amdtp-motu.c
sound/firewire/motu/motu-midi.c [new file with mode: 0644]
sound/firewire/motu/motu-stream.c
sound/firewire/motu/motu.c
sound/firewire/motu/motu.h