aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/DocBook/writing-an-alsa-driver.tmpl36
-rw-r--r--Documentation/devicetree/bindings/sound/soc/codecs/fsl-sgtl5000.txt11
-rw-r--r--Documentation/devicetree/bindings/sound/wm8510.txt18
-rw-r--r--Documentation/devicetree/bindings/sound/wm8523.txt16
-rw-r--r--Documentation/devicetree/bindings/sound/wm8580.txt16
-rw-r--r--Documentation/devicetree/bindings/sound/wm8711.txt18
-rw-r--r--Documentation/devicetree/bindings/sound/wm8728.txt18
-rw-r--r--Documentation/devicetree/bindings/sound/wm8731.txt18
-rw-r--r--Documentation/devicetree/bindings/sound/wm8737.txt18
-rw-r--r--Documentation/devicetree/bindings/sound/wm8741.txt18
-rw-r--r--Documentation/devicetree/bindings/sound/wm8750.txt18
-rw-r--r--Documentation/devicetree/bindings/sound/wm8753.txt18
-rw-r--r--Documentation/devicetree/bindings/sound/wm8770.txt16
-rw-r--r--Documentation/devicetree/bindings/sound/wm8776.txt18
-rw-r--r--Documentation/devicetree/bindings/sound/wm8804.txt18
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt6
-rw-r--r--Documentation/sound/alsa/HD-Audio-Controls.txt16
-rw-r--r--Documentation/sound/alsa/HD-Audio-Models.txt67
-rw-r--r--Documentation/sound/alsa/HD-Audio.txt55
19 files changed, 339 insertions, 80 deletions
diff --git a/Documentation/DocBook/writing-an-alsa-driver.tmpl b/Documentation/DocBook/writing-an-alsa-driver.tmpl
index 598c22f3b3ac..5de23c007078 100644
--- a/Documentation/DocBook/writing-an-alsa-driver.tmpl
+++ b/Documentation/DocBook/writing-an-alsa-driver.tmpl
@@ -4288,7 +4288,7 @@ struct _snd_pcm_runtime {
4288<![CDATA[ 4288<![CDATA[
4289 struct snd_rawmidi *rmidi; 4289 struct snd_rawmidi *rmidi;
4290 snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401, port, info_flags, 4290 snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401, port, info_flags,
4291 irq, irq_flags, &rmidi); 4291 irq, &rmidi);
4292]]> 4292]]>
4293 </programlisting> 4293 </programlisting>
4294 </informalexample> 4294 </informalexample>
@@ -4343,6 +4343,13 @@ struct _snd_pcm_runtime {
4343 by itself to start processing the output stream in the irq handler. 4343 by itself to start processing the output stream in the irq handler.
4344 </para> 4344 </para>
4345 4345
4346 <para>
4347 If the MPU-401 interface shares its interrupt with the other logical
4348 devices on the card, set <constant>MPU401_INFO_IRQ_HOOK</constant>
4349 (see <link linkend="midi-interface-interrupt-handler"><citetitle>
4350 below</citetitle></link>).
4351 </para>
4352
4346 <para> 4353 <para>
4347 Usually, the port address corresponds to the command port and 4354 Usually, the port address corresponds to the command port and
4348 port + 1 corresponds to the data port. If not, you may change 4355 port + 1 corresponds to the data port. If not, you may change
@@ -4375,14 +4382,12 @@ struct _snd_pcm_runtime {
4375 </para> 4382 </para>
4376 4383
4377 <para> 4384 <para>
4378 The 6th argument specifies the irq number for UART. If the irq 4385 The 6th argument specifies the ISA irq number that will be
4379 is already allocated, pass 0 to the 7th argument 4386 allocated. If no interrupt is to be allocated (because your
4380 (<parameter>irq_flags</parameter>). Otherwise, pass the flags 4387 code is already allocating a shared interrupt, or because the
4381 for irq allocation 4388 device does not use interrupts), pass -1 instead.
4382 (<constant>SA_XXX</constant> bits) to it, and the irq will be 4389 For a MPU-401 device without an interrupt, a polling timer
4383 reserved by the mpu401-uart layer. If the card doesn't generate 4390 will be used instead.
4384 UART interrupts, pass -1 as the irq number. Then a timer
4385 interrupt will be invoked for polling.
4386 </para> 4391 </para>
4387 </section> 4392 </section>
4388 4393
@@ -4390,12 +4395,13 @@ struct _snd_pcm_runtime {
4390 <title>Interrupt Handler</title> 4395 <title>Interrupt Handler</title>
4391 <para> 4396 <para>
4392 When the interrupt is allocated in 4397 When the interrupt is allocated in
4393 <function>snd_mpu401_uart_new()</function>, the private 4398 <function>snd_mpu401_uart_new()</function>, an exclusive ISA
4394 interrupt handler is used, hence you don't have anything else to do 4399 interrupt handler is automatically used, hence you don't have
4395 than creating the mpu401 stuff. Otherwise, you have to call 4400 anything else to do than creating the mpu401 stuff. Otherwise, you
4396 <function>snd_mpu401_uart_interrupt()</function> explicitly when 4401 have to set <constant>MPU401_INFO_IRQ_HOOK</constant>, and call
4397 a UART interrupt is invoked and checked in your own interrupt 4402 <function>snd_mpu401_uart_interrupt()</function> explicitly from your
4398 handler. 4403 own interrupt handler when it has determined that a UART interrupt
4404 has occurred.
4399 </para> 4405 </para>
4400 4406
4401 <para> 4407 <para>
diff --git a/Documentation/devicetree/bindings/sound/soc/codecs/fsl-sgtl5000.txt b/Documentation/devicetree/bindings/sound/soc/codecs/fsl-sgtl5000.txt
new file mode 100644
index 000000000000..2c3cd413f042
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/soc/codecs/fsl-sgtl5000.txt
@@ -0,0 +1,11 @@
1* Freescale SGTL5000 Stereo Codec
2
3Required properties:
4- compatible : "fsl,sgtl5000".
5
6Example:
7
8codec: sgtl5000@0a {
9 compatible = "fsl,sgtl5000";
10 reg = <0x0a>;
11};
diff --git a/Documentation/devicetree/bindings/sound/wm8510.txt b/Documentation/devicetree/bindings/sound/wm8510.txt
new file mode 100644
index 000000000000..fa1a32b85577
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8510.txt
@@ -0,0 +1,18 @@
1WM8510 audio CODEC
2
3This device supports both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm8510"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8510@1a {
16 compatible = "wlf,wm8510";
17 reg = <0x1a>;
18};
diff --git a/Documentation/devicetree/bindings/sound/wm8523.txt b/Documentation/devicetree/bindings/sound/wm8523.txt
new file mode 100644
index 000000000000..04746186b283
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8523.txt
@@ -0,0 +1,16 @@
1WM8523 audio CODEC
2
3This device supports I2C only.
4
5Required properties:
6
7 - compatible : "wlf,wm8523"
8
9 - reg : the I2C address of the device.
10
11Example:
12
13codec: wm8523@1a {
14 compatible = "wlf,wm8523";
15 reg = <0x1a>;
16};
diff --git a/Documentation/devicetree/bindings/sound/wm8580.txt b/Documentation/devicetree/bindings/sound/wm8580.txt
new file mode 100644
index 000000000000..7d9821f348da
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8580.txt
@@ -0,0 +1,16 @@
1WM8580 audio CODEC
2
3This device supports I2C only.
4
5Required properties:
6
7 - compatible : "wlf,wm8580"
8
9 - reg : the I2C address of the device.
10
11Example:
12
13codec: wm8580@1a {
14 compatible = "wlf,wm8580";
15 reg = <0x1a>;
16};
diff --git a/Documentation/devicetree/bindings/sound/wm8711.txt b/Documentation/devicetree/bindings/sound/wm8711.txt
new file mode 100644
index 000000000000..8ed9998cd23c
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8711.txt
@@ -0,0 +1,18 @@
1WM8711 audio CODEC
2
3This device supports both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm8711"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8711@1a {
16 compatible = "wlf,wm8711";
17 reg = <0x1a>;
18};
diff --git a/Documentation/devicetree/bindings/sound/wm8728.txt b/Documentation/devicetree/bindings/sound/wm8728.txt
new file mode 100644
index 000000000000..a8b5c3668e60
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8728.txt
@@ -0,0 +1,18 @@
1WM8728 audio CODEC
2
3This device supports both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm8728"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8728@1a {
16 compatible = "wlf,wm8728";
17 reg = <0x1a>;
18};
diff --git a/Documentation/devicetree/bindings/sound/wm8731.txt b/Documentation/devicetree/bindings/sound/wm8731.txt
new file mode 100644
index 000000000000..15f70048469b
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8731.txt
@@ -0,0 +1,18 @@
1WM8731 audio CODEC
2
3This device supports both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm8731"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8731@1a {
16 compatible = "wlf,wm8731";
17 reg = <0x1a>;
18};
diff --git a/Documentation/devicetree/bindings/sound/wm8737.txt b/Documentation/devicetree/bindings/sound/wm8737.txt
new file mode 100644
index 000000000000..4bc2cea3b140
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8737.txt
@@ -0,0 +1,18 @@
1WM8737 audio CODEC
2
3This device supports both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm8737"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8737@1a {
16 compatible = "wlf,wm8737";
17 reg = <0x1a>;
18};
diff --git a/Documentation/devicetree/bindings/sound/wm8741.txt b/Documentation/devicetree/bindings/sound/wm8741.txt
new file mode 100644
index 000000000000..74bda58c1bcf
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8741.txt
@@ -0,0 +1,18 @@
1WM8741 audio CODEC
2
3This device supports both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm8741"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8741@1a {
16 compatible = "wlf,wm8741";
17 reg = <0x1a>;
18};
diff --git a/Documentation/devicetree/bindings/sound/wm8750.txt b/Documentation/devicetree/bindings/sound/wm8750.txt
new file mode 100644
index 000000000000..8db239fd5ecd
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8750.txt
@@ -0,0 +1,18 @@
1WM8750 and WM8987 audio CODECs
2
3These devices support both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm8750" or "wlf,wm8987"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8750@1a {
16 compatible = "wlf,wm8750";
17 reg = <0x1a>;
18};
diff --git a/Documentation/devicetree/bindings/sound/wm8753.txt b/Documentation/devicetree/bindings/sound/wm8753.txt
new file mode 100644
index 000000000000..e65277a0fb60
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8753.txt
@@ -0,0 +1,18 @@
1WM8753 audio CODEC
2
3This device supports both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm8753"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8737@1a {
16 compatible = "wlf,wm8753";
17 reg = <0x1a>;
18};
diff --git a/Documentation/devicetree/bindings/sound/wm8770.txt b/Documentation/devicetree/bindings/sound/wm8770.txt
new file mode 100644
index 000000000000..866e00ca150b
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8770.txt
@@ -0,0 +1,16 @@
1WM8770 audio CODEC
2
3This device supports SPI.
4
5Required properties:
6
7 - compatible : "wlf,wm8770"
8
9 - reg : the chip select number.
10
11Example:
12
13codec: wm8770@1 {
14 compatible = "wlf,wm8770";
15 reg = <1>;
16};
diff --git a/Documentation/devicetree/bindings/sound/wm8776.txt b/Documentation/devicetree/bindings/sound/wm8776.txt
new file mode 100644
index 000000000000..3b9ca49abc2b
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8776.txt
@@ -0,0 +1,18 @@
1WM8776 audio CODEC
2
3This device supports both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm8776"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8776@1a {
16 compatible = "wlf,wm8776";
17 reg = <0x1a>;
18};
diff --git a/Documentation/devicetree/bindings/sound/wm8804.txt b/Documentation/devicetree/bindings/sound/wm8804.txt
new file mode 100644
index 000000000000..4d3a56f38adc
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8804.txt
@@ -0,0 +1,18 @@
1WM8804 audio CODEC
2
3This device supports both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm8804"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8804@1a {
16 compatible = "wlf,wm8804";
17 reg = <0x1a>;
18};
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index 89757012c7ff..936699e4f04b 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -886,6 +886,12 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
886 disable) 886 disable)
887 power_save_controller - Reset HD-audio controller in power-saving mode 887 power_save_controller - Reset HD-audio controller in power-saving mode
888 (default = on) 888 (default = on)
889 align_buffer_size - Force rounding of buffer/period sizes to multiples
890 of 128 bytes. This is more efficient in terms of memory
891 access but isn't required by the HDA spec and prevents
892 users from specifying exact period/buffer sizes.
893 (default = on)
894 snoop - Enable/disable snooping (default = on)
889 895
890 This module supports multiple cards and autoprobe. 896 This module supports multiple cards and autoprobe.
891 897
diff --git a/Documentation/sound/alsa/HD-Audio-Controls.txt b/Documentation/sound/alsa/HD-Audio-Controls.txt
index 1482035243e6..e9621e349e17 100644
--- a/Documentation/sound/alsa/HD-Audio-Controls.txt
+++ b/Documentation/sound/alsa/HD-Audio-Controls.txt
@@ -98,3 +98,19 @@ Conexant codecs
98 98
99* Auto-Mute Mode 99* Auto-Mute Mode
100 See Reatek codecs. 100 See Reatek codecs.
101
102
103Analog codecs
104--------------
105
106* Channel Mode
107 This is an enum control to change the surround-channel setup,
108 appears only when the surround channels are available.
109 It gives the number of channels to be used, "2ch", "4ch" and "6ch".
110 According to the configuration, this also controls the
111 jack-retasking of multi-I/O jacks.
112
113* Independent HP
114 When this enum control is enabled, the headphone output is routed
115 from an individual stream (the third PCM such as hw:0,2) instead of
116 the primary stream.
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt
index d70c93bdcadf..4f3443230d89 100644
--- a/Documentation/sound/alsa/HD-Audio-Models.txt
+++ b/Documentation/sound/alsa/HD-Audio-Models.txt
@@ -29,9 +29,6 @@ ALC880
29 29
30ALC260 30ALC260
31====== 31======
32 hp HP machines
33 hp-3013 HP machines (3013-variant)
34 hp-dc7600 HP DC7600
35 fujitsu Fujitsu S7020 32 fujitsu Fujitsu S7020
36 acer Acer TravelMate 33 acer Acer TravelMate
37 will Will laptops (PB V7900) 34 will Will laptops (PB V7900)
@@ -46,15 +43,10 @@ ALC260
46ALC262 43ALC262
47====== 44======
48 fujitsu Fujitsu Laptop 45 fujitsu Fujitsu Laptop
49 hp-bpc HP xw4400/6400/8400/9400 laptops
50 hp-bpc-d7000 HP BPC D7000
51 hp-tc-t5735 HP Thin Client T5735
52 hp-rp5700 HP RP5700
53 benq Benq ED8 46 benq Benq ED8
54 benq-t31 Benq T31 47 benq-t31 Benq T31
55 hippo Hippo (ATI) with jack detection, Sony UX-90s 48 hippo Hippo (ATI) with jack detection, Sony UX-90s
56 hippo_1 Hippo (Benq) with jack detection 49 hippo_1 Hippo (Benq) with jack detection
57 sony-assamd Sony ASSAMD
58 toshiba-s06 Toshiba S06 50 toshiba-s06 Toshiba S06
59 toshiba-rx1 Toshiba RX1 51 toshiba-rx1 Toshiba RX1
60 tyan Tyan Thunder n6650W (S2915-E) 52 tyan Tyan Thunder n6650W (S2915-E)
@@ -66,43 +58,15 @@ ALC262
66 58
67ALC267/268 59ALC267/268
68========== 60==========
69 quanta-il1 Quanta IL1 mini-notebook 61 N/A
70 3stack 3-stack model
71 toshiba Toshiba A205
72 acer Acer laptops
73 acer-dmic Acer laptops with digital-mic
74 acer-aspire Acer Aspire One
75 dell Dell OEM laptops (Vostro 1200)
76 zepto Zepto laptops
77 test for testing/debugging purpose, almost all controls can
78 adjusted. Appearing only when compiled with
79 $CONFIG_SND_DEBUG=y
80 auto auto-config reading BIOS (default)
81 62
82ALC269 63ALC269
83====== 64======
84 basic Basic preset
85 quanta Quanta FL1
86 laptop-amic Laptops with analog-mic input 65 laptop-amic Laptops with analog-mic input
87 laptop-dmic Laptops with digital-mic input 66 laptop-dmic Laptops with digital-mic input
88 fujitsu FSC Amilo
89 lifebook Fujitsu Lifebook S6420
90 auto auto-config reading BIOS (default)
91 67
92ALC662/663/272 68ALC662/663/272
93============== 69==============
94 3stack-dig 3-stack (2-channel) with SPDIF
95 3stack-6ch 3-stack (6-channel)
96 3stack-6ch-dig 3-stack (6-channel) with SPDIF
97 5stack-dig 5-stack with SPDIF
98 lenovo-101e Lenovo laptop
99 eeepc-p701 ASUS Eeepc P701
100 eeepc-ep20 ASUS Eeepc EP20
101 ecs ECS/Foxconn mobo
102 m51va ASUS M51VA
103 g71v ASUS G71V
104 h13 ASUS H13
105 g50v ASUS G50V
106 asus-mode1 ASUS 70 asus-mode1 ASUS
107 asus-mode2 ASUS 71 asus-mode2 ASUS
108 asus-mode3 ASUS 72 asus-mode3 ASUS
@@ -111,15 +75,10 @@ ALC662/663/272
111 asus-mode6 ASUS 75 asus-mode6 ASUS
112 asus-mode7 ASUS 76 asus-mode7 ASUS
113 asus-mode8 ASUS 77 asus-mode8 ASUS
114 dell Dell with ALC272
115 dell-zm1 Dell ZM1 with ALC272
116 samsung-nc10 Samsung NC10 mini notebook
117 auto auto-config reading BIOS (default)
118 78
119ALC680 79ALC680
120====== 80======
121 base Base model (ASUS NX90) 81 N/A
122 auto auto-config reading BIOS (default)
123 82
124ALC882/883/885/888/889 83ALC882/883/885/888/889
125====================== 84======================
@@ -175,28 +134,11 @@ ALC882/883/885/888/889
175 134
176ALC861/660 135ALC861/660
177========== 136==========
178 3stack 3-jack 137 N/A
179 3stack-dig 3-jack with SPDIF I/O
180 6stack-dig 6-jack with SPDIF I/O
181 3stack-660 3-jack (for ALC660)
182 uniwill-m31 Uniwill M31 laptop
183 toshiba Toshiba laptop support
184 asus Asus laptop support
185 asus-laptop ASUS F2/F3 laptops
186 auto auto-config reading BIOS (default)
187 138
188ALC861VD/660VD 139ALC861VD/660VD
189============== 140==============
190 3stack 3-jack 141 N/A
191 3stack-dig 3-jack with SPDIF OUT
192 6stack-dig 6-jack with SPDIF OUT
193 3stack-660 3-jack (for ALC660VD)
194 3stack-660-digout 3-jack with SPDIF OUT (for ALC660VD)
195 lenovo Lenovo 3000 C200
196 dallas Dallas laptops
197 hp HP TX1000
198 asus-v1s ASUS V1Sn
199 auto auto-config reading BIOS (default)
200 142
201CMI9880 143CMI9880
202======= 144=======
@@ -289,7 +231,6 @@ Conexant 5051
289 hp-dv6736 HP dv6736 231 hp-dv6736 HP dv6736
290 hp-f700 HP Compaq Presario F700 232 hp-f700 HP Compaq Presario F700
291 ideapad Lenovo IdeaPad laptop 233 ideapad Lenovo IdeaPad laptop
292 lenovo-x200 Lenovo X200 laptop
293 toshiba Toshiba Satellite M300 234 toshiba Toshiba Satellite M300
294 235
295Conexant 5066 236Conexant 5066
diff --git a/Documentation/sound/alsa/HD-Audio.txt b/Documentation/sound/alsa/HD-Audio.txt
index c82beb007634..03e2771ddeef 100644
--- a/Documentation/sound/alsa/HD-Audio.txt
+++ b/Documentation/sound/alsa/HD-Audio.txt
@@ -447,7 +447,10 @@ The file needs to have a line `[codec]`. The next line should contain
447three numbers indicating the codec vendor-id (0x12345678 in the 447three numbers indicating the codec vendor-id (0x12345678 in the
448example), the codec subsystem-id (0xabcd1234) and the address (2) of 448example), the codec subsystem-id (0xabcd1234) and the address (2) of
449the codec. The rest patch entries are applied to this specified codec 449the codec. The rest patch entries are applied to this specified codec
450until another codec entry is given. 450until another codec entry is given. Passing 0 or a negative number to
451the first or the second value will make the check of the corresponding
452field be skipped. It'll be useful for really broken devices that don't
453initialize SSID properly.
451 454
452The `[model]` line allows to change the model name of the each codec. 455The `[model]` line allows to change the model name of the each codec.
453In the example above, it will be changed to model=auto. 456In the example above, it will be changed to model=auto.
@@ -491,7 +494,7 @@ Also, the codec chip name can be rewritten via `[chip_name]` line.
491The hd-audio driver reads the file via request_firmware(). Thus, 494The hd-audio driver reads the file via request_firmware(). Thus,
492a patch file has to be located on the appropriate firmware path, 495a patch file has to be located on the appropriate firmware path,
493typically, /lib/firmware. For example, when you pass the option 496typically, /lib/firmware. For example, when you pass the option
494`patch=hda-init.fw`, the file /lib/firmware/hda-init-fw must be 497`patch=hda-init.fw`, the file /lib/firmware/hda-init.fw must be
495present. 498present.
496 499
497The patch module option is specific to each card instance, and you 500The patch module option is specific to each card instance, and you
@@ -524,6 +527,54 @@ power-saving. See /sys/module/snd_hda_intel/parameters/power_save to
524check the current value. If it's non-zero, the feature is turned on. 527check the current value. If it's non-zero, the feature is turned on.
525 528
526 529
530Tracepoints
531~~~~~~~~~~~
532The hd-audio driver gives a few basic tracepoints.
533`hda:hda_send_cmd` traces each CORB write while `hda:hda_get_response`
534traces the response from RIRB (only when read from the codec driver).
535`hda:hda_bus_reset` traces the bus-reset due to fatal error, etc,
536`hda:hda_unsol_event` traces the unsolicited events, and
537`hda:hda_power_down` and `hda:hda_power_up` trace the power down/up
538via power-saving behavior.
539
540Enabling all tracepoints can be done like
541------------------------------------------------------------------------
542 # echo 1 > /sys/kernel/debug/tracing/events/hda/enable
543------------------------------------------------------------------------
544then after some commands, you can traces from
545/sys/kernel/debug/tracing/trace file. For example, when you want to
546trace what codec command is sent, enable the tracepoint like:
547------------------------------------------------------------------------
548 # cat /sys/kernel/debug/tracing/trace
549 # tracer: nop
550 #
551 # TASK-PID CPU# TIMESTAMP FUNCTION
552 # | | | | |
553 <...>-7807 [002] 105147.774889: hda_send_cmd: [0:0] val=e3a019
554 <...>-7807 [002] 105147.774893: hda_send_cmd: [0:0] val=e39019
555 <...>-7807 [002] 105147.999542: hda_send_cmd: [0:0] val=e3a01a
556 <...>-7807 [002] 105147.999543: hda_send_cmd: [0:0] val=e3901a
557 <...>-26764 [001] 349222.837143: hda_send_cmd: [0:0] val=e3a019
558 <...>-26764 [001] 349222.837148: hda_send_cmd: [0:0] val=e39019
559 <...>-26764 [001] 349223.058539: hda_send_cmd: [0:0] val=e3a01a
560 <...>-26764 [001] 349223.058541: hda_send_cmd: [0:0] val=e3901a
561------------------------------------------------------------------------
562Here `[0:0]` indicates the card number and the codec address, and
563`val` shows the value sent to the codec, respectively. The value is
564a packed value, and you can decode it via hda-decode-verb program
565included in hda-emu package below. For example, the value e3a019 is
566to set the left output-amp value to 25.
567------------------------------------------------------------------------
568 % hda-decode-verb 0xe3a019
569 raw value = 0x00e3a019
570 cid = 0, nid = 0x0e, verb = 0x3a0, parm = 0x19
571 raw value: verb = 0x3a0, parm = 0x19
572 verbname = set_amp_gain_mute
573 amp raw val = 0xa019
574 output, left, idx=0, mute=0, val=25
575------------------------------------------------------------------------
576
577
527Development Tree 578Development Tree
528~~~~~~~~~~~~~~~~ 579~~~~~~~~~~~~~~~~
529The latest development codes for HD-audio are found on sound git tree: 580The latest development codes for HD-audio are found on sound git tree: