1#
2# Configuration for the Intel HD audio (ICH6/ICH7)
3#
4
5<confdir:pcm/front.conf>
6
7HDA-Intel.pcm.front.0 {
8	@args [ CARD ]
9	@args.CARD {
10		type string
11	}
12	type asym
13	playback.pcm {
14		type softvol
15		slave.pcm {
16			type hw
17			card $CARD
18			subdevice 0
19		}
20		control {
21			name "PCM Playback Volume"
22			card $CARD
23		}
24	}
25	capture.pcm {
26		type hw
27		card $CARD
28	}
29}	
30
31# default with dmix+softvol & dsnoop
32HDA-Intel.pcm.default {
33	@args [ CARD ]
34	@args.CARD {
35		type string
36	}
37	type asym
38	playback.pcm {
39		type plug
40		slave.pcm {
41			type softvol
42			slave.pcm {
43				@func concat
44				strings [ "dmix:" $CARD ]
45			}
46			control {
47				name "PCM Playback Volume"
48				card $CARD
49			}
50		}
51	}
52	capture.pcm {
53		type plug
54		slave.pcm {
55			type softvol
56			slave.pcm {
57				@func concat
58				strings [ "dsnoop:" $CARD ]
59			}
60			control {
61				name "Digital Capture Volume"
62				card $CARD
63			}
64			min_dB -30.0
65			max_dB 30.0
66			resolution 121
67		}
68		# to avoid possible phase inversions with digital mics
69		route_policy copy
70	}
71	hint.device 0
72}
73
74<confdir:pcm/surround40.conf>
75<confdir:pcm/surround41.conf>
76<confdir:pcm/surround50.conf>
77<confdir:pcm/surround51.conf>
78<confdir:pcm/surround71.conf>
79
80HDA-Intel.pcm.surround40.0 cards.HDA-Intel.pcm.front.0
81HDA-Intel.pcm.surround51.0 cards.HDA-Intel.pcm.front.0
82HDA-Intel.pcm.surround71.0 cards.HDA-Intel.pcm.front.0
83
84<confdir:pcm/iec958.conf>
85
86HDA-Intel.pcm.iec958.0 {
87	@args [ CARD AES0 AES1 AES2 AES3 ]
88	@args.CARD {
89		type string
90	}
91	@args.AES0 {
92		type integer
93	}
94	@args.AES1 {
95		type integer
96	}
97	@args.AES2 {
98		type integer
99	}
100	@args.AES3 {
101		type integer
102	}
103	type asym
104	playback.pcm {
105		type hooks
106		slave.pcm {
107			type hw
108			card $CARD
109			device 1
110		}
111		hooks.0 {
112			type ctl_elems
113			hook_args [
114			{
115				name "IEC958 Playback Default"
116				lock true
117				preserve true
118				value [ $AES0 $AES1 $AES2 $AES3 ]
119			}
120			{
121				name "IEC958 Playback Switch"
122				value true
123			}
124			]
125		}
126	}
127	capture.pcm {
128		type hooks
129		slave.pcm {
130			type hw
131			card $CARD
132			device 1
133		}
134		hooks.0 {
135			type ctl_elems
136			hook_args [
137			{
138				name "IEC958 Capture Switch"
139				lock true
140				preserve true
141				value true
142			}
143			]
144		}
145	}
146	hint.device 1
147}
148
149<confdir:pcm/hdmi.conf>
150
151HDA-Intel.pcm.hdmi.common {
152	@args [ CARD DEVICE CTLINDEX AES0 AES1 AES2 AES3 ]
153	@args.CARD {
154		type string
155	}
156	@args.DEVICE {
157		type integer
158	}
159	@args.CTLINDEX {
160		type integer
161	}
162	@args.AES0 {
163		type integer
164	}
165	@args.AES1 {
166		type integer
167	}
168	@args.AES2 {
169		type integer
170	}
171	@args.AES3 {
172		type integer
173	}
174	type hooks
175	slave.pcm {
176		type hw
177		card $CARD
178		device $DEVICE
179	}
180	hooks.0 {
181		type ctl_elems
182		hook_args [
183		{
184			name "IEC958 Playback Default"
185			index $CTLINDEX
186			lock true
187			preserve true
188			value [ $AES0 $AES1 $AES2 $AES3 ]
189		}
190		{
191			name "IEC958 Playback Switch"
192			index $CTLINDEX
193			value true
194		}
195		]
196	}
197	hint.device $DEVICE
198}
199
200HDA-Intel.pcm.hdmi.0 {
201	@args [ CARD AES0 AES1 AES2 AES3 ]
202	@args.CARD { type string }
203	@args.AES0 { type integer }
204	@args.AES1 { type integer }
205	@args.AES2 { type integer }
206	@args.AES3 { type integer }
207	@func refer
208	name {
209		@func concat
210		strings [
211			"cards.HDA-Intel.pcm.hdmi.common:"
212			"CARD=" $CARD ","
213			"DEVICE=3,"
214			"CTLINDEX=0,"
215			"AES0=" $AES0 ","
216			"AES1=" $AES1 ","
217			"AES2=" $AES2 ","
218			"AES3=" $AES3
219		]
220	}
221}
222
223HDA-Intel.pcm.hdmi.1 {
224	@args [ CARD AES0 AES1 AES2 AES3 ]
225	@args.CARD { type string }
226	@args.AES0 { type integer }
227	@args.AES1 { type integer }
228	@args.AES2 { type integer }
229	@args.AES3 { type integer }
230	@func refer
231	name {
232		@func concat
233		strings [
234			"cards.HDA-Intel.pcm.hdmi.common:"
235			"CARD=" $CARD ","
236			"DEVICE=7,"
237			"CTLINDEX=1,"
238			"AES0=" $AES0 ","
239			"AES1=" $AES1 ","
240			"AES2=" $AES2 ","
241			"AES3=" $AES3
242		]
243	}
244}
245
246HDA-Intel.pcm.hdmi.2 {
247	@args [ CARD AES0 AES1 AES2 AES3 ]
248	@args.CARD { type string }
249	@args.AES0 { type integer }
250	@args.AES1 { type integer }
251	@args.AES2 { type integer }
252	@args.AES3 { type integer }
253	@func refer
254	name {
255		@func concat
256		strings [
257			"cards.HDA-Intel.pcm.hdmi.common:"
258			"CARD=" $CARD ","
259			"DEVICE=8,"
260			"CTLINDEX=2,"
261			"AES0=" $AES0 ","
262			"AES1=" $AES1 ","
263			"AES2=" $AES2 ","
264			"AES3=" $AES3
265		]
266	}
267}
268
269HDA-Intel.pcm.hdmi.3 {
270	@args [ CARD AES0 AES1 AES2 AES3 ]
271	@args.CARD { type string }
272	@args.AES0 { type integer }
273	@args.AES1 { type integer }
274	@args.AES2 { type integer }
275	@args.AES3 { type integer }
276	@func refer
277	name {
278		@func concat
279		strings [
280			"cards.HDA-Intel.pcm.hdmi.common:"
281			"CARD=" $CARD ","
282			"DEVICE=9,"
283			"CTLINDEX=3,"
284			"AES0=" $AES0 ","
285			"AES1=" $AES1 ","
286			"AES2=" $AES2 ","
287			"AES3=" $AES3
288		]
289	}
290}
291
292<confdir:pcm/modem.conf>
293
294HDA-Intel.pcm.modem.0 {
295	@args [ CARD ]
296	@args.CARD {
297		type string
298	}
299	type hw
300	card $CARD
301	device 6
302	hint.show off
303}
304