Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
e23832ac
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e23832ac
编写于
8月 23, 2011
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ALSA: hda - Support multiple headphones in Realtek auto-parser
Signed-off-by:
N
Takashi Iwai
<
tiwai@suse.de
>
上级
a06dbfc2
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
21 addition
and
14 deletion
+21
-14
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+21
-14
未找到文件。
sound/pci/hda/patch_realtek.c
浏览文件 @
e23832ac
...
...
@@ -2813,7 +2813,7 @@ static hda_nid_t alc_auto_look_for_dac(struct hda_codec *codec, hda_nid_t pin)
if
(
found_in_nid_list
(
nid
,
spec
->
multiout
.
dac_nids
,
spec
->
multiout
.
num_dacs
))
continue
;
if
(
spec
->
multiout
.
hp_
nid
==
nid
)
if
(
spec
->
multiout
.
hp_
out_nid
[
0
]
==
nid
)
continue
;
if
(
found_in_nid_list
(
nid
,
spec
->
multiout
.
extra_out_nid
,
ARRAY_SIZE
(
spec
->
multiout
.
extra_out_nid
)))
...
...
@@ -2842,7 +2842,7 @@ static int alc_auto_fill_dac_nids(struct hda_codec *codec)
again:
/* set num_dacs once to full for alc_auto_look_for_dac() */
spec
->
multiout
.
num_dacs
=
cfg
->
line_outs
;
spec
->
multiout
.
hp_
nid
=
0
;
spec
->
multiout
.
hp_
out_nid
[
0
]
=
0
;
spec
->
multiout
.
extra_out_nid
[
0
]
=
0
;
memset
(
spec
->
private_dac_nids
,
0
,
sizeof
(
spec
->
private_dac_nids
));
spec
->
multiout
.
dac_nids
=
spec
->
private_dac_nids
;
...
...
@@ -2853,7 +2853,7 @@ static int alc_auto_fill_dac_nids(struct hda_codec *codec)
spec
->
private_dac_nids
[
i
]
=
get_dac_if_single
(
codec
,
cfg
->
line_out_pins
[
i
]);
if
(
cfg
->
hp_outs
)
spec
->
multiout
.
hp_
nid
=
spec
->
multiout
.
hp_
out_nid
[
0
]
=
get_dac_if_single
(
codec
,
cfg
->
hp_pins
[
0
]);
if
(
cfg
->
speaker_outs
)
spec
->
multiout
.
extra_out_nid
[
0
]
=
...
...
@@ -2885,8 +2885,8 @@ static int alc_auto_fill_dac_nids(struct hda_codec *codec)
sizeof
(
hda_nid_t
)
*
(
cfg
->
line_outs
-
i
-
1
));
}
if
(
cfg
->
hp_outs
&&
!
spec
->
multiout
.
hp_
nid
)
spec
->
multiout
.
hp_
nid
=
if
(
cfg
->
hp_outs
&&
!
spec
->
multiout
.
hp_
out_nid
[
0
]
)
spec
->
multiout
.
hp_
out_nid
[
0
]
=
alc_auto_look_for_dac
(
codec
,
cfg
->
hp_pins
[
0
]);
if
(
cfg
->
speaker_outs
&&
!
spec
->
multiout
.
extra_out_nid
[
0
])
spec
->
multiout
.
extra_out_nid
[
0
]
=
...
...
@@ -3155,8 +3155,9 @@ static int alc_auto_create_extra_outs(struct hda_codec *codec, int num_pins,
static
int
alc_auto_create_hp_out
(
struct
hda_codec
*
codec
)
{
struct
alc_spec
*
spec
=
codec
->
spec
;
return
alc_auto_create_extra_out
(
codec
,
spec
->
autocfg
.
hp_pins
[
0
],
spec
->
multiout
.
hp_nid
,
return
alc_auto_create_extra_outs
(
codec
,
spec
->
autocfg
.
hp_outs
,
spec
->
autocfg
.
hp_pins
,
spec
->
multiout
.
hp_out_nid
,
"Headphone"
);
}
...
...
@@ -3226,11 +3227,17 @@ static void alc_auto_init_extra_out(struct hda_codec *codec)
int
i
;
hda_nid_t
pin
,
dac
;
pin
=
spec
->
autocfg
.
hp_pins
[
0
];
if
(
pin
)
{
dac
=
spec
->
multiout
.
hp_nid
;
if
(
!
dac
)
for
(
i
=
0
;
i
<
spec
->
autocfg
.
speaker_outs
;
i
++
)
{
pin
=
spec
->
autocfg
.
hp_pins
[
i
];
if
(
!
pin
)
break
;
dac
=
spec
->
multiout
.
hp_out_nid
[
i
];
if
(
!
dac
)
{
if
(
i
>
0
&&
spec
->
multiout
.
hp_out_nid
[
0
])
dac
=
spec
->
multiout
.
hp_out_nid
[
0
];
else
dac
=
spec
->
multiout
.
dac_nids
[
0
];
}
alc_auto_set_output_and_unmute
(
codec
,
pin
,
PIN_HP
,
dac
);
}
for
(
i
=
0
;
i
<
spec
->
autocfg
.
speaker_outs
;
i
++
)
{
...
...
@@ -3696,7 +3703,7 @@ static int alc_parse_auto_config(struct hda_codec *codec,
return
0
;
/* can't find valid BIOS pin config */
}
if
(
cfg
->
line_out_type
==
AUTO_PIN_SPEAKER_OUT
&&
cfg
->
hp_outs
==
1
)
{
if
(
cfg
->
line_out_type
==
AUTO_PIN_SPEAKER_OUT
&&
cfg
->
hp_outs
>
0
)
{
/* use HP as primary out */
cfg
->
speaker_outs
=
cfg
->
line_outs
;
memcpy
(
cfg
->
speaker_pins
,
cfg
->
line_out_pins
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录