ALSA: firewire-lib: fix to process MIDI conformant data channel for AM824 format
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Fri, 28 Jun 2019 05:53:31 +0000 (14:53 +0900)
committerTakashi Iwai <tiwai@suse.de>
Fri, 28 Jun 2019 08:54:52 +0000 (10:54 +0200)
commit973b059ca98054f9400562ae90bea5069b9b9274
tree58a232d4f18da1c086e574a80ea55d265afd1d6c
parent76864868dbab0bfd9aadaa9155acfe396f8069e4
ALSA: firewire-lib: fix to process MIDI conformant data channel for AM824 format

In IEC 61883-6, 8 MIDI data streams are multiplexed into single MIDI
conformant data channel. The index of stream is calculated by modulo 8
of the value of data block counter. Therefore data block processing
layer requires valid value of data block counter.

In recent changes of ALSA IEC 61883-1/6 engine, the value of data block
counter is changed before calling data block processing layer. This
brings miss detection of MIDI messages in non-blocking transmission
method is used.

This commit fixes the bug by changing chached data block counter after
calling data block processing layer.

Fixes: e335425b6596 ("ALSA: firewire-lib: split helper function to check incoming CIP header")
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/amdtp-stream.c