Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
c38a881e
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
c38a881e
编写于
6月 17, 2013
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'asoc/fix/wm8962' into asoc-linus
上级
a87c863c
f5055f93
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
11 deletion
+24
-11
sound/soc/codecs/wm8962.c
sound/soc/codecs/wm8962.c
+24
-11
未找到文件。
sound/soc/codecs/wm8962.c
浏览文件 @
c38a881e
...
...
@@ -1600,7 +1600,6 @@ static int wm8962_put_hp_sw(struct snd_kcontrol *kcontrol,
struct
snd_ctl_elem_value
*
ucontrol
)
{
struct
snd_soc_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
u16
*
reg_cache
=
codec
->
reg_cache
;
int
ret
;
/* Apply the update (if any) */
...
...
@@ -1609,16 +1608,19 @@ static int wm8962_put_hp_sw(struct snd_kcontrol *kcontrol,
return
0
;
/* If the left PGA is enabled hit that VU bit... */
if
(
snd_soc_read
(
codec
,
WM8962_PWR_MGMT_2
)
&
WM8962_HPOUTL_PGA_ENA
)
return
snd_soc_write
(
codec
,
WM8962_HPOUTL_VOLUME
,
reg_cache
[
WM8962_HPOUTL_VOLUME
]);
ret
=
snd_soc_read
(
codec
,
WM8962_PWR_MGMT_2
);
if
(
ret
&
WM8962_HPOUTL_PGA_ENA
)
{
snd_soc_write
(
codec
,
WM8962_HPOUTL_VOLUME
,
snd_soc_read
(
codec
,
WM8962_HPOUTL_VOLUME
));
return
1
;
}
/* ...otherwise the right. The VU is stereo. */
if
(
snd_soc_read
(
codec
,
WM8962_PWR_MGMT_2
)
&
WM8962_HPOUTR_PGA_ENA
)
return
snd_soc_write
(
codec
,
WM8962_HPOUTR_VOLUME
,
reg_cache
[
WM8962_HPOUTR_VOLUME
]
);
if
(
ret
&
WM8962_HPOUTR_PGA_ENA
)
snd_soc_write
(
codec
,
WM8962_HPOUTR_VOLUME
,
snd_soc_read
(
codec
,
WM8962_HPOUTR_VOLUME
)
);
return
0
;
return
1
;
}
/* The VU bits for the speakers are in a different register to the mute
...
...
@@ -3374,7 +3376,6 @@ static int wm8962_probe(struct snd_soc_codec *codec)
int
ret
;
struct
wm8962_priv
*
wm8962
=
snd_soc_codec_get_drvdata
(
codec
);
struct
wm8962_pdata
*
pdata
=
dev_get_platdata
(
codec
->
dev
);
u16
*
reg_cache
=
codec
->
reg_cache
;
int
i
,
trigger
,
irq_pol
;
bool
dmicclk
,
dmicdat
;
...
...
@@ -3432,8 +3433,9 @@ static int wm8962_probe(struct snd_soc_codec *codec)
/* Put the speakers into mono mode? */
if
(
pdata
->
spk_mono
)
reg_cache
[
WM8962_CLASS_D_CONTROL_2
]
|=
WM8962_SPK_MONO
;
snd_soc_update_bits
(
codec
,
WM8962_CLASS_D_CONTROL_2
,
WM8962_SPK_MONO_MASK
,
WM8962_SPK_MONO
);
/* Micbias setup, detection enable and detection
* threasholds. */
...
...
@@ -3721,6 +3723,17 @@ static int wm8962_runtime_resume(struct device *dev)
regcache_sync
(
wm8962
->
regmap
);
regmap_update_bits
(
wm8962
->
regmap
,
WM8962_ANTI_POP
,
WM8962_STARTUP_BIAS_ENA
|
WM8962_VMID_BUF_ENA
,
WM8962_STARTUP_BIAS_ENA
|
WM8962_VMID_BUF_ENA
);
/* Bias enable at 2*5k (fast start-up) */
regmap_update_bits
(
wm8962
->
regmap
,
WM8962_PWR_MGMT_1
,
WM8962_BIAS_ENA
|
WM8962_VMID_SEL_MASK
,
WM8962_BIAS_ENA
|
0x180
);
msleep
(
5
);
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录