Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
bug2833
cloud-kernel
提交
2133991d
cloud-kernel
项目概览
bug2833
/
cloud-kernel
与 Fork 源项目一致
Fork自
openanolis / cloud-kernel
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2133991d
编写于
3月 06, 2011
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fix/asoc' into for-linus
上级
38c07641
04d28681
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
47 addition
and
9 deletion
+47
-9
sound/soc/codecs/wm8994.c
sound/soc/codecs/wm8994.c
+42
-9
sound/soc/codecs/wm9081.c
sound/soc/codecs/wm9081.c
+5
-0
未找到文件。
sound/soc/codecs/wm8994.c
浏览文件 @
2133991d
...
...
@@ -110,6 +110,9 @@ struct wm8994_priv {
unsigned
int
aif1clk_enable
:
1
;
unsigned
int
aif2clk_enable
:
1
;
unsigned
int
aif1clk_disable
:
1
;
unsigned
int
aif2clk_disable
:
1
;
};
static
int
wm8994_readable
(
unsigned
int
reg
)
...
...
@@ -1015,14 +1018,18 @@ static int late_enable_ev(struct snd_soc_dapm_widget *w,
switch
(
event
)
{
case
SND_SOC_DAPM_PRE_PMU
:
if
(
wm8994
->
aif1clk_enable
)
if
(
wm8994
->
aif1clk_enable
)
{
snd_soc_update_bits
(
codec
,
WM8994_AIF1_CLOCKING_1
,
WM8994_AIF1CLK_ENA_MASK
,
WM8994_AIF1CLK_ENA
);
if
(
wm8994
->
aif2clk_enable
)
wm8994
->
aif1clk_enable
=
0
;
}
if
(
wm8994
->
aif2clk_enable
)
{
snd_soc_update_bits
(
codec
,
WM8994_AIF2_CLOCKING_1
,
WM8994_AIF2CLK_ENA_MASK
,
WM8994_AIF2CLK_ENA
);
wm8994
->
aif2clk_enable
=
0
;
}
break
;
}
...
...
@@ -1037,15 +1044,15 @@ static int late_disable_ev(struct snd_soc_dapm_widget *w,
switch
(
event
)
{
case
SND_SOC_DAPM_POST_PMD
:
if
(
wm8994
->
aif1clk_
en
able
)
{
if
(
wm8994
->
aif1clk_
dis
able
)
{
snd_soc_update_bits
(
codec
,
WM8994_AIF1_CLOCKING_1
,
WM8994_AIF1CLK_ENA_MASK
,
0
);
wm8994
->
aif1clk_
en
able
=
0
;
wm8994
->
aif1clk_
dis
able
=
0
;
}
if
(
wm8994
->
aif2clk_
en
able
)
{
if
(
wm8994
->
aif2clk_
dis
able
)
{
snd_soc_update_bits
(
codec
,
WM8994_AIF2_CLOCKING_1
,
WM8994_AIF2CLK_ENA_MASK
,
0
);
wm8994
->
aif2clk_
en
able
=
0
;
wm8994
->
aif2clk_
dis
able
=
0
;
}
break
;
}
...
...
@@ -1063,6 +1070,9 @@ static int aif1clk_ev(struct snd_soc_dapm_widget *w,
case
SND_SOC_DAPM_PRE_PMU
:
wm8994
->
aif1clk_enable
=
1
;
break
;
case
SND_SOC_DAPM_POST_PMD
:
wm8994
->
aif1clk_disable
=
1
;
break
;
}
return
0
;
...
...
@@ -1078,11 +1088,21 @@ static int aif2clk_ev(struct snd_soc_dapm_widget *w,
case
SND_SOC_DAPM_PRE_PMU
:
wm8994
->
aif2clk_enable
=
1
;
break
;
case
SND_SOC_DAPM_POST_PMD
:
wm8994
->
aif2clk_disable
=
1
;
break
;
}
return
0
;
}
static
int
adc_mux_ev
(
struct
snd_soc_dapm_widget
*
w
,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
late_enable_ev
(
w
,
kcontrol
,
event
);
return
0
;
}
static
int
dac_ev
(
struct
snd_soc_dapm_widget
*
w
,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
...
...
@@ -1403,6 +1423,18 @@ SND_SOC_DAPM_DAC("DAC1L", NULL, WM8994_POWER_MANAGEMENT_5, 1, 0),
SND_SOC_DAPM_DAC
(
"DAC1R"
,
NULL
,
WM8994_POWER_MANAGEMENT_5
,
0
,
0
),
};
static
const
struct
snd_soc_dapm_widget
wm8994_adc_revd_widgets
[]
=
{
SND_SOC_DAPM_MUX_E
(
"ADCL Mux"
,
WM8994_POWER_MANAGEMENT_4
,
1
,
0
,
&
adcl_mux
,
adc_mux_ev
,
SND_SOC_DAPM_PRE_PMU
),
SND_SOC_DAPM_MUX_E
(
"ADCR Mux"
,
WM8994_POWER_MANAGEMENT_4
,
0
,
0
,
&
adcr_mux
,
adc_mux_ev
,
SND_SOC_DAPM_PRE_PMU
),
};
static
const
struct
snd_soc_dapm_widget
wm8994_adc_widgets
[]
=
{
SND_SOC_DAPM_MUX
(
"ADCL Mux"
,
WM8994_POWER_MANAGEMENT_4
,
1
,
0
,
&
adcl_mux
),
SND_SOC_DAPM_MUX
(
"ADCR Mux"
,
WM8994_POWER_MANAGEMENT_4
,
0
,
0
,
&
adcr_mux
),
};
static
const
struct
snd_soc_dapm_widget
wm8994_dapm_widgets
[]
=
{
SND_SOC_DAPM_INPUT
(
"DMIC1DAT"
),
SND_SOC_DAPM_INPUT
(
"DMIC2DAT"
),
...
...
@@ -1497,9 +1529,6 @@ SND_SOC_DAPM_ADC("DMIC1R", NULL, WM8994_POWER_MANAGEMENT_4, 2, 0),
SND_SOC_DAPM_ADC
(
"ADCL"
,
NULL
,
SND_SOC_NOPM
,
1
,
0
),
SND_SOC_DAPM_ADC
(
"ADCR"
,
NULL
,
SND_SOC_NOPM
,
0
,
0
),
SND_SOC_DAPM_MUX
(
"ADCL Mux"
,
WM8994_POWER_MANAGEMENT_4
,
1
,
0
,
&
adcl_mux
),
SND_SOC_DAPM_MUX
(
"ADCR Mux"
,
WM8994_POWER_MANAGEMENT_4
,
0
,
0
,
&
adcr_mux
),
SND_SOC_DAPM_MUX
(
"Left Headphone Mux"
,
SND_SOC_NOPM
,
0
,
0
,
&
hpl_mux
),
SND_SOC_DAPM_MUX
(
"Right Headphone Mux"
,
SND_SOC_NOPM
,
0
,
0
,
&
hpr_mux
),
...
...
@@ -3280,11 +3309,15 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
if
(
wm8994
->
revision
<
4
)
{
snd_soc_dapm_new_controls
(
dapm
,
wm8994_lateclk_revd_widgets
,
ARRAY_SIZE
(
wm8994_lateclk_revd_widgets
));
snd_soc_dapm_new_controls
(
dapm
,
wm8994_adc_revd_widgets
,
ARRAY_SIZE
(
wm8994_adc_revd_widgets
));
snd_soc_dapm_new_controls
(
dapm
,
wm8994_dac_revd_widgets
,
ARRAY_SIZE
(
wm8994_dac_revd_widgets
));
}
else
{
snd_soc_dapm_new_controls
(
dapm
,
wm8994_lateclk_widgets
,
ARRAY_SIZE
(
wm8994_lateclk_widgets
));
snd_soc_dapm_new_controls
(
dapm
,
wm8994_adc_widgets
,
ARRAY_SIZE
(
wm8994_adc_widgets
));
snd_soc_dapm_new_controls
(
dapm
,
wm8994_dac_widgets
,
ARRAY_SIZE
(
wm8994_dac_widgets
));
}
...
...
sound/soc/codecs/wm9081.c
浏览文件 @
2133991d
...
...
@@ -15,6 +15,7 @@
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/pm.h>
#include <linux/i2c.h>
#include <linux/platform_device.h>
...
...
@@ -1341,6 +1342,10 @@ static __devinit int wm9081_i2c_probe(struct i2c_client *i2c,
wm9081
->
control_type
=
SND_SOC_I2C
;
wm9081
->
control_data
=
i2c
;
if
(
dev_get_platdata
(
&
i2c
->
dev
))
memcpy
(
&
wm9081
->
retune
,
dev_get_platdata
(
&
i2c
->
dev
),
sizeof
(
wm9081
->
retune
));
ret
=
snd_soc_register_codec
(
&
i2c
->
dev
,
&
soc_codec_dev_wm9081
,
&
wm9081_dai
,
1
);
if
(
ret
<
0
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录