diff options
author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2014-04-25 22:45:07 +0900 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-05-26 14:26:44 +0200 |
commit | b84b1a27b48eb3aea13127f83ec291c614df2992 (patch) | |
tree | d779e0cfc2767a4dece6ba47104a88ed23ceb927 /sound/firewire/amdtp.c | |
parent | d9cd0065c8a48dd0ef61acaa9584e3e723249c57 (diff) | |
download | talos-op-linux-b84b1a27b48eb3aea13127f83ec291c614df2992.tar.gz talos-op-linux-b84b1a27b48eb3aea13127f83ec291c614df2992.zip |
ALSA: fireworks/firewire-lib: Add a quirk to reset data block counter at bus reset
Fireworks has a quirk to reset data block counter at bus reset.
This commit adds a flag of CIP_SKIP_DBC_ZERO_CHECK. This flag has an effect
to skip checking dbc continuity when dbc is zero.
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/firewire/amdtp.c')
-rw-r--r-- | sound/firewire/amdtp.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/firewire/amdtp.c b/sound/firewire/amdtp.c index 4a7cc1f77d88..5e13b3f15516 100644 --- a/sound/firewire/amdtp.c +++ b/sound/firewire/amdtp.c @@ -662,7 +662,9 @@ static void handle_in_packet(struct amdtp_stream *s, /* Check data block counter continuity */ data_block_counter = cip_header[0] & AMDTP_DBC_MASK; - if (!(s->flags & CIP_DBC_IS_END_EVENT)) { + if ((s->flags & CIP_SKIP_DBC_ZERO_CHECK) && data_block_counter == 0) { + lost = false; + } else if (!(s->flags & CIP_DBC_IS_END_EVENT)) { lost = data_block_counter != s->data_block_counter; } else { if ((data_blocks > 0) && (s->tx_dbc_interval > 0)) |