3
* This file is part of Open Sound System.
5
* Copyright (C) 4Front Technologies 1996-2008.
7
* This this source file is released under GPL v2 license (no other versions).
8
* See the COPYING file included in the main directory of this source
9
* distribution for the license terms and conditions.
12
/* Codec index is 0 */
13
/* Codec vendor 0804:7d10 */
14
/* HD codec revision 1.0 (0.1) (0x00100001) */
15
/* Subsystem ID 1043e601 */
16
/* Default amplifier caps: in=00000000, out=00000000 */
17
#include "oss_hdaudio_cfg.h"
19
#include "hdaudio_codec.h"
20
#include "hdaudio_dedicated.h"
23
hdaudio_scaleoP_mixer_init (int dev, hdaudio_mixer_t * mixer, int cad,
28
DDB (cmn_err (CE_CONT, "hdaudio_scaleoP_mixer_init got called.\n"));
30
HDA_OUTAMP_F (0x0c, top_group, "front", 90, MIXF_PCMVOL);
31
HDA_OUTAMP_F (0x0d, top_group, "rear", 90, MIXF_PCMVOL);
32
HDA_OUTAMP_F (0x0e, top_group, "center/LFE", 90, MIXF_PCMVOL);
33
HDA_OUTAMP_F (0x0f, top_group, "side", 90, MIXF_PCMVOL);
34
HDA_OUTAMP_F (0x26, top_group, "pcm4", 90, MIXF_PCMVOL);
37
* Unmute all inputs for the above sliders.
39
HDA_SET_INMUTE (0x0c, 0, UNMUTE); /* From widget 0x02 */
40
HDA_SET_INMUTE (0x0c, 1, UNMUTE); /* From widget 0x0b */
41
HDA_SET_INMUTE (0x0d, 0, UNMUTE); /* From widget 0x03 */
42
HDA_SET_INMUTE (0x0d, 1, UNMUTE); /* From widget 0x0b */
43
HDA_SET_INMUTE (0x0e, 0, UNMUTE); /* From widget 0x04 */
44
HDA_SET_INMUTE (0x0e, 1, UNMUTE); /* From widget 0x0b */
45
HDA_SET_INMUTE (0x0f, 0, UNMUTE); /* From widget 0x05 */
46
HDA_SET_INMUTE (0x0f, 1, UNMUTE); /* From widget 0x0b */
47
HDA_SET_INMUTE (0x26, 0, UNMUTE); /* From widget 0x25 */
48
HDA_SET_INMUTE (0x26, 1, UNMUTE); /* From widget 0x0b */
50
/* Handle ADC widgets */
52
int n, group, rec_group;
56
HDA_GROUP (rec_group, top_group, "record");
58
if (HDA_ADC_GROUP (0x08, group, rec_group, "rec1", n, "record", 2)) /* ADC widget 0x08 */
61
HDA_INAMP (0x08, 0, group, "-", 90); /* From widget 0x23 */
63
/* Widget 0x23 (mix) */
65
/* Src 0x19=fp-pink */
67
/* Src 0x1b=fp-green */
68
/* Src 0x1c=int-aux */
74
/* Src 0x0b=input-mix */
75
if (HDA_INSRC_SELECT (0x23, group, ctl, "recsrc", 10))
77
"pink fp-pink blue fp-green int-aux black green black orange grey input-mix");
80
if (HDA_ADC_GROUP (0x09, group, rec_group, "rec2", n, "record", 2)) /* ADC widget 0x09 */
83
HDA_INAMP (0x09, 0, group, "-", 90); /* From widget 0x22 */
85
/* Widget 0x22 (mix) */
87
/* Src 0x19=fp-pink */
89
/* Src 0x1b=fp-green */
90
/* Src 0x1c=int-aux */
96
/* Src 0xb=input-mix */
97
if (HDA_INSRC_SELECT (0x23, group, ctl, "recsrc", 10))
99
"pink fp-pink blue fp-green int-aux black green black orange grey input-mix");
103
if (HDA_ADC_GROUP (0x0a, group, rec_group, "spdif-in", n, "record", 4)) /* ADC widget 0x0a */
105
/* Src 0x1f=speaker */
109
/* Handle misc widgets */
115
HDA_GROUP (group, top_group, "input-mix");
118
/* Src 0x19=fp-mic */
119
/* Src 0x1a=linein */
120
/* Src 0x1b=fp-headphone */
121
/* Src 0x1c=int-aux */
122
/* Src 0x1d=speaker */
123
/* Src 0x14=lineout */
124
/* Src 0x15=lineout */
125
/* Src 0x16=lineout */
126
/* Src 0x17=lineout */
127
HDA_INAMP (0x0b, 0, group, "pink", 30); /* From widget 0x18 */
128
HDA_INAMP (0x0b, 2, group, "blue", 90); /* From widget 0x1a */
129
HDA_INAMP (0x0b, 4, group, "int-aux", 90); /* From widget 0x1c */
130
HDA_INAMP (0x0b, 5, group, "black", 90); /* From widget 0x1d */
131
HDA_INAMP (0x0b, 6, group, "green", 90); /* From widget 0x14 */
132
HDA_INAMP (0x0b, 7, group, "black", 90); /* From widget 0x15 */
133
HDA_INAMP (0x0b, 8, group, "orange", 90); /* From widget 0x16 */
134
HDA_INAMP (0x0b, 9, group, "grey", 90); /* From widget 0x17 */
135
HDA_INAMP (0x0b, 3, group, "fp-green", 90); /* From widget 0x1b */
136
HDA_INAMP (0x0b, 1, group, "fp-pink", 30); /* From widget 0x19 */
138
/* Handle PIN widgets */
140
int n, group, pin_group;
144
HDA_GROUP (pin_group, top_group, "jack");
146
if (HDA_PIN_GROUP (0x14, group, pin_group, "green", n, "jack", 4)) /* Pin widget 0x14 */
150
/* Src 0xe=center/LFE */
153
if (HDA_PINSELECT (0x14, ctl, group, "mode", -1))
155
"front-out rear-out center/LFE-out side-out pcm4-out input");
156
HDA_OUTMUTE (0x14, group, "inmute", UNMUTE);
157
HDA_INAMP (0x14, 0, group, "in", 90); /* From widget 0x0c */
160
if (HDA_PIN_GROUP (0x15, group, pin_group, "black", n, "jack", 4)) /* Pin widget 0x15 */
164
/* Src 0xe=center/LFE */
167
if (HDA_PINSELECT (0x15, ctl, group, "mode", -1))
169
"front-out rear-out center/LFE-out side-out pcm4-out input");
170
HDA_OUTMUTE (0x15, group, "inmute", UNMUTE);
171
HDA_INAMP (0x15, 0, group, "in", 90); /* From widget 0x0c */
174
if (HDA_PIN_GROUP (0x16, group, pin_group, "orange", n, "jack", 4)) /* Pin widget 0x16 */
178
/* Src 0xe=center/LFE */
181
if (HDA_PINSELECT (0x16, ctl, group, "mode", -1))
183
"front-out rear-out center/LFE-out side-out pcm4-out input");
184
HDA_OUTMUTE (0x16, group, "inmute", UNMUTE);
185
HDA_INAMP (0x16, 0, group, "in", 90); /* From widget 0x0c */
188
if (HDA_PIN_GROUP (0x17, group, pin_group, "grey", n, "jack", 4)) /* Pin widget 0x17 */
192
/* Src 0xe=center/LFE */
195
if (HDA_PINSELECT (0x17, ctl, group, "mode", -1))
197
"front-out rear-out center/LFE-out side-out pcm4-out input");
198
HDA_OUTMUTE (0x17, group, "inmute", UNMUTE);
199
HDA_INAMP (0x17, 0, group, "in", 90); /* From widget 0x0c */
202
if (HDA_PIN_GROUP (0x18, group, pin_group, "pink", n, "jack", 4)) /* Pin widget 0x18 */
206
/* Src 0xe=center/LFE */
209
if (HDA_PINSELECT (0x18, ctl, group, "mode", -1))
211
"front-out rear-out center/LFE-out side-out pcm4-out input");
212
HDA_OUTMUTE (0x18, group, "inmute", UNMUTE);
213
HDA_INAMP (0x18, 0, group, "in", 90); /* From widget 0x0c */
216
if (HDA_PIN_GROUP (0x1a, group, pin_group, "blue", n, "jack", 4)) /* Pin widget 0x1a */
220
/* Src 0xe=center/LFE */
223
if (HDA_PINSELECT (0x1a, ctl, group, "mode", -1))
225
"front-out rear-out center/LFE-out side-out pcm4-out input");
226
HDA_OUTMUTE (0x1a, group, "inmute", UNMUTE);
227
HDA_INAMP (0x1a, 0, group, "in", 90); /* From widget 0x0c */
230
if (HDA_PIN_GROUP (0x1b, group, pin_group, "fp-green", n, "jack", 4)) /* Pin widget 0x1b */
234
/* Src 0xe=center/LFE */
237
if (HDA_PINSELECT (0x1b, ctl, group, "mode", -1))
239
"front-out rear-out center/LFE-out side-out pcm4-out input");
240
HDA_OUTMUTE (0x1b, group, "inmute", UNMUTE);
241
HDA_INAMP (0x1b, 0, group, "in", 90); /* From widget 0x0c */
244
if (HDA_PIN_GROUP (0x19, group, pin_group, "fp-pink", n, "jack", 4)) /* Pin widget 0x19 */
248
/* Src 0xe=center/LFE */
251
if (HDA_PINSELECT (0x19, ctl, group, "mode", -1))
253
"front-out rear-out center/LFE-out side-out pcm4-out input");
254
HDA_OUTMUTE (0x19, group, "inmute", UNMUTE);
255
HDA_INAMP (0x19, 0, group, "in", 90); /* From widget 0x0c */
262
if (HDA_PIN_GROUP (0x1c, group, pin_group, "int-aux", n, "jack", 4)) /* Pin widget 0x1c */
264
if (HDA_PINSELECT (0x1c, ctl, group, "mode", -1))
265
HDA_CHOICES (ctl, "input");
268
if (HDA_PIN_GROUP (0x1d, group, pin_group, "black", n, "jack", 4)) /* Pin widget 0x1d */
270
if (HDA_PINSELECT (0x1d, ctl, group, "mode", -1))
271
HDA_CHOICES (ctl, "input");