]> git.baikalelectronics.ru Git - kernel.git/commit
ALSA: dice: wait just for NOTIFY_CLOCK_ACCEPTED after GLOBAL_CLOCK_SELECT operation
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 1 Jun 2021 08:17:51 +0000 (17:17 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 1 Jun 2021 16:36:18 +0000 (18:36 +0200)
commitb16c453f6a8d9a1e9ee43a93c43c9344479a76b7
tree00c3c8e2b59e794c34fdb209d63b8400f4b07563
parent9cbcc49cda706c0c428bf7e84bcfca3a2e5af4d5
ALSA: dice: wait just for NOTIFY_CLOCK_ACCEPTED after GLOBAL_CLOCK_SELECT operation

NOTIFY_CLOCK_ACCEPTED notification is always generated as a result of
GLOBAL_CLOCK_SELECT operation, however NOTIFY_LOCK_CHG notification
doesn't, as long as the selected clock is already configured. In the case,
ALSA dice driver waits so long. It's inconvenient for some devices to lock
to the sequence of value in syt field of CIP header in rx packets.

This commit wait just for NOTIFY_CLOCK_ACCEPTED notification by reverting
changes partially done by two commits below:

 * commit a9893c87b7a6 ("ALSA: dice: old firmware optimization for Dice notification")
 * commit 33a44b81d05a ("ALSA: dice: change notification mask to detect lock status change")

I note that the successful lock to the sequence of value in syt field of
CIP header in rx packets results in NOTIFY_EXT_STATUS notification, then
EXT_STATUS_ARX1_LOCKED bit stands in GLOBAL_EXTENDED_STATUS register.
The notification can occur enough after receiving the batch of rx packets.
When the sequence doesn't include value in syt field of CIP header in rx
packets adequate to the device, the notification occurs again and the bit
is off.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20210601081753.9191-2-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/dice/dice-stream.c
sound/firewire/dice/dice-transaction.c