ALSA: firewire-digi00x: add support for asynchronous messaging
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 30 Sep 2015 00:39:22 +0000 (09:39 +0900)
committerTakashi Iwai <tiwai@suse.de>
Wed, 30 Sep 2015 13:37:55 +0000 (15:37 +0200)
commit44b7308871ac6fd85fc840bfa3ddb466fe7aff23
treeece85ff305f91ee7f8f9a1df8b2916ebcee98a3c
parent660dd3d52ead45b8e60dcf966daf304de2121a28
ALSA: firewire-digi00x: add support for asynchronous messaging

Digi 002/003 family uses asynchronous transaction for messaging.
The address to transmit this message is stored on a certain register.

This commit allocates a range of address on OHCI 1394 host controller
to handle the messaging. As long as I know, the purpose of this message
seems to notify lost of synchronization. While, the meaning of content
of the message is not clear.

Actual examples of this messaging:
 * When clock source is set as internal:
 - 0x00007051
 - 0x00007052
 - 0x00007054
 - 0x00007057
 - 0x00007058
 * When clock source is set as somewhat external:
 - 0x00009000
 - 0x00009010
 - 0x00009020
 - 0x00009021
 - 0x00009022

The lost often occurs when using internal clock source. In this case,
users hear sounds with quite short gap every several minutes. In fact,
the lost is recovered temporarily.

When using with external clock source, the lost seems not to occur. The
mechanism is not clear yet.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/uapi/sound/firewire.h
sound/firewire/digi00x/Makefile
sound/firewire/digi00x/digi00x-hwdep.c
sound/firewire/digi00x/digi00x-transaction.c [new file with mode: 0644]
sound/firewire/digi00x/digi00x.c
sound/firewire/digi00x/digi00x.h