ALSA: firewire-lib: fix different data block counter between probed event and transfe...
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 7 Jul 2019 12:07:56 +0000 (21:07 +0900)
committerTakashi Iwai <tiwai@suse.de>
Mon, 8 Jul 2019 12:50:40 +0000 (14:50 +0200)
For IT context, tracepoints event is probed after calculating next data
block counter. This brings difference of data block counter between
the probed event and actual isochronous packet.

This commit fixes it.

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

index 3d41005..9259375 100644 (file)
@@ -510,13 +510,13 @@ static void build_it_pkt_header(struct amdtp_stream *s, unsigned int cycle,
                cip_header = NULL;
        }
 
+       trace_amdtp_packet(s, cycle, cip_header, payload_length, data_blocks,
+                          index);
+
        if (!(s->flags & CIP_DBC_IS_END_EVENT)) {
                s->data_block_counter =
                                (s->data_block_counter + data_blocks) & 0xff;
        }
-
-       trace_amdtp_packet(s, cycle, cip_header, payload_length, data_blocks,
-                          index);
 }
 
 static int check_cip_header(struct amdtp_stream *s, const __be32 *buf,