]> git.itanic.dy.fi Git - linux-stable/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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Mar 2018 08:23:24 +0000 (09:23 +0100)
commit365a1dcaefccba917f513a5625bc086cfa6c22d1
tree59ab4707b3ea5a2ef8223a0c6757acd47e3bec22
parent0628003f0dce308b1fb45ab3ed119321c8a70d76
ALSA: firewire-digi00x: handle all MIDI messages on streaming packets

[ Upstream commit 8820a4cf0cb4cd5c6540a9a18b2cedbdfd5a6891 ]

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>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/firewire/digi00x/amdtp-dot.c