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 3d410057eaa48f033de83001baa61e51c3356e94..9259375caac443b3a3e13e5bef2e424039abb6ba 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,