Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
43bcb402
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看板
提交
43bcb402
编写于
8月 22, 2013
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'asoc/topic/wm8994' into asoc-next
上级
7254a221
ed6a2772
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
24 addition
and
15 deletion
+24
-15
Documentation/devicetree/bindings/sound/wm8994.txt
Documentation/devicetree/bindings/sound/wm8994.txt
+4
-0
sound/soc/codecs/wm8994.c
sound/soc/codecs/wm8994.c
+20
-15
未找到文件。
Documentation/devicetree/bindings/sound/wm8994.txt
浏览文件 @
43bcb402
...
...
@@ -32,6 +32,10 @@ Optional properties:
The second cell is the flags, encoded as the trigger masks from
Documentation/devicetree/bindings/interrupts.txt
- clocks : A list of up to two phandle and clock specifier pairs
- clock-names : A list of clock names sorted in the same order as clocks.
Valid clock names are "MCLK1" and "MCLK2".
- wlf,gpio-cfg : A list of GPIO configuration register values. If absent,
no configuration of these registers is performed. If any value is
over 0xffff then the register will be left as default. If present 11
...
...
sound/soc/codecs/wm8994.c
浏览文件 @
43bcb402
...
...
@@ -819,8 +819,9 @@ static int clk_sys_event(struct snd_soc_dapm_widget *w,
* don't want false reports.
*/
if
(
wm8994
->
jackdet
&&
!
wm8994
->
clk_has_run
)
{
schedule_delayed_work
(
&
wm8994
->
jackdet_bootstrap
,
msecs_to_jiffies
(
1000
));
queue_delayed_work
(
system_power_efficient_wq
,
&
wm8994
->
jackdet_bootstrap
,
msecs_to_jiffies
(
1000
));
wm8994
->
clk_has_run
=
true
;
}
break
;
...
...
@@ -1432,7 +1433,7 @@ SOC_DAPM_SINGLE("AIF1.1 Switch", WM8994_DAC2_RIGHT_MIXER_ROUTING,
#define WM8994_CLASS_W_SWITCH(xname, reg, shift, max, invert) \
SOC_SINGLE_EXT(xname, reg, shift, max, invert, \
snd_soc_get_volsw, wm8994_put_class_w)
snd_soc_
dapm_
get_volsw, wm8994_put_class_w)
static
int
wm8994_put_class_w
(
struct
snd_kcontrol
*
kcontrol
,
struct
snd_ctl_elem_value
*
ucontrol
)
...
...
@@ -3485,7 +3486,8 @@ static irqreturn_t wm8994_mic_irq(int irq, void *data)
pm_wakeup_event
(
codec
->
dev
,
300
);
schedule_delayed_work
(
&
priv
->
mic_work
,
msecs_to_jiffies
(
250
));
queue_delayed_work
(
system_power_efficient_wq
,
&
priv
->
mic_work
,
msecs_to_jiffies
(
250
));
return
IRQ_HANDLED
;
}
...
...
@@ -3573,8 +3575,9 @@ static void wm8958_mic_id(void *data, u16 status)
/* If nothing present then clear our statuses */
dev_dbg
(
codec
->
dev
,
"Detected open circuit
\n
"
);
schedule_delayed_work
(
&
wm8994
->
open_circuit_work
,
msecs_to_jiffies
(
2500
));
queue_delayed_work
(
system_power_efficient_wq
,
&
wm8994
->
open_circuit_work
,
msecs_to_jiffies
(
2500
));
return
;
}
...
...
@@ -3688,8 +3691,9 @@ static irqreturn_t wm1811_jackdet_irq(int irq, void *data)
WM1811_JACKDET_DB
,
0
);
delay
=
control
->
pdata
.
micdet_delay
;
schedule_delayed_work
(
&
wm8994
->
mic_work
,
msecs_to_jiffies
(
delay
));
queue_delayed_work
(
system_power_efficient_wq
,
&
wm8994
->
mic_work
,
msecs_to_jiffies
(
delay
));
}
else
{
dev_dbg
(
codec
->
dev
,
"Jack not detected
\n
"
);
...
...
@@ -3934,8 +3938,9 @@ static irqreturn_t wm8958_mic_irq(int irq, void *data)
id_delay
=
wm8994
->
wm8994
->
pdata
.
mic_id_delay
;
if
(
wm8994
->
mic_detecting
)
schedule_delayed_work
(
&
wm8994
->
mic_complete_work
,
msecs_to_jiffies
(
id_delay
));
queue_delayed_work
(
system_power_efficient_wq
,
&
wm8994
->
mic_complete_work
,
msecs_to_jiffies
(
id_delay
));
else
wm8958_button_det
(
codec
,
reg
);
...
...
@@ -4008,9 +4013,6 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
wm8994
->
micdet_irq
=
control
->
pdata
.
micdet_irq
;
pm_runtime_enable
(
codec
->
dev
);
pm_runtime_idle
(
codec
->
dev
);
/* By default use idle_bias_off, will override for WM8994 */
codec
->
dapm
.
idle_bias_off
=
1
;
...
...
@@ -4383,8 +4385,6 @@ static int wm8994_codec_remove(struct snd_soc_codec *codec)
wm8994_set_bias_level
(
codec
,
SND_SOC_BIAS_OFF
);
pm_runtime_disable
(
codec
->
dev
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
wm8994
->
fll_locked
);
i
++
)
wm8994_free_irq
(
wm8994
->
wm8994
,
WM8994_IRQ_FLL1_LOCK
+
i
,
&
wm8994
->
fll_locked
[
i
]);
...
...
@@ -4443,6 +4443,9 @@ static int wm8994_probe(struct platform_device *pdev)
wm8994
->
wm8994
=
dev_get_drvdata
(
pdev
->
dev
.
parent
);
pm_runtime_enable
(
&
pdev
->
dev
);
pm_runtime_idle
(
&
pdev
->
dev
);
return
snd_soc_register_codec
(
&
pdev
->
dev
,
&
soc_codec_dev_wm8994
,
wm8994_dai
,
ARRAY_SIZE
(
wm8994_dai
));
}
...
...
@@ -4450,6 +4453,8 @@ static int wm8994_probe(struct platform_device *pdev)
static
int
wm8994_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_codec
(
&
pdev
->
dev
);
pm_runtime_disable
(
&
pdev
->
dev
);
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录