History

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.

Takashi Sakamoto committed 11 years ago

Commit 44b73081 parent 660dd3d6 files · +114 −3Browse files

Showing the changes to include/uapi (1 of 6 files). Show all

Unified · Split

include/uapi/sound/firewire.h+7−0
@@ -9,6 +9,7 @@ · 8 unmodified lines
9#define SNDRV_FIREWIRE_EVENT_LOCK_STATUS 0x000010cc9#define SNDRV_FIREWIRE_EVENT_LOCK_STATUS 0x000010cc
10#define SNDRV_FIREWIRE_EVENT_DICE_NOTIFICATION 0xd1ce004e10#define SNDRV_FIREWIRE_EVENT_DICE_NOTIFICATION 0xd1ce004e
11#define SNDRV_FIREWIRE_EVENT_EFW_RESPONSE 0x4e61747511#define SNDRV_FIREWIRE_EVENT_EFW_RESPONSE 0x4e617475
12#define SNDRV_FIREWIRE_EVENT_DIGI00X_MESSAGE 0x746e736c
12 13
13struct snd_firewire_event_common {14struct snd_firewire_event_common {
14 unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */15 unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */
@@ -40,11 +41,17 @@ struct snd_firewire_event_efw_response { · 25 unmodified lines
40 __be32 response[0]; /* some responses */41 __be32 response[0]; /* some responses */
41};42};
42 43
44struct snd_firewire_event_digi00x_message {
45 unsigned int type;
46 __u32 message; /* Digi00x-specific message */
47};
48
43union snd_firewire_event {49union snd_firewire_event {
44 struct snd_firewire_event_common common;50 struct snd_firewire_event_common common;
45 struct snd_firewire_event_lock_status lock_status;51 struct snd_firewire_event_lock_status lock_status;
46 struct snd_firewire_event_dice_notification dice_notification;52 struct snd_firewire_event_dice_notification dice_notification;
47 struct snd_firewire_event_efw_response efw_response;53 struct snd_firewire_event_efw_response efw_response;
54 struct snd_firewire_event_digi00x_message digi00x_message;
48};55};
49 56
50 57

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t