History

ALSA: firewire-motu: add message parser to gather meter information in register DSP model

Some of MOTU models allows software to configure their DSP parameters by accessing to their registers. The models multiplex messages for status of DSP into isochronous packet as well as PCM frames. The message includes information of hardware metering, MIDI message, current parameters of DSP. For my convenience, I call them as 'register DSP' model. This patch adds message parser for them to gather hardware meter information.

Takashi Sakamoto committed 5 years ago

Commit bea36af1 parent c18c4969 files · +219 −7Browse files

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

Unified · Split

include/uapi/sound/firewire.h+35−0
@@ -108,4 +108,39 @@ struct snd_firewire_tascam_state { · 107 unmodified lines
108108 __be32 data[SNDRV_FIREWIRE_TASCAM_STATE_COUNT];
109109 };
110110
111+// In below MOTU models, software is allowed to control their DSP by accessing to registers.
112+// - 828mk2
113+// - 896hd
114+// - Traveler
115+// - 8 pre
116+// - Ultralite
117+// - 4 pre
118+// - Audio Express
119+//
120+// On the other hand, the status of DSP is split into specific messages included in the sequence of
121+// isochronous packet. ALSA firewire-motu driver gathers the messages and allow userspace applications
122+// to read it via ioctl. In 828mk2, 896hd, and Traveler, hardware meter for all of physical inputs
123+// are put into the message, while one pair of physical outputs is selected. The selection is done by
124+// LSB one byte in asynchronous write quadlet transaction to 0x'ffff'f000'0b2c.
125+//
126+// I note that V3HD/V4HD uses asynchronous transaction for the purpose. The destination address is
127+// registered to 0x'ffff'f000'0b38 and '0b3c by asynchronous write quadlet request. The size of
128+// message differs between 23 and 51 quadlets. For the case, the number of mixer bus can be extended
129+// up to 12.
130+
131+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT 40
132+
133+/**
134+ * struct snd_firewire_motu_register_dsp_meter - the container for meter information in DSP
135+ * controlled by register access
136+ * @data: Signal level meters. The mapping between position and input/output channel is
137+ * model-dependent.
138+ *
139+ * The structure expresses the part of DSP status for hardware meter. The u8 storage includes linear
140+ * value for audio signal level between 0x00 and 0x7f.
141+ */
142+struct snd_firewire_motu_register_dsp_meter {
143+ __u8 data[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT];
144+};
145+
111146 #endif /* _UAPI_SOUND_FIREWIRE_H_INCLUDED */

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