Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gsplhtlxg
clone-Linux
提交
321051f5
C
clone-Linux
项目概览
gsplhtlxg
/
clone-Linux
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
clone-Linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
321051f5
编写于
1月 18, 2011
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fix/hda' into for-linus
上级
d9ab3443
cbbf50b2
变更
13
展开全部
隐藏空白更改
内联
并排
Showing
13 changed file
with
497 addition
and
254 deletion
+497
-254
sound/pci/hda/hda_codec.c
sound/pci/hda/hda_codec.c
+5
-5
sound/pci/hda/hda_generic.c
sound/pci/hda/hda_generic.c
+4
-3
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_intel.c
+2
-0
sound/pci/hda/hda_local.h
sound/pci/hda/hda_local.h
+3
-3
sound/pci/hda/hda_proc.c
sound/pci/hda/hda_proc.c
+1
-1
sound/pci/hda/patch_analog.c
sound/pci/hda/patch_analog.c
+192
-16
sound/pci/hda/patch_cirrus.c
sound/pci/hda/patch_cirrus.c
+2
-2
sound/pci/hda/patch_cmedia.c
sound/pci/hda/patch_cmedia.c
+1
-1
sound/pci/hda/patch_conexant.c
sound/pci/hda/patch_conexant.c
+7
-7
sound/pci/hda/patch_hdmi.c
sound/pci/hda/patch_hdmi.c
+12
-0
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+220
-147
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_sigmatel.c
+28
-61
sound/pci/hda/patch_via.c
sound/pci/hda/patch_via.c
+20
-8
未找到文件。
sound/pci/hda/hda_codec.c
浏览文件 @
321051f5
...
...
@@ -2134,10 +2134,10 @@ int snd_hda_codec_reset(struct hda_codec *codec)
* This function returns zero if successful or a negative error code.
*/
int
snd_hda_add_vmaster
(
struct
hda_codec
*
codec
,
char
*
name
,
unsigned
int
*
tlv
,
const
char
**
slaves
)
unsigned
int
*
tlv
,
const
char
*
const
*
slaves
)
{
struct
snd_kcontrol
*
kctl
;
const
char
**
s
;
const
char
*
const
*
s
;
int
err
;
for
(
s
=
slaves
;
*
s
&&
!
snd_hda_find_mixer_ctl
(
codec
,
*
s
);
s
++
)
...
...
@@ -3689,7 +3689,7 @@ EXPORT_SYMBOL_HDA(snd_hda_build_pcms);
* If no entries are matching, the function returns a negative value.
*/
int
snd_hda_check_board_config
(
struct
hda_codec
*
codec
,
int
num_configs
,
const
char
**
models
,
int
num_configs
,
const
char
*
const
*
models
,
const
struct
snd_pci_quirk
*
tbl
)
{
if
(
codec
->
modelname
&&
models
)
{
...
...
@@ -3753,7 +3753,7 @@ EXPORT_SYMBOL_HDA(snd_hda_check_board_config);
* If no entries are matching, the function returns a negative value.
*/
int
snd_hda_check_board_codec_sid_config
(
struct
hda_codec
*
codec
,
int
num_configs
,
const
char
**
models
,
int
num_configs
,
const
char
*
const
*
models
,
const
struct
snd_pci_quirk
*
tbl
)
{
const
struct
snd_pci_quirk
*
q
;
...
...
@@ -4690,7 +4690,7 @@ const char *hda_get_input_pin_label(struct hda_codec *codec, hda_nid_t pin,
int
check_location
)
{
unsigned
int
def_conf
;
static
const
char
*
mic_names
[]
=
{
static
const
char
*
const
mic_names
[]
=
{
"Internal Mic"
,
"Dock Mic"
,
"Mic"
,
"Front Mic"
,
"Rear Mic"
,
};
int
attr
;
...
...
sound/pci/hda/hda_generic.c
浏览文件 @
321051f5
...
...
@@ -762,7 +762,8 @@ static int check_existing_control(struct hda_codec *codec, const char *type, con
/*
* build output mixer controls
*/
static
int
create_output_mixers
(
struct
hda_codec
*
codec
,
const
char
**
names
)
static
int
create_output_mixers
(
struct
hda_codec
*
codec
,
const
char
*
const
*
names
)
{
struct
hda_gspec
*
spec
=
codec
->
spec
;
int
i
,
err
;
...
...
@@ -780,8 +781,8 @@ static int create_output_mixers(struct hda_codec *codec, const char **names)
static
int
build_output_controls
(
struct
hda_codec
*
codec
)
{
struct
hda_gspec
*
spec
=
codec
->
spec
;
static
const
char
*
types_speaker
[]
=
{
"Speaker"
,
"Headphone"
};
static
const
char
*
types_line
[]
=
{
"Front"
,
"Headphone"
};
static
const
char
*
const
types_speaker
[]
=
{
"Speaker"
,
"Headphone"
};
static
const
char
*
const
types_line
[]
=
{
"Front"
,
"Headphone"
};
switch
(
spec
->
pcm_vol_nodes
)
{
case
1
:
...
...
sound/pci/hda/hda_intel.c
浏览文件 @
321051f5
...
...
@@ -2809,6 +2809,8 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = {
#endif
/* Vortex86MX */
{
PCI_DEVICE
(
0x17f3
,
0x3010
),
.
driver_data
=
AZX_DRIVER_GENERIC
},
/* VMware HDAudio */
{
PCI_DEVICE
(
0x15ad
,
0x1977
),
.
driver_data
=
AZX_DRIVER_GENERIC
},
/* AMD/ATI Generic, PCI class code and Vendor ID for HD Audio */
{
PCI_DEVICE
(
PCI_VENDOR_ID_ATI
,
PCI_ANY_ID
),
.
class
=
PCI_CLASS_MULTIMEDIA_HD_AUDIO
<<
8
,
...
...
sound/pci/hda/hda_local.h
浏览文件 @
321051f5
...
...
@@ -140,7 +140,7 @@ void snd_hda_set_vmaster_tlv(struct hda_codec *codec, hda_nid_t nid, int dir,
struct
snd_kcontrol
*
snd_hda_find_mixer_ctl
(
struct
hda_codec
*
codec
,
const
char
*
name
);
int
snd_hda_add_vmaster
(
struct
hda_codec
*
codec
,
char
*
name
,
unsigned
int
*
tlv
,
const
char
**
slaves
);
unsigned
int
*
tlv
,
const
char
*
const
*
slaves
);
int
snd_hda_codec_reset
(
struct
hda_codec
*
codec
);
/* amp value bits */
...
...
@@ -341,10 +341,10 @@ void snd_print_pcm_bits(int pcm, char *buf, int buflen);
* Misc
*/
int
snd_hda_check_board_config
(
struct
hda_codec
*
codec
,
int
num_configs
,
const
char
**
modelnames
,
const
char
*
const
*
modelnames
,
const
struct
snd_pci_quirk
*
pci_list
);
int
snd_hda_check_board_codec_sid_config
(
struct
hda_codec
*
codec
,
int
num_configs
,
const
char
**
models
,
int
num_configs
,
const
char
*
const
*
models
,
const
struct
snd_pci_quirk
*
tbl
);
int
snd_hda_add_new_ctls
(
struct
hda_codec
*
codec
,
struct
snd_kcontrol_new
*
knew
);
...
...
sound/pci/hda/hda_proc.c
浏览文件 @
321051f5
...
...
@@ -418,7 +418,7 @@ static void print_digital_conv(struct snd_info_buffer *buffer,
static
const
char
*
get_pwr_state
(
u32
state
)
{
static
const
char
*
buf
[
4
]
=
{
static
const
char
*
const
buf
[
4
]
=
{
"D0"
,
"D1"
,
"D2"
,
"D3"
};
if
(
state
<
4
)
...
...
sound/pci/hda/patch_analog.c
浏览文件 @
321051f5
...
...
@@ -46,6 +46,9 @@ struct ad198x_spec {
unsigned
int
cur_eapd
;
unsigned
int
need_dac_fix
;
hda_nid_t
*
alt_dac_nid
;
struct
hda_pcm_stream
*
stream_analog_alt_playback
;
/* capture */
unsigned
int
num_adc_nids
;
hda_nid_t
*
adc_nids
;
...
...
@@ -81,8 +84,8 @@ struct ad198x_spec {
#endif
/* for virtual master */
hda_nid_t
vmaster_nid
;
const
char
**
slave_vols
;
const
char
**
slave_sws
;
const
char
*
const
*
slave_vols
;
const
char
*
const
*
slave_sws
;
};
/*
...
...
@@ -130,7 +133,7 @@ static int ad198x_init(struct hda_codec *codec)
return
0
;
}
static
const
char
*
ad_slave_vols
[]
=
{
static
const
char
*
const
ad_slave_vols
[]
=
{
"Front Playback Volume"
,
"Surround Playback Volume"
,
"Center Playback Volume"
,
...
...
@@ -143,7 +146,7 @@ static const char *ad_slave_vols[] = {
NULL
};
static
const
char
*
ad_slave_sws
[]
=
{
static
const
char
*
const
ad_slave_sws
[]
=
{
"Front Playback Switch"
,
"Surround Playback Switch"
,
"Center Playback Switch"
,
...
...
@@ -156,6 +159,25 @@ static const char *ad_slave_sws[] = {
NULL
};
static
const
char
*
const
ad1988_6stack_fp_slave_vols
[]
=
{
"Front Playback Volume"
,
"Surround Playback Volume"
,
"Center Playback Volume"
,
"LFE Playback Volume"
,
"Side Playback Volume"
,
"IEC958 Playback Volume"
,
NULL
};
static
const
char
*
const
ad1988_6stack_fp_slave_sws
[]
=
{
"Front Playback Switch"
,
"Surround Playback Switch"
,
"Center Playback Switch"
,
"LFE Playback Switch"
,
"Side Playback Switch"
,
"IEC958 Playback Switch"
,
NULL
};
static
void
ad198x_free_kctls
(
struct
hda_codec
*
codec
);
#ifdef CONFIG_SND_HDA_INPUT_BEEP
...
...
@@ -309,6 +331,38 @@ static int ad198x_playback_pcm_cleanup(struct hda_pcm_stream *hinfo,
return
snd_hda_multi_out_analog_cleanup
(
codec
,
&
spec
->
multiout
);
}
static
int
ad198x_alt_playback_pcm_prepare
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
unsigned
int
stream_tag
,
unsigned
int
format
,
struct
snd_pcm_substream
*
substream
)
{
struct
ad198x_spec
*
spec
=
codec
->
spec
;
snd_hda_codec_setup_stream
(
codec
,
spec
->
alt_dac_nid
[
0
],
stream_tag
,
0
,
format
);
return
0
;
}
static
int
ad198x_alt_playback_pcm_cleanup
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
struct
snd_pcm_substream
*
substream
)
{
struct
ad198x_spec
*
spec
=
codec
->
spec
;
snd_hda_codec_cleanup_stream
(
codec
,
spec
->
alt_dac_nid
[
0
]);
return
0
;
}
static
struct
hda_pcm_stream
ad198x_pcm_analog_alt_playback
=
{
.
substreams
=
1
,
.
channels_min
=
2
,
.
channels_max
=
2
,
/* NID is set in ad198x_build_pcms */
.
ops
=
{
.
prepare
=
ad198x_alt_playback_pcm_prepare
,
.
cleanup
=
ad198x_alt_playback_pcm_cleanup
},
};
/*
* Digital out
*/
...
...
@@ -446,6 +500,17 @@ static int ad198x_build_pcms(struct hda_codec *codec)
}
}
if
(
spec
->
alt_dac_nid
&&
spec
->
stream_analog_alt_playback
)
{
codec
->
num_pcms
++
;
info
=
spec
->
pcm_rec
+
2
;
info
->
name
=
"AD198x Headphone"
;
info
->
pcm_type
=
HDA_PCM_TYPE_AUDIO
;
info
->
stream
[
SNDRV_PCM_STREAM_PLAYBACK
]
=
*
spec
->
stream_analog_alt_playback
;
info
->
stream
[
SNDRV_PCM_STREAM_PLAYBACK
].
nid
=
spec
->
alt_dac_nid
[
0
];
}
return
0
;
}
...
...
@@ -1069,7 +1134,7 @@ enum {
AD1986A_MODELS
};
static
const
char
*
ad1986a_models
[
AD1986A_MODELS
]
=
{
static
const
char
*
const
ad1986a_models
[
AD1986A_MODELS
]
=
{
[
AD1986A_6STACK
]
=
"6stack"
,
[
AD1986A_3STACK
]
=
"3stack"
,
[
AD1986A_LAPTOP
]
=
"laptop"
,
...
...
@@ -1813,7 +1878,7 @@ enum {
AD1981_MODELS
};
static
const
char
*
ad1981_models
[
AD1981_MODELS
]
=
{
static
const
char
*
const
ad1981_models
[
AD1981_MODELS
]
=
{
[
AD1981_HP
]
=
"hp"
,
[
AD1981_THINKPAD
]
=
"thinkpad"
,
[
AD1981_BASIC
]
=
"basic"
,
...
...
@@ -2015,6 +2080,7 @@ static int patch_ad1981(struct hda_codec *codec)
enum
{
AD1988_6STACK
,
AD1988_6STACK_DIG
,
AD1988_6STACK_DIG_FP
,
AD1988_3STACK
,
AD1988_3STACK_DIG
,
AD1988_LAPTOP
,
...
...
@@ -2047,6 +2113,10 @@ static hda_nid_t ad1988_6stack_dac_nids_rev2[4] = {
0x04
,
0x05
,
0x0a
,
0x06
};
static
hda_nid_t
ad1988_alt_dac_nid
[
1
]
=
{
0x03
};
static
hda_nid_t
ad1988_3stack_dac_nids_rev2
[
3
]
=
{
0x04
,
0x0a
,
0x06
};
...
...
@@ -2166,6 +2236,35 @@ static struct snd_kcontrol_new ad1988_6stack_mixers2[] = {
{
}
/* end */
};
static
struct
snd_kcontrol_new
ad1988_6stack_fp_mixers
[]
=
{
HDA_CODEC_VOLUME
(
"Headphone Playback Volume"
,
0x03
,
0x0
,
HDA_OUTPUT
),
HDA_BIND_MUTE
(
"Front Playback Switch"
,
0x29
,
2
,
HDA_INPUT
),
HDA_BIND_MUTE
(
"Surround Playback Switch"
,
0x2a
,
2
,
HDA_INPUT
),
HDA_BIND_MUTE_MONO
(
"Center Playback Switch"
,
0x27
,
1
,
2
,
HDA_INPUT
),
HDA_BIND_MUTE_MONO
(
"LFE Playback Switch"
,
0x27
,
2
,
2
,
HDA_INPUT
),
HDA_BIND_MUTE
(
"Side Playback Switch"
,
0x28
,
2
,
HDA_INPUT
),
HDA_BIND_MUTE
(
"Headphone Playback Switch"
,
0x22
,
2
,
HDA_INPUT
),
HDA_BIND_MUTE
(
"Mono Playback Switch"
,
0x1e
,
2
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"CD Playback Volume"
,
0x20
,
0x6
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"CD Playback Switch"
,
0x20
,
0x6
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"Front Mic Playback Volume"
,
0x20
,
0x0
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"Front Mic Playback Switch"
,
0x20
,
0x0
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"Line Playback Volume"
,
0x20
,
0x1
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"Line Playback Switch"
,
0x20
,
0x1
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"Mic Playback Volume"
,
0x20
,
0x4
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"Mic Playback Switch"
,
0x20
,
0x4
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"Analog Mix Playback Volume"
,
0x21
,
0x0
,
HDA_OUTPUT
),
HDA_CODEC_MUTE
(
"Analog Mix Playback Switch"
,
0x21
,
0x0
,
HDA_OUTPUT
),
HDA_CODEC_VOLUME
(
"Front Mic Boost Volume"
,
0x39
,
0x0
,
HDA_OUTPUT
),
HDA_CODEC_VOLUME
(
"Mic Boost Volume"
,
0x3c
,
0x0
,
HDA_OUTPUT
),
{
}
/* end */
};
/* 3-stack mode */
static
struct
snd_kcontrol_new
ad1988_3stack_mixers1
[]
=
{
HDA_CODEC_VOLUME
(
"Front Playback Volume"
,
0x04
,
0x0
,
HDA_OUTPUT
),
...
...
@@ -2445,6 +2544,68 @@ static struct hda_verb ad1988_6stack_init_verbs[] = {
{
}
};
static
struct
hda_verb
ad1988_6stack_fp_init_verbs
[]
=
{
/* Front, Surround, CLFE, side DAC; unmute as default */
{
0x04
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x06
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x05
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x0a
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
/* Headphone; unmute as default */
{
0x03
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
/* Port-A front headphon path */
{
0x37
,
AC_VERB_SET_CONNECT_SEL
,
0x00
},
/* DAC0:03h */
{
0x22
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
0
)},
{
0x22
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
1
)},
{
0x11
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x11
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_HP
},
/* Port-D line-out path */
{
0x29
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
0
)},
{
0x29
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
1
)},
{
0x12
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x12
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_OUT
},
/* Port-F surround path */
{
0x2a
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
0
)},
{
0x2a
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
1
)},
{
0x16
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x16
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_OUT
},
/* Port-G CLFE path */
{
0x27
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
0
)},
{
0x27
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
1
)},
{
0x24
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x24
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_OUT
},
/* Port-H side path */
{
0x28
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
0
)},
{
0x28
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
1
)},
{
0x25
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x25
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_OUT
},
/* Mono out path */
{
0x36
,
AC_VERB_SET_CONNECT_SEL
,
0x1
},
/* DAC1:04h */
{
0x1e
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
0
)},
{
0x1e
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
1
)},
{
0x13
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_OUT
},
{
0x13
,
AC_VERB_SET_AMP_GAIN_MUTE
,
0xb01f
},
/* unmute, 0dB */
/* Port-B front mic-in path */
{
0x14
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_MUTE
},
{
0x14
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_VREF80
},
{
0x39
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_ZERO
},
/* Port-C line-in path */
{
0x15
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_MUTE
},
{
0x15
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_IN
},
{
0x3a
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_ZERO
},
{
0x33
,
AC_VERB_SET_CONNECT_SEL
,
0x0
},
/* Port-E mic-in path */
{
0x17
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_MUTE
},
{
0x17
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_VREF80
},
{
0x3c
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_ZERO
},
{
0x34
,
AC_VERB_SET_CONNECT_SEL
,
0x0
},
/* Analog CD Input */
{
0x18
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_IN
},
/* Analog Mix output amp */
{
0x21
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
|
0x1f
},
/* 0dB */
{
}
};
static
struct
hda_verb
ad1988_capture_init_verbs
[]
=
{
/* mute analog mix */
{
0x20
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
0
)},
...
...
@@ -2792,7 +2953,9 @@ static int ad1988_auto_create_multi_out_ctls(struct ad198x_spec *spec,
const
struct
auto_pin_cfg
*
cfg
)
{
char
name
[
32
];
static
const
char
*
chname
[
4
]
=
{
"Front"
,
"Surround"
,
NULL
/*CLFE*/
,
"Side"
};
static
const
char
*
const
chname
[
4
]
=
{
"Front"
,
"Surround"
,
NULL
/*CLFE*/
,
"Side"
};
hda_nid_t
nid
;
int
i
,
err
;
...
...
@@ -3074,13 +3237,13 @@ static int ad1988_auto_init(struct hda_codec *codec)
return
0
;
}
/*
*/
static
const
char
*
ad1988_models
[
AD1988_MODEL_LAST
]
=
{
static
const
char
*
const
ad1988_models
[
AD1988_MODEL_LAST
]
=
{
[
AD1988_6STACK
]
=
"6stack"
,
[
AD1988_6STACK_DIG
]
=
"6stack-dig"
,
[
AD1988_6STACK_DIG_FP
]
=
"6stack-dig-fp"
,
[
AD1988_3STACK
]
=
"3stack"
,
[
AD1988_3STACK_DIG
]
=
"3stack-dig"
,
[
AD1988_LAPTOP
]
=
"laptop"
,
...
...
@@ -3140,6 +3303,7 @@ static int patch_ad1988(struct hda_codec *codec)
switch
(
board_config
)
{
case
AD1988_6STACK
:
case
AD1988_6STACK_DIG
:
case
AD1988_6STACK_DIG_FP
:
spec
->
multiout
.
max_channels
=
8
;
spec
->
multiout
.
num_dacs
=
4
;
if
(
is_rev2
(
codec
))
...
...
@@ -3152,10 +3316,22 @@ static int patch_ad1988(struct hda_codec *codec)
spec
->
mixers
[
0
]
=
ad1988_6stack_mixers1_rev2
;
else
spec
->
mixers
[
0
]
=
ad1988_6stack_mixers1
;
spec
->
mixers
[
1
]
=
ad1988_6stack_mixers2
;
if
(
board_config
==
AD1988_6STACK_DIG_FP
)
{
spec
->
mixers
[
1
]
=
ad1988_6stack_fp_mixers
;
spec
->
slave_vols
=
ad1988_6stack_fp_slave_vols
;
spec
->
slave_sws
=
ad1988_6stack_fp_slave_sws
;
spec
->
alt_dac_nid
=
ad1988_alt_dac_nid
;
spec
->
stream_analog_alt_playback
=
&
ad198x_pcm_analog_alt_playback
;
}
else
spec
->
mixers
[
1
]
=
ad1988_6stack_mixers2
;
spec
->
num_init_verbs
=
1
;
spec
->
init_verbs
[
0
]
=
ad1988_6stack_init_verbs
;
if
(
board_config
==
AD1988_6STACK_DIG
)
{
if
(
board_config
==
AD1988_6STACK_DIG_FP
)
spec
->
init_verbs
[
0
]
=
ad1988_6stack_fp_init_verbs
;
else
spec
->
init_verbs
[
0
]
=
ad1988_6stack_init_verbs
;
if
((
board_config
==
AD1988_6STACK_DIG
)
||
(
board_config
==
AD1988_6STACK_DIG_FP
))
{
spec
->
multiout
.
dig_out_nid
=
AD1988_SPDIF_OUT
;
spec
->
dig_in_nid
=
AD1988_SPDIF_IN
;
}
...
...
@@ -3399,7 +3575,7 @@ static struct hda_amp_list ad1884_loopbacks[] = {
};
#endif
static
const
char
*
ad1884_slave_vols
[]
=
{
static
const
char
*
const
ad1884_slave_vols
[]
=
{
"PCM Playback Volume"
,
"Mic Playback Volume"
,
"Mono Playback Volume"
,
...
...
@@ -3637,7 +3813,7 @@ enum {
AD1984_MODELS
};
static
const
char
*
ad1984_models
[
AD1984_MODELS
]
=
{
static
const
char
*
const
ad1984_models
[
AD1984_MODELS
]
=
{
[
AD1984_BASIC
]
=
"basic"
,
[
AD1984_THINKPAD
]
=
"thinkpad"
,
[
AD1984_DELL_DESKTOP
]
=
"dell_desktop"
,
...
...
@@ -4308,7 +4484,7 @@ enum {
AD1884A_MODELS
};
static
const
char
*
ad1884a_models
[
AD1884A_MODELS
]
=
{
static
const
char
*
const
ad1884a_models
[
AD1884A_MODELS
]
=
{
[
AD1884A_DESKTOP
]
=
"desktop"
,
[
AD1884A_LAPTOP
]
=
"laptop"
,
[
AD1884A_MOBILE
]
=
"mobile"
,
...
...
@@ -4696,7 +4872,7 @@ enum {
AD1882_MODELS
};
static
const
char
*
ad1882_models
[
AD1986A_MODELS
]
=
{
static
const
char
*
const
ad1882_models
[
AD1986A_MODELS
]
=
{
[
AD1882_3STACK
]
=
"3stack"
,
[
AD1882_6STACK
]
=
"6stack"
,
};
...
...
sound/pci/hda/patch_cirrus.c
浏览文件 @
321051f5
...
...
@@ -490,7 +490,7 @@ static int parse_digital_input(struct hda_codec *codec)
* create mixer controls
*/
static
const
char
*
dir_sfx
[
2
]
=
{
"Playback"
,
"Capture"
};
static
const
char
*
const
dir_sfx
[
2
]
=
{
"Playback"
,
"Capture"
};
static
int
add_mute
(
struct
hda_codec
*
codec
,
const
char
*
name
,
int
index
,
unsigned
int
pval
,
int
dir
,
struct
snd_kcontrol
**
kctlp
)
...
...
@@ -1156,7 +1156,7 @@ static int cs_parse_auto_config(struct hda_codec *codec)
return
0
;
}
static
const
char
*
cs420x_models
[
CS420X_MODELS
]
=
{
static
const
char
*
const
cs420x_models
[
CS420X_MODELS
]
=
{
[
CS420X_MBP53
]
=
"mbp53"
,
[
CS420X_MBP55
]
=
"mbp55"
,
[
CS420X_IMAC27
]
=
"imac27"
,
...
...
sound/pci/hda/patch_cmedia.c
浏览文件 @
321051f5
...
...
@@ -608,7 +608,7 @@ static void cmi9880_free(struct hda_codec *codec)
/*
*/
static
const
char
*
cmi9880_models
[
CMI_MODELS
]
=
{
static
const
char
*
const
cmi9880_models
[
CMI_MODELS
]
=
{
[
CMI_MINIMAL
]
=
"minimal"
,
[
CMI_MIN_FP
]
=
"min_fp"
,
[
CMI_FULL
]
=
"full"
,
...
...
sound/pci/hda/patch_conexant.c
浏览文件 @
321051f5
...
...
@@ -537,13 +537,13 @@ static struct snd_kcontrol_new cxt_beep_mixer[] = {
};
#endif
static
const
char
*
slave_vols
[]
=
{
static
const
char
*
const
slave_vols
[]
=
{
"Headphone Playback Volume"
,
"Speaker Playback Volume"
,
NULL
};
static
const
char
*
slave_sws
[]
=
{
static
const
char
*
const
slave_sws
[]
=
{
"Headphone Playback Switch"
,
"Speaker Playback Switch"
,
NULL
...
...
@@ -1134,7 +1134,7 @@ enum {
CXT5045_MODELS
};
static
const
char
*
cxt5045_models
[
CXT5045_MODELS
]
=
{
static
const
char
*
const
cxt5045_models
[
CXT5045_MODELS
]
=
{
[
CXT5045_LAPTOP_HPSENSE
]
=
"laptop-hpsense"
,
[
CXT5045_LAPTOP_MICSENSE
]
=
"laptop-micsense"
,
[
CXT5045_LAPTOP_HPMICSENSE
]
=
"laptop-hpmicsense"
,
...
...
@@ -1579,7 +1579,7 @@ enum {
CXT5047_MODELS
};
static
const
char
*
cxt5047_models
[
CXT5047_MODELS
]
=
{
static
const
char
*
const
cxt5047_models
[
CXT5047_MODELS
]
=
{
[
CXT5047_LAPTOP
]
=
"laptop"
,
[
CXT5047_LAPTOP_HP
]
=
"laptop-hp"
,
[
CXT5047_LAPTOP_EAPD
]
=
"laptop-eapd"
,
...
...
@@ -1995,7 +1995,7 @@ enum {
CXT5051_MODELS
};
static
const
char
*
cxt5051_models
[
CXT5051_MODELS
]
=
{
static
const
char
*
c
onst
c
xt5051_models
[
CXT5051_MODELS
]
=
{
[
CXT5051_LAPTOP
]
=
"laptop"
,
[
CXT5051_HP
]
=
"hp"
,
[
CXT5051_HP_DV6736
]
=
"hp-dv6736"
,
...
...
@@ -3084,7 +3084,7 @@ enum {
CXT5066_MODELS
};
static
const
char
*
cxt5066_models
[
CXT5066_MODELS
]
=
{
static
const
char
*
const
cxt5066_models
[
CXT5066_MODELS
]
=
{
[
CXT5066_LAPTOP
]
=
"laptop"
,
[
CXT5066_DELL_LAPTOP
]
=
"dell-laptop"
,
[
CXT5066_OLPC_XO_1_5
]
=
"olpc-xo-1_5"
,
...
...
@@ -3746,7 +3746,7 @@ static int cx_auto_build_output_controls(struct hda_codec *codec)
struct
conexant_spec
*
spec
=
codec
->
spec
;
int
i
,
err
;
int
num_line
=
0
,
num_hp
=
0
,
num_spk
=
0
;
static
const
char
*
texts
[
3
]
=
{
"Front"
,
"Surround"
,
"CLFE"
};
static
const
char
*
const
texts
[
3
]
=
{
"Front"
,
"Surround"
,
"CLFE"
};
if
(
spec
->
dac_info_filled
==
1
)
return
cx_auto_add_pb_volume
(
codec
,
spec
->
dac_info
[
0
].
dac
,
...
...
sound/pci/hda/patch_hdmi.c
浏览文件 @
321051f5
...
...
@@ -817,6 +817,7 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo,
struct
hdmi_spec
*
spec
=
codec
->
spec
;
struct
hdmi_eld
*
eld
;
struct
hda_pcm_stream
*
codec_pars
;
struct
snd_pcm_runtime
*
runtime
=
substream
->
runtime
;
unsigned
int
idx
;
for
(
idx
=
0
;
idx
<
spec
->
num_cvts
;
idx
++
)
...
...
@@ -844,6 +845,14 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo,
hinfo
->
formats
=
codec_pars
->
formats
;
hinfo
->
maxbps
=
codec_pars
->
maxbps
;
}
/* store the updated parameters */
runtime
->
hw
.
channels_min
=
hinfo
->
channels_min
;
runtime
->
hw
.
channels_max
=
hinfo
->
channels_max
;
runtime
->
hw
.
formats
=
hinfo
->
formats
;
runtime
->
hw
.
rates
=
hinfo
->
rates
;
snd_pcm_hw_constraint_step
(
substream
->
runtime
,
0
,
SNDRV_PCM_HW_PARAM_CHANNELS
,
2
);
return
0
;
}
...
...
@@ -1238,6 +1247,9 @@ static int simple_playback_pcm_open(struct hda_pcm_stream *hinfo,
snd_pcm_hw_constraint_list
(
substream
->
runtime
,
0
,
SNDRV_PCM_HW_PARAM_CHANNELS
,
hw_constraints_channels
);
}
else
{
snd_pcm_hw_constraint_step
(
substream
->
runtime
,
0
,
SNDRV_PCM_HW_PARAM_CHANNELS
,
2
);
}
return
snd_hda_multi_out_dig_open
(
codec
,
&
spec
->
multiout
);
...
...
sound/pci/hda/patch_realtek.c
浏览文件 @
321051f5
此差异已折叠。
点击以展开。
sound/pci/hda/patch_sigmatel.c
浏览文件 @
321051f5
...
...
@@ -266,7 +266,7 @@ struct sigmatel_spec {
struct
sigmatel_mic_route
int_mic
;
struct
sigmatel_mic_route
dock_mic
;
const
char
**
spdif_labels
;
const
char
*
const
*
spdif_labels
;
hda_nid_t
dig_in_nid
;
hda_nid_t
mono_nid
;
...
...
@@ -524,7 +524,7 @@ static unsigned long stac927x_capsws[] = {
HDA_COMPOSE_AMP_VAL
(
0x1d
,
3
,
0
,
HDA_OUTPUT
),
};
static
const
char
*
stac927x_spdif_labels
[
5
]
=
{
static
const
char
*
const
stac927x_spdif_labels
[
5
]
=
{
"Digital Playback"
,
"ADAT"
,
"Analog Mux 1"
,
"Analog Mux 2"
,
"Analog Mux 3"
};
...
...
@@ -1062,7 +1062,7 @@ static struct snd_kcontrol_new stac_smux_mixer = {
.
put
=
stac92xx_smux_enum_put
,
};
static
const
char
*
slave_vols
[]
=
{
static
const
char
*
const
slave_vols
[]
=
{
"Front Playback Volume"
,
"Surround Playback Volume"
,
"Center Playback Volume"
,
...
...
@@ -1073,7 +1073,7 @@ static const char *slave_vols[] = {
NULL
};
static
const
char
*
slave_sws
[]
=
{
static
const
char
*
const
slave_sws
[]
=
{
"Front Playback Switch"
,
"Surround Playback Switch"
,
"Center Playback Switch"
,
...
...
@@ -1354,7 +1354,7 @@ static unsigned int *stac9200_brd_tbl[STAC_9200_MODELS] = {
[
STAC_9200_PANASONIC
]
=
ref9200_pin_configs
,
};
static
const
char
*
stac9200_models
[
STAC_9200_MODELS
]
=
{
static
const
char
*
const
stac9200_models
[
STAC_9200_MODELS
]
=
{
[
STAC_AUTO
]
=
"auto"
,
[
STAC_REF
]
=
"ref"
,
[
STAC_9200_OQO
]
=
"oqo"
,
...
...
@@ -1500,7 +1500,7 @@ static unsigned int *stac925x_brd_tbl[STAC_925x_MODELS] = {
[
STAC_M6
]
=
stac925xM6_pin_configs
,
};
static
const
char
*
stac925x_models
[
STAC_925x_MODELS
]
=
{
static
const
char
*
const
stac925x_models
[
STAC_925x_MODELS
]
=
{
[
STAC_925x_AUTO
]
=
"auto"
,
[
STAC_REF
]
=
"ref"
,
[
STAC_M1
]
=
"m1"
,
...
...
@@ -1574,7 +1574,7 @@ static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
[
STAC_92HD73XX_INTEL
]
=
intel_dg45id_pin_configs
,
};
static
const
char
*
stac92hd73xx_models
[
STAC_92HD73XX_MODELS
]
=
{
static
const
char
*
const
stac92hd73xx_models
[
STAC_92HD73XX_MODELS
]
=
{
[
STAC_92HD73XX_AUTO
]
=
"auto"
,
[
STAC_92HD73XX_NO_JD
]
=
"no-jd"
,
[
STAC_92HD73XX_REF
]
=
"ref"
,
...
...
@@ -1660,7 +1660,7 @@ static unsigned int *stac92hd83xxx_brd_tbl[STAC_92HD83XXX_MODELS] = {
[
STAC_HP_DV7_4000
]
=
hp_dv7_4000_pin_configs
,
};
static
const
char
*
stac92hd83xxx_models
[
STAC_92HD83XXX_MODELS
]
=
{
static
const
char
*
const
stac92hd83xxx_models
[
STAC_92HD83XXX_MODELS
]
=
{
[
STAC_92HD83XXX_AUTO
]
=
"auto"
,
[
STAC_92HD83XXX_REF
]
=
"ref"
,
[
STAC_92HD83XXX_PWR_REF
]
=
"mic-ref"
,
...
...
@@ -1722,7 +1722,7 @@ static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = {
[
STAC_HP_DV4_1222NR
]
=
NULL
,
};
static
const
char
*
stac92hd71bxx_models
[
STAC_92HD71BXX_MODELS
]
=
{
static
const
char
*
const
stac92hd71bxx_models
[
STAC_92HD71BXX_MODELS
]
=
{
[
STAC_92HD71BXX_AUTO
]
=
"auto"
,
[
STAC_92HD71BXX_REF
]
=
"ref"
,
[
STAC_DELL_M4_1
]
=
"dell-m4-1"
,
...
...
@@ -1915,7 +1915,7 @@ static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = {
[
STAC_922X_DELL_M82
]
=
dell_922x_m82_pin_configs
,
};
static
const
char
*
stac922x_models
[
STAC_922X_MODELS
]
=
{
static
const
char
*
const
stac922x_models
[
STAC_922X_MODELS
]
=
{
[
STAC_922X_AUTO
]
=
"auto"
,
[
STAC_D945_REF
]
=
"ref"
,
[
STAC_D945GTP5
]
=
"5stack"
,
...
...
@@ -2077,7 +2077,7 @@ static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
[
STAC_927X_VOLKNOB
]
=
NULL
,
};
static
const
char
*
stac927x_models
[
STAC_927X_MODELS
]
=
{
static
const
char
*
const
stac927x_models
[
STAC_927X_MODELS
]
=
{
[
STAC_927X_AUTO
]
=
"auto"
,
[
STAC_D965_REF_NO_JD
]
=
"ref-no-jd"
,
[
STAC_D965_REF
]
=
"ref"
,
...
...
@@ -2180,7 +2180,7 @@ static unsigned int *stac9205_brd_tbl[STAC_9205_MODELS] = {
[
STAC_9205_EAPD
]
=
NULL
,
};
static
const
char
*
stac9205_models
[
STAC_9205_MODELS
]
=
{
static
const
char
*
const
stac9205_models
[
STAC_9205_MODELS
]
=
{
[
STAC_9205_AUTO
]
=
"auto"
,
[
STAC_9205_REF
]
=
"ref"
,
[
STAC_9205_DELL_M42
]
=
"dell-m42"
,
...
...
@@ -3123,7 +3123,7 @@ static int create_multi_out_ctls(struct hda_codec *codec, int num_outs,
int
type
)
{
struct
sigmatel_spec
*
spec
=
codec
->
spec
;
static
const
char
*
chname
[
4
]
=
{
static
const
char
*
const
chname
[
4
]
=
{
"Front"
,
"Surround"
,
NULL
/*CLFE*/
,
"Side"
};
hda_nid_t
nid
;
...
...
@@ -3256,7 +3256,7 @@ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec,
}
/* labels for mono mux outputs */
static
const
char
*
stac92xx_mono_labels
[
4
]
=
{
static
const
char
*
const
stac92xx_mono_labels
[
4
]
=
{
"DAC0"
,
"DAC1"
,
"Mixer"
,
"DAC2"
};
...
...
@@ -3380,7 +3380,7 @@ static int stac92xx_auto_create_mux_input_ctls(struct hda_codec *codec)
return
0
;
};
static
const
char
*
stac92xx_spdif_labels
[
3
]
=
{
static
const
char
*
const
stac92xx_spdif_labels
[
3
]
=
{
"Digital Playback"
,
"Analog Mux 1"
,
"Analog Mux 2"
,
};
...
...
@@ -3388,7 +3388,7 @@ static int stac92xx_auto_create_spdif_mux_ctls(struct hda_codec *codec)
{
struct
sigmatel_spec
*
spec
=
codec
->
spec
;
struct
hda_input_mux
*
spdif_mux
=
&
spec
->
private_smux
;
const
char
**
labels
=
spec
->
spdif_labels
;
const
char
*
const
*
labels
=
spec
->
spdif_labels
;
int
i
,
num_cons
;
hda_nid_t
con_lst
[
HDA_MAX_NUM_INPUTS
];
...
...
@@ -3409,7 +3409,7 @@ static int stac92xx_auto_create_spdif_mux_ctls(struct hda_codec *codec)
}
/* labels for dmic mux inputs */
static
const
char
*
stac92xx_dmic_labels
[
5
]
=
{
static
const
char
*
const
stac92xx_dmic_labels
[
5
]
=
{
"Analog Inputs"
,
"Digital Mic 1"
,
"Digital Mic 2"
,
"Digital Mic 3"
,
"Digital Mic 4"
};
...
...
@@ -5333,7 +5333,7 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
return
0
;
}
static
int
stac92hd83xxx_set_system_btl_amp
(
struct
hda_codec
*
codec
)
static
int
hp_bnb2011_with_dock
(
struct
hda_codec
*
codec
)
{
if
(
codec
->
vendor_id
!=
0x111d7605
&&
codec
->
vendor_id
!=
0x111d76d1
)
...
...
@@ -5348,10 +5348,6 @@ static int stac92hd83xxx_set_system_btl_amp(struct hda_codec *codec)
case
0x103c161d
:
case
0x103c161e
:
case
0x103c161f
:
case
0x103c1620
:
case
0x103c1621
:
case
0x103c1622
:
case
0x103c1623
:
case
0x103c162a
:
case
0x103c162b
:
...
...
@@ -5360,41 +5356,9 @@ static int stac92hd83xxx_set_system_btl_amp(struct hda_codec *codec)
case
0x103c1631
:
case
0x103c1633
:
case
0x103c1634
:
case
0x103c1635
:
case
0x103c164f
:
case
0x103c1676
:
case
0x103c1677
:
case
0x103c1678
:
case
0x103c1679
:
case
0x103c167a
:
case
0x103c167b
:
case
0x103c167c
:
case
0x103c167d
:
case
0x103c167e
:
case
0x103c167f
:
case
0x103c1680
:
case
0x103c1681
:
case
0x103c1682
:
case
0x103c1683
:
case
0x103c1684
:
case
0x103c1685
:
case
0x103c1686
:
case
0x103c1687
:
case
0x103c1688
:
case
0x103c1689
:
case
0x103c168a
:
case
0x103c168b
:
case
0x103c168c
:
case
0x103c168d
:
case
0x103c168e
:
case
0x103c168f
:
case
0x103c1690
:
case
0x103c1691
:
case
0x103c1692
:
case
0x103c3587
:
case
0x103c3588
:
case
0x103c3589
:
...
...
@@ -5402,9 +5366,9 @@ static int stac92hd83xxx_set_system_btl_amp(struct hda_codec *codec)
case
0x103c3667
:
case
0x103c3668
:
/* set BTL amp level to 13.43dB for louder speaker output */
return
snd_hda_codec_write_cache
(
codec
,
codec
->
afg
,
0
,
0x7F4
,
0x14
)
;
case
0x103c3669
:
return
1
;
}
return
0
;
}
...
...
@@ -5420,6 +5384,11 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
if
(
spec
==
NULL
)
return
-
ENOMEM
;
if
(
hp_bnb2011_with_dock
(
codec
))
{
snd_hda_codec_set_pincfg
(
codec
,
0xa
,
0x2101201f
);
snd_hda_codec_set_pincfg
(
codec
,
0xf
,
0x2181205e
);
}
/* reset pin power-down; Windows may leave these bits after reboot */
snd_hda_codec_write_cache
(
codec
,
codec
->
afg
,
0
,
0x7EC
,
0
);
snd_hda_codec_write_cache
(
codec
,
codec
->
afg
,
0
,
0x7ED
,
0
);
...
...
@@ -5546,8 +5515,6 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
AC_VERB_SET_CONNECT_SEL
,
num_dacs
);
}
stac92hd83xxx_set_system_btl_amp
(
codec
);
codec
->
proc_widget_hook
=
stac92hd_proc_hook
;
return
0
;
...
...
@@ -6270,7 +6237,7 @@ static unsigned int stac9872_vaio_pin_configs[9] = {
0x90a7013e
};
static
const
char
*
stac9872_models
[
STAC_9872_MODELS
]
=
{
static
const
char
*
const
stac9872_models
[
STAC_9872_MODELS
]
=
{
[
STAC_9872_AUTO
]
=
"auto"
,
[
STAC_9872_VAIO
]
=
"vaio"
,
};
...
...
sound/pci/hda/patch_via.c
浏览文件 @
321051f5
...
...
@@ -2281,7 +2281,9 @@ static int vt1708_auto_create_multi_out_ctls(struct via_spec *spec,
const
struct
auto_pin_cfg
*
cfg
)
{
char
name
[
32
];
static
const
char
*
chname
[
4
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
,
"Side"
};
static
const
char
*
const
chname
[
4
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
,
"Side"
};
hda_nid_t
nid
,
nid_vol
,
nid_vols
[]
=
{
0x17
,
0x19
,
0x1a
,
0x1b
};
int
i
,
err
;
...
...
@@ -2370,7 +2372,7 @@ static void create_hp_imux(struct via_spec *spec)
{
int
i
;
struct
hda_input_mux
*
imux
=
&
spec
->
private_imux
[
1
];
static
const
char
*
texts
[]
=
{
"OFF"
,
"ON"
,
NULL
};
static
const
char
*
const
texts
[]
=
{
"OFF"
,
"ON"
,
NULL
};
/* for hp mode select */
for
(
i
=
0
;
texts
[
i
];
i
++
)
...
...
@@ -2890,7 +2892,9 @@ static int vt1709_auto_create_multi_out_ctls(struct via_spec *spec,
const
struct
auto_pin_cfg
*
cfg
)
{
char
name
[
32
];
static
const
char
*
chname
[
4
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
,
"Side"
};
static
const
char
*
const
chname
[
4
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
,
"Side"
};
hda_nid_t
nid
,
nid_vol
,
nid_vols
[]
=
{
0x18
,
0x1a
,
0x1b
,
0x29
};
int
i
,
err
;
...
...
@@ -3433,7 +3437,9 @@ static int vt1708B_auto_create_multi_out_ctls(struct via_spec *spec,
const
struct
auto_pin_cfg
*
cfg
)
{
char
name
[
32
];
static
const
char
*
chname
[
4
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
,
"Side"
};
static
const
char
*
const
chname
[
4
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
,
"Side"
};
hda_nid_t
nid_vols
[]
=
{
0x16
,
0x18
,
0x26
,
0x27
};
hda_nid_t
nid
,
nid_vol
=
0
;
int
i
,
err
;
...
...
@@ -3861,7 +3867,9 @@ static int vt1708S_auto_create_multi_out_ctls(struct via_spec *spec,
const
struct
auto_pin_cfg
*
cfg
)
{
char
name
[
32
];
static
const
char
*
chname
[
4
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
,
"Side"
};
static
const
char
*
const
chname
[
4
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
,
"Side"
};
hda_nid_t
nid_vols
[]
=
{
0x10
,
0x11
,
0x24
,
0x25
};
hda_nid_t
nid_mutes
[]
=
{
0x1C
,
0x18
,
0x26
,
0x27
};
hda_nid_t
nid
,
nid_vol
,
nid_mute
;
...
...
@@ -4304,7 +4312,7 @@ static int vt1702_auto_create_hp_ctls(struct via_spec *spec, hda_nid_t pin)
{
int
err
,
i
;
struct
hda_input_mux
*
imux
;
static
const
char
*
texts
[]
=
{
"ON"
,
"OFF"
,
NULL
};
static
const
char
*
const
texts
[]
=
{
"ON"
,
"OFF"
,
NULL
};
if
(
!
pin
)
return
0
;
spec
->
multiout
.
hp_nid
=
0x1D
;
...
...
@@ -4615,7 +4623,9 @@ static int vt1718S_auto_create_multi_out_ctls(struct via_spec *spec,
const
struct
auto_pin_cfg
*
cfg
)
{
char
name
[
32
];
static
const
char
*
chname
[
4
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
,
"Side"
};
static
const
char
*
const
chname
[
4
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
,
"Side"
};
hda_nid_t
nid_vols
[]
=
{
0x8
,
0x9
,
0xa
,
0xb
};
hda_nid_t
nid_mutes
[]
=
{
0x24
,
0x25
,
0x26
,
0x27
};
hda_nid_t
nid
,
nid_vol
,
nid_mute
=
0
;
...
...
@@ -5064,7 +5074,9 @@ static int vt1716S_auto_create_multi_out_ctls(struct via_spec *spec,
const
struct
auto_pin_cfg
*
cfg
)
{
char
name
[
32
];
static
const
char
*
chname
[
3
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
};
static
const
char
*
const
chname
[
3
]
=
{
"Front"
,
"Surround"
,
"C/LFE"
};
hda_nid_t
nid_vols
[]
=
{
0x10
,
0x11
,
0x25
};
hda_nid_t
nid_mutes
[]
=
{
0x1C
,
0x18
,
0x27
};
hda_nid_t
nid
,
nid_vol
,
nid_mute
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录