linux/sound/firewire
Takashi Sakamoto e1a00b5b25 ALSA: firewire-tascam: check intermediate state of clock status and retry
2 bytes in MSB of register for clock status is zero during intermediate
state after changing status of sampling clock in models of TASCAM FireWire
series. The duration of this state differs depending on cases. During the
state, it's better to retry reading the register for current status of
the clock.

In current implementation, the intermediate state is checked only when
getting current sampling transmission frequency, then retry reading.
This care is required for the other operations to read the register.

This commit moves the codes of check and retry into helper function
commonly used for operations to read the register.

Fixes: e453df44f0 ("ALSA: firewire-tascam: add PCM functionality")
Cc: <stable@vger.kernel.org> # v4.4+
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20190910135152.29800-3-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-09-10 16:16:46 +02:00
..
bebob ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
dice ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
digi00x ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
fireface ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
fireworks ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
motu ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
oxfw ALSA: oxfw: fix to handle correct stream for PCM playback 2019-08-26 16:00:30 +02:00
tascam ALSA: firewire-tascam: check intermediate state of clock status and retry 2019-09-10 16:16:46 +02:00
amdtp-am824.c ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
amdtp-am824.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
amdtp-stream-trace.h ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
amdtp-stream.c ALSA: firewire-lib: code refactoring for local variables 2019-07-08 14:50:42 +02:00
amdtp-stream.h ALSA: firewire-lib: unify packet handler for IT context 2019-05-24 09:05:15 +02:00
cmp.c ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
cmp.h ALSA: firewire-lib: split allocation of isochronous resources from establishment of connection 2019-06-17 08:18:36 +02:00
fcp.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
fcp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
isight.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
iso-resources.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
iso-resources.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
lib.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
lib.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
packets-buffer.c ALSA: firewire: fix a memory leak bug 2019-08-08 11:12:26 +02:00
packets-buffer.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00