Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9104f98 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge branch 'topic/misc' into fix/misc

parents ad6cfc2a 89c0ac7c
Loading
Loading
Loading
Loading
+26 −1
Original line number Diff line number Diff line
@@ -482,6 +482,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

    reference_rate	- reference sample rate, 44100 or 48000 (default)
    multiple		- multiple to ref. sample rate, 1 or 2 (default)
    subsystem		- override the PCI SSID for probing; the value
			  consists of SSVID << 16 | SSDID.  The default is
			  zero, which means no override.

    This module supports multiple cards.

@@ -1123,6 +1126,21 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

    This module supports multiple cards, autoprobe and ISA PnP.

  Module snd-jazz16
  -------------------

    Module for Media Vision Jazz16 chipset. The chipset consists of 3 chips:
    MVD1216 + MVA416 + MVA514.

    port	- port # for SB DSP chip (0x210,0x220,0x230,0x240,0x250,0x260)
    irq		- IRQ # for SB DSP chip (3,5,7,9,10,15)
    dma8	- DMA # for SB DSP chip (1,3)
    dma16	- DMA # for SB DSP chip (5,7)
    mpu_port	- MPU-401 port # (0x300,0x310,0x320,0x330)
    mpu_irq	- MPU-401 irq # (2,3,5,7)

    This module supports multiple cards.

  Module snd-korg1212
  -------------------

@@ -1791,6 +1809,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

    The power-management is supported.

  Module snd-ua101
  ----------------

    Module for the Edirol UA-101/UA-1000 audio/MIDI interfaces.

    This module supports multiple devices, autoprobe and hotplugging.

  Module snd-usb-audio
  --------------------

@@ -1923,7 +1948,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
  -------------------

    Module for sound cards based on the Asus AV100/AV200 chips,
    i.e., Xonar D1, DX, D2, D2X, HDAV1.3 (Deluxe), Essence ST
    i.e., Xonar D1, DX, D2, D2X, DS, HDAV1.3 (Deluxe), Essence ST
    (Deluxe) and Essence STX.

    This module supports autoprobe and multiple cards.
+3 −3
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ DECLARE_UAC_AC_HEADER_DESCRIPTOR(2);
#define UAC_DT_TOTAL_LENGTH (UAC_DT_AC_HEADER_LENGTH + UAC_DT_INPUT_TERMINAL_SIZE \
	+ UAC_DT_OUTPUT_TERMINAL_SIZE + UAC_DT_FEATURE_UNIT_SIZE(0))
/* B.3.2  Class-Specific AC Interface Descriptor */
static struct uac_ac_header_descriptor_2 ac_header_desc = {
static struct uac_ac_header_descriptor_v1_2 ac_header_desc = {
	.bLength =		UAC_DT_AC_HEADER_LENGTH,
	.bDescriptorType =	USB_DT_CS_INTERFACE,
	.bDescriptorSubtype =	UAC_HEADER,
@@ -124,7 +124,7 @@ static struct usb_audio_control_selector feature_unit = {
};

#define OUTPUT_TERMINAL_ID	3
static struct uac_output_terminal_descriptor output_terminal_desc = {
static struct uac_output_terminal_descriptor_v1 output_terminal_desc = {
	.bLength		= UAC_DT_OUTPUT_TERMINAL_SIZE,
	.bDescriptorType	= USB_DT_CS_INTERFACE,
	.bDescriptorSubtype	= UAC_OUTPUT_TERMINAL,
@@ -154,7 +154,7 @@ static struct usb_interface_descriptor as_interface_alt_1_desc = {
};

/* B.4.2  Class-Specific AS Interface Descriptor */
static struct uac_as_header_descriptor as_header_desc = {
static struct uac_as_header_descriptor_v1 as_header_desc = {
	.bLength =		UAC_DT_AS_HEADER_SIZE,
	.bDescriptorType =	USB_DT_CS_INTERFACE,
	.bDescriptorSubtype =	UAC_AS_GENERAL,
+1 −1
Original line number Diff line number Diff line
@@ -237,7 +237,7 @@ static const struct usb_interface_descriptor ac_interface_desc = {
};

/* B.3.2  Class-Specific AC Interface Descriptor */
static const struct uac_ac_header_descriptor_1 ac_header_desc = {
static const struct uac_ac_header_descriptor_v1_1 ac_header_desc = {
	.bLength =		UAC_DT_AC_HEADER_SIZE(1),
	.bDescriptorType =	USB_DT_CS_INTERFACE,
	.bDescriptorSubtype =	USB_MS_HEADER,
+114 −6
Original line number Diff line number Diff line
@@ -25,6 +25,9 @@
#define USB_SUBCLASS_AUDIOSTREAMING	0x02
#define USB_SUBCLASS_MIDISTREAMING	0x03

#define UAC_VERSION_1			0x00
#define UAC_VERSION_2			0x20

/* A.5 Audio Class-Specific AC Interface Descriptor Subtypes */
#define UAC_HEADER			0x01
#define UAC_INPUT_TERMINAL		0x02
@@ -32,8 +35,17 @@
#define UAC_MIXER_UNIT			0x04
#define UAC_SELECTOR_UNIT		0x05
#define UAC_FEATURE_UNIT		0x06
#define UAC_PROCESSING_UNIT		0x07
#define UAC_EXTENSION_UNIT		0x08
#define UAC_PROCESSING_UNIT_V1		0x07
#define UAC_EXTENSION_UNIT_V1		0x08

/* UAC v2.0 types */
#define UAC_EFFECT_UNIT			0x07
#define UAC_PROCESSING_UNIT_V2		0x08
#define UAC_EXTENSION_UNIT_V2		0x09
#define UAC_CLOCK_SOURCE		0x0a
#define UAC_CLOCK_SELECTOR		0x0b
#define UAC_CLOCK_MULTIPLIER		0x0c
#define UAC_SAMPLE_RATE_CONVERTER	0x0d

/* A.6 Audio Class-Specific AS Interface Descriptor Subtypes */
#define UAC_AS_GENERAL			0x01
@@ -66,6 +78,10 @@

#define UAC_GET_STAT			0xff

/* Audio class v2.0 handles all the parameter calls differently */
#define UAC2_CS_CUR			0x01
#define UAC2_CS_RANGE			0x02

/* MIDI - A.1 MS Class-Specific Interface Descriptor Subtypes */
#define UAC_MS_HEADER			0x01
#define UAC_MIDI_IN_JACK		0x02
@@ -81,7 +97,7 @@

/* Terminal Control Selectors */
/* 4.3.2  Class-Specific AC Interface Descriptor */
struct uac_ac_header_descriptor {
struct uac_ac_header_descriptor_v1 {
	__u8  bLength;			/* 8 + n */
	__u8  bDescriptorType;		/* USB_DT_CS_INTERFACE */
	__u8  bDescriptorSubtype;	/* UAC_MS_HEADER */
@@ -95,7 +111,7 @@ struct uac_ac_header_descriptor {

/* As above, but more useful for defining your own descriptors: */
#define DECLARE_UAC_AC_HEADER_DESCRIPTOR(n) 			\
struct uac_ac_header_descriptor_##n {				\
struct uac_ac_header_descriptor_v1_##n {			\
	__u8  bLength;						\
	__u8  bDescriptorType;					\
	__u8  bDescriptorSubtype;				\
@@ -130,8 +146,12 @@ struct uac_input_terminal_descriptor {
#define UAC_INPUT_TERMINAL_MICROPHONE_ARRAY		0x205
#define UAC_INPUT_TERMINAL_PROC_MICROPHONE_ARRAY	0x206

/* Terminals - control selectors */

#define UAC_TERMINAL_CS_COPY_PROTECT_CONTROL		0x01

/* 4.3.2.2 Output Terminal Descriptor */
struct uac_output_terminal_descriptor {
struct uac_output_terminal_descriptor_v1 {
	__u8  bLength;			/* in bytes: 9 */
	__u8  bDescriptorType;		/* CS_INTERFACE descriptor type */
	__u8  bDescriptorSubtype;	/* OUTPUT_TERMINAL descriptor subtype */
@@ -171,7 +191,7 @@ struct uac_feature_unit_descriptor_##ch { \
} __attribute__ ((packed))

/* 4.5.2 Class-Specific AS Interface Descriptor */
struct uac_as_header_descriptor {
struct uac_as_header_descriptor_v1 {
	__u8  bLength;			/* in bytes: 7 */
	__u8  bDescriptorType;		/* USB_DT_CS_INTERFACE */
	__u8  bDescriptorSubtype;	/* AS_GENERAL */
@@ -180,6 +200,19 @@ struct uac_as_header_descriptor {
	__le16 wFormatTag;		/* The Audio Data Format */
} __attribute__ ((packed));

struct uac_as_header_descriptor_v2 {
	__u8 bLength;
	__u8 bDescriptorType;
	__u8 bDescriptorSubtype;
	__u8 bTerminalLink;
	__u8 bmControls;
	__u8 bFormatType;
	__u32 bmFormats;
	__u8 bNrChannels;
	__u32 bmChannelConfig;
	__u8 iChannelNames;
} __attribute__((packed));

#define UAC_DT_AS_HEADER_SIZE		7

/* Formats - A.1.1 Audio Data Format Type I Codes */
@@ -232,11 +265,62 @@ struct uac_format_type_i_discrete_descriptor_##n { \

#define UAC_FORMAT_TYPE_I_DISCRETE_DESC_SIZE(n)	(8 + (n * 3))

struct uac_format_type_i_ext_descriptor {
	__u8 bLength;
	__u8 bDescriptorType;
	__u8 bDescriptorSubtype;
	__u8 bFormatType;
	__u8 bSubslotSize;
	__u8 bBitResolution;
	__u8 bHeaderLength;
	__u8 bControlSize;
	__u8 bSideBandProtocol;
} __attribute__((packed));


/* Formats - Audio Data Format Type I Codes */

#define UAC_FORMAT_TYPE_II_MPEG	0x1001
#define UAC_FORMAT_TYPE_II_AC3	0x1002

struct uac_format_type_ii_discrete_descriptor {
	__u8 bLength;
	__u8 bDescriptorType;
	__u8 bDescriptorSubtype;
	__u8 bFormatType;
	__le16 wMaxBitRate;
	__le16 wSamplesPerFrame;
	__u8 bSamFreqType;
	__u8 tSamFreq[][3];
} __attribute__((packed));

struct uac_format_type_ii_ext_descriptor {
	__u8 bLength;
	__u8 bDescriptorType;
	__u8 bDescriptorSubtype;
	__u8 bFormatType;
	__u16 wMaxBitRate;
	__u16 wSamplesPerFrame;
	__u8 bHeaderLength;
	__u8 bSideBandProtocol;
} __attribute__((packed));

/* type III */
#define UAC_FORMAT_TYPE_III_IEC1937_AC3	0x2001
#define UAC_FORMAT_TYPE_III_IEC1937_MPEG1_LAYER1	0x2002
#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_NOEXT	0x2003
#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_EXT	0x2004
#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_LAYER1_LS	0x2005
#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_LAYER23_LS	0x2006

/* Formats - A.2 Format Type Codes */
#define UAC_FORMAT_TYPE_UNDEFINED	0x0
#define UAC_FORMAT_TYPE_I		0x1
#define UAC_FORMAT_TYPE_II		0x2
#define UAC_FORMAT_TYPE_III		0x3
#define UAC_EXT_FORMAT_TYPE_I		0x81
#define UAC_EXT_FORMAT_TYPE_II		0x82
#define UAC_EXT_FORMAT_TYPE_III		0x83

struct uac_iso_endpoint_descriptor {
	__u8  bLength;			/* in bytes: 7 */
@@ -252,7 +336,31 @@ struct uac_iso_endpoint_descriptor {
#define UAC_EP_CS_ATTR_PITCH_CONTROL	0x02
#define UAC_EP_CS_ATTR_FILL_MAX		0x80

/* Audio class v2.0: CLOCK_SOURCE descriptor */

struct uac_clock_source_descriptor {
	__u8 bLength;
	__u8 bDescriptorType;
	__u8 bDescriptorSubtype;
	__u8 bClockID;
	__u8 bmAttributes;
	__u8 bmControls;
	__u8 bAssocTerminal;
	__u8 iClockSource;
} __attribute__((packed));

/* A.10.2 Feature Unit Control Selectors */

struct uac_feature_unit_descriptor {
	__u8 bLength;
	__u8 bDescriptorType;
	__u8 bDescriptorSubtype;
	__u8 bUnitID;
	__u8 bSourceID;
	__u8 bControlSize;
	__u8 controls[0]; /* variable length */
} __attribute__((packed));

#define UAC_FU_CONTROL_UNDEFINED	0x00
#define UAC_MUTE_CONTROL		0x01
#define UAC_VOLUME_CONTROL		0x02
+1 −1
Original line number Diff line number Diff line
@@ -544,7 +544,7 @@ struct snd_rawmidi_status {
 *  Timer section - /dev/snd/timer
 */

#define SNDRV_TIMER_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 5)
#define SNDRV_TIMER_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 6)

enum {
	SNDRV_TIMER_CLASS_NONE = -1,
Loading