aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/usb
diff options
context:
space:
mode:
authorJorge Sanjuan <jorge.sanjuan@codethink.co.uk>2018-07-11 08:37:53 -0400
committerTakashi Iwai <tiwai@suse.de>2018-07-16 10:35:34 -0400
commit0f292f023ffcc67ec49d63dcb7fe388711cbb83a (patch)
tree38d6931dff87166a3a4e80335ddbd9f71b36b6ab /include/linux/usb
parent4e887af31cedec0d3b24521a5c3c14c3a190422b (diff)
ALSA: usb-audio: Add support for Processing Units in UAC3
This patch adds support for the Processig Units defined in the UAC3 spec. The main difference with the previous specs is the lack of on/off switches in the controls for these units and the addiction of the new Multi Function Processing Unit. The current version of the UAC3 spec doesn't define any useful controls for the new Multi Function Processing Unit so no control will get created once this unit is parsed. Signed-off-by: Jorge Sanjuan <jorge.sanjuan@codethink.co.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/linux/usb')
-rw-r--r--include/linux/usb/audio-v3.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/usb/audio-v3.h b/include/linux/usb/audio-v3.h
index a710e28b5215..334bfa6dfb47 100644
--- a/include/linux/usb/audio-v3.h
+++ b/include/linux/usb/audio-v3.h
@@ -387,6 +387,12 @@ struct uac3_interrupt_data_msg {
387#define UAC3_CONNECTORS 0x0f 387#define UAC3_CONNECTORS 0x0f
388#define UAC3_POWER_DOMAIN 0x10 388#define UAC3_POWER_DOMAIN 0x10
389 389
390/* A.20 PROCESSING UNIT PROCESS TYPES */
391#define UAC3_PROCESS_UNDEFINED 0x00
392#define UAC3_PROCESS_UP_DOWNMIX 0x01
393#define UAC3_PROCESS_STEREO_EXTENDER 0x02
394#define UAC3_PROCESS_MULTI_FUNCTION 0x03
395
390/* A.22 AUDIO CLASS-SPECIFIC REQUEST CODES */ 396/* A.22 AUDIO CLASS-SPECIFIC REQUEST CODES */
391/* see audio-v2.h for the rest, which is identical to v2 */ 397/* see audio-v2.h for the rest, which is identical to v2 */
392#define UAC3_CS_REQ_INTEN 0x04 398#define UAC3_CS_REQ_INTEN 0x04
@@ -406,6 +412,15 @@ struct uac3_interrupt_data_msg {
406#define UAC3_TE_OVERFLOW 0x04 412#define UAC3_TE_OVERFLOW 0x04
407#define UAC3_TE_LATENCY 0x05 413#define UAC3_TE_LATENCY 0x05
408 414
415/* A.23.10 PROCESSING UNITS CONTROL SELECTROS */
416
417/* Up/Down Mixer */
418#define UAC3_UD_MODE_SELECT 0x01
419
420/* Stereo Extender */
421#define UAC3_EXT_WIDTH_CONTROL 0x01
422
423
409/* BADD predefined Unit/Terminal values */ 424/* BADD predefined Unit/Terminal values */
410#define UAC3_BADD_IT_ID1 1 /* Input Terminal ID1: bTerminalID = 1 */ 425#define UAC3_BADD_IT_ID1 1 /* Input Terminal ID1: bTerminalID = 1 */
411#define UAC3_BADD_FU_ID2 2 /* Feature Unit ID2: bUnitID = 2 */ 426#define UAC3_BADD_FU_ID2 2 /* Feature Unit ID2: bUnitID = 2 */