ALSA: bebob: Add a quirk of data blocks for MIDI messages for some M-Audio devices
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Fri, 25 Apr 2014 13:45:28 +0000 (22:45 +0900)
committerTakashi Iwai <tiwai@suse.de>
Mon, 26 May 2014 12:32:46 +0000 (14:32 +0200)
The firmwares for M-Audio Firewire 410/1814 and ProjectMix I/O has a quirk to
ignore MIDI messages in data blocks more than 8. This commit uses a flag which
Fireworks uses for a similar quirk.

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

index 3e74d9b1e3578cf1d2fbb4721c7169a982052436..452e93684e49116e6be7186387d3923c80497c41 100644 (file)
@@ -472,6 +472,13 @@ int snd_bebob_stream_init_duplex(struct snd_bebob *bebob)
                amdtp_stream_destroy(&bebob->rx_stream);
                destroy_both_connections(bebob);
        }
+       /*
+        * The firmware for these devices ignore MIDI messages in more than
+        * first 8 data blocks of an received AMDTP packet.
+        */
+       if (bebob->spec == &maudio_fw410_spec ||
+           bebob->spec == &maudio_special_spec)
+               bebob->rx_stream.rx_blocks_for_midi = 8;
 end:
        return err;
 }