]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ALSA: firewire-digi00x: handle all MIDI messages on streaming packets
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 2 Apr 2017 14:48:25 +0000 (23:48 +0900)
committerTakashi Iwai <tiwai@suse.de>
Wed, 5 Apr 2017 19:34:10 +0000 (21:34 +0200)
commit8820a4cf0cb4cd5c6540a9a18b2cedbdfd5a6891
treef706979ab75d12a6115fdae63f28405f91e0f6a8
parent13e005f9f933a35b5e55c9d36f151efe2a8383ec
ALSA: firewire-digi00x: handle all MIDI messages on streaming packets

At a commit 9dc5d31cdceb ("ALSA: firewire-digi00x: handle MIDI messages in
isochronous packets"), a functionality to handle MIDI messages on
isochronous packet was supported. But this includes some of my
misunderstanding. This commit is to fix them.

For digi00x series, first data channel of data blocks in rx/tx packet
includes MIDI messages. The data channel has 0x80 in 8 bit of its MSB,
however it's against IEC 61883-6. Unique data format is applied:
 - Upper 4 bits of LSB represent port number.
  - 0x0: port 1.
  - 0x2: port 2.
  - 0xe: console port.
 - Lower 4 bits of LSB represent the number of included MIDI message bytes;
   0x0/0x1/0x2.
 - Two bytes of middle of this data channel have MIDI bytes.

Especially, MIDI messages from/to console surface are also transferred by
isochronous packets, as well as physical MIDI ports.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/digi00x/amdtp-dot.c