ALSA: firewire-lib: fix different data block counter between probed event and transferred isochronous packet

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>
This commit is contained in:
Takashi Sakamoto 2019-07-07 21:07:56 +09:00 committed by Takashi Iwai
parent 4ece7f6fd8
commit 213fa98981
1 changed files with 3 additions and 3 deletions

View File

@ -510,13 +510,13 @@ static void build_it_pkt_header(struct amdtp_stream *s, unsigned int cycle,
cip_header = NULL; cip_header = NULL;
} }
trace_amdtp_packet(s, cycle, cip_header, payload_length, data_blocks,
index);
if (!(s->flags & CIP_DBC_IS_END_EVENT)) { if (!(s->flags & CIP_DBC_IS_END_EVENT)) {
s->data_block_counter = s->data_block_counter =
(s->data_block_counter + data_blocks) & 0xff; (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, static int check_cip_header(struct amdtp_stream *s, const __be32 *buf,