Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
11be6a26
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看板
提交
11be6a26
编写于
2月 26, 2011
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fix/asoc' into for-linus
上级
4dfb8a45
43c63188
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
233 addition
and
45 deletion
+233
-45
include/sound/wm8903.h
include/sound/wm8903.h
+3
-7
sound/soc/codecs/cx20442.c
sound/soc/codecs/cx20442.c
+1
-1
sound/soc/codecs/wm8903.c
sound/soc/codecs/wm8903.c
+1
-1
sound/soc/codecs/wm8903.h
sound/soc/codecs/wm8903.h
+1
-1
sound/soc/codecs/wm8994.c
sound/soc/codecs/wm8994.c
+185
-17
sound/soc/codecs/wm_hubs.c
sound/soc/codecs/wm_hubs.c
+3
-0
sound/soc/imx/eukrea-tlv320.c
sound/soc/imx/eukrea-tlv320.c
+1
-1
sound/soc/pxa/e740_wm9705.c
sound/soc/pxa/e740_wm9705.c
+2
-2
sound/soc/pxa/e750_wm9705.c
sound/soc/pxa/e750_wm9705.c
+2
-2
sound/soc/pxa/e800_wm9712.c
sound/soc/pxa/e800_wm9712.c
+2
-2
sound/soc/pxa/em-x270.c
sound/soc/pxa/em-x270.c
+2
-2
sound/soc/pxa/mioa701_wm9713.c
sound/soc/pxa/mioa701_wm9713.c
+2
-2
sound/soc/pxa/palm27x.c
sound/soc/pxa/palm27x.c
+2
-2
sound/soc/pxa/tosa.c
sound/soc/pxa/tosa.c
+2
-2
sound/soc/pxa/zylonite.c
sound/soc/pxa/zylonite.c
+2
-2
sound/soc/soc-dapm.c
sound/soc/soc-dapm.c
+22
-1
未找到文件。
include/sound/wm8903.h
浏览文件 @
11be6a26
...
...
@@ -17,13 +17,9 @@
/*
* R6 (0x06) - Mic Bias Control 0
*/
#define WM8903_MICDET_HYST_ENA 0x0080
/* MICDET_HYST_ENA */
#define WM8903_MICDET_HYST_ENA_MASK 0x0080
/* MICDET_HYST_ENA */
#define WM8903_MICDET_HYST_ENA_SHIFT 7
/* MICDET_HYST_ENA */
#define WM8903_MICDET_HYST_ENA_WIDTH 1
/* MICDET_HYST_ENA */
#define WM8903_MICDET_THR_MASK 0x0070
/* MICDET_THR - [6:4] */
#define WM8903_MICDET_THR_SHIFT 4
/* MICDET_THR - [6:4] */
#define WM8903_MICDET_THR_WIDTH 3
/* MICDET_THR - [6:4] */
#define WM8903_MICDET_THR_MASK 0x0030
/* MICDET_THR - [5:4] */
#define WM8903_MICDET_THR_SHIFT 4
/* MICDET_THR - [5:4] */
#define WM8903_MICDET_THR_WIDTH 2
/* MICDET_THR - [5:4] */
#define WM8903_MICSHORT_THR_MASK 0x000C
/* MICSHORT_THR - [3:2] */
#define WM8903_MICSHORT_THR_SHIFT 2
/* MICSHORT_THR - [3:2] */
#define WM8903_MICSHORT_THR_WIDTH 2
/* MICSHORT_THR - [3:2] */
...
...
sound/soc/codecs/cx20442.c
浏览文件 @
11be6a26
...
...
@@ -367,7 +367,7 @@ static int cx20442_codec_remove(struct snd_soc_codec *codec)
return
0
;
}
static
const
u8
cx20442_reg
=
CX20442_TELOUT
|
CX20442_MIC
;
static
const
u8
cx20442_reg
;
static
struct
snd_soc_codec_driver
cx20442_codec_dev
=
{
.
probe
=
cx20442_codec_probe
,
...
...
sound/soc/codecs/wm8903.c
浏览文件 @
11be6a26
...
...
@@ -1482,7 +1482,7 @@ int wm8903_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack,
WM8903_MICDET_EINT
|
WM8903_MICSHRT_EINT
,
irq_mask
);
if
(
det
&&
shrt
)
{
if
(
det
||
shrt
)
{
/* Enable mic detection, this may not have been set through
* platform data (eg, if the defaults are OK). */
snd_soc_update_bits
(
codec
,
WM8903_WRITE_SEQUENCER_0
,
...
...
sound/soc/codecs/wm8903.h
浏览文件 @
11be6a26
...
...
@@ -165,7 +165,7 @@ extern int wm8903_mic_detect(struct snd_soc_codec *codec,
#define WM8903_VMID_RES_50K 2
#define WM8903_VMID_RES_250K 3
#define WM8903_VMID_RES_5K
4
#define WM8903_VMID_RES_5K
6
/*
* R8 (0x08) - Analogue DAC 0
...
...
sound/soc/codecs/wm8994.c
浏览文件 @
11be6a26
...
...
@@ -107,6 +107,9 @@ struct wm8994_priv {
int
revision
;
struct
wm8994_pdata
*
pdata
;
unsigned
int
aif1clk_enable
:
1
;
unsigned
int
aif2clk_enable
:
1
;
};
static
int
wm8994_readable
(
unsigned
int
reg
)
...
...
@@ -1004,6 +1007,93 @@ static void wm8994_update_class_w(struct snd_soc_codec *codec)
}
}
static
int
late_enable_ev
(
struct
snd_soc_dapm_widget
*
w
,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
struct
snd_soc_codec
*
codec
=
w
->
codec
;
struct
wm8994_priv
*
wm8994
=
snd_soc_codec_get_drvdata
(
codec
);
switch
(
event
)
{
case
SND_SOC_DAPM_PRE_PMU
:
if
(
wm8994
->
aif1clk_enable
)
snd_soc_update_bits
(
codec
,
WM8994_AIF1_CLOCKING_1
,
WM8994_AIF1CLK_ENA_MASK
,
WM8994_AIF1CLK_ENA
);
if
(
wm8994
->
aif2clk_enable
)
snd_soc_update_bits
(
codec
,
WM8994_AIF2_CLOCKING_1
,
WM8994_AIF2CLK_ENA_MASK
,
WM8994_AIF2CLK_ENA
);
break
;
}
return
0
;
}
static
int
late_disable_ev
(
struct
snd_soc_dapm_widget
*
w
,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
struct
snd_soc_codec
*
codec
=
w
->
codec
;
struct
wm8994_priv
*
wm8994
=
snd_soc_codec_get_drvdata
(
codec
);
switch
(
event
)
{
case
SND_SOC_DAPM_POST_PMD
:
if
(
wm8994
->
aif1clk_enable
)
{
snd_soc_update_bits
(
codec
,
WM8994_AIF1_CLOCKING_1
,
WM8994_AIF1CLK_ENA_MASK
,
0
);
wm8994
->
aif1clk_enable
=
0
;
}
if
(
wm8994
->
aif2clk_enable
)
{
snd_soc_update_bits
(
codec
,
WM8994_AIF2_CLOCKING_1
,
WM8994_AIF2CLK_ENA_MASK
,
0
);
wm8994
->
aif2clk_enable
=
0
;
}
break
;
}
return
0
;
}
static
int
aif1clk_ev
(
struct
snd_soc_dapm_widget
*
w
,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
struct
snd_soc_codec
*
codec
=
w
->
codec
;
struct
wm8994_priv
*
wm8994
=
snd_soc_codec_get_drvdata
(
codec
);
switch
(
event
)
{
case
SND_SOC_DAPM_PRE_PMU
:
wm8994
->
aif1clk_enable
=
1
;
break
;
}
return
0
;
}
static
int
aif2clk_ev
(
struct
snd_soc_dapm_widget
*
w
,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
struct
snd_soc_codec
*
codec
=
w
->
codec
;
struct
wm8994_priv
*
wm8994
=
snd_soc_codec_get_drvdata
(
codec
);
switch
(
event
)
{
case
SND_SOC_DAPM_PRE_PMU
:
wm8994
->
aif2clk_enable
=
1
;
break
;
}
return
0
;
}
static
int
dac_ev
(
struct
snd_soc_dapm_widget
*
w
,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
struct
snd_soc_codec
*
codec
=
w
->
codec
;
unsigned
int
mask
=
1
<<
w
->
shift
;
snd_soc_update_bits
(
codec
,
WM8994_POWER_MANAGEMENT_5
,
mask
,
mask
);
return
0
;
}
static
const
char
*
hp_mux_text
[]
=
{
"Mixer"
,
"DAC"
,
...
...
@@ -1272,6 +1362,47 @@ static const struct soc_enum aif2dacr_src_enum =
static
const
struct
snd_kcontrol_new
aif2dacr_src_mux
=
SOC_DAPM_ENUM
(
"AIF2DACR Mux"
,
aif2dacr_src_enum
);
static
const
struct
snd_soc_dapm_widget
wm8994_lateclk_revd_widgets
[]
=
{
SND_SOC_DAPM_SUPPLY
(
"AIF1CLK"
,
SND_SOC_NOPM
,
0
,
0
,
aif1clk_ev
,
SND_SOC_DAPM_PRE_PMU
|
SND_SOC_DAPM_POST_PMD
),
SND_SOC_DAPM_SUPPLY
(
"AIF2CLK"
,
SND_SOC_NOPM
,
0
,
0
,
aif2clk_ev
,
SND_SOC_DAPM_PRE_PMU
|
SND_SOC_DAPM_POST_PMD
),
SND_SOC_DAPM_PGA_E
(
"Late DAC1L Enable PGA"
,
SND_SOC_NOPM
,
0
,
0
,
NULL
,
0
,
late_enable_ev
,
SND_SOC_DAPM_PRE_PMU
),
SND_SOC_DAPM_PGA_E
(
"Late DAC1R Enable PGA"
,
SND_SOC_NOPM
,
0
,
0
,
NULL
,
0
,
late_enable_ev
,
SND_SOC_DAPM_PRE_PMU
),
SND_SOC_DAPM_PGA_E
(
"Late DAC2L Enable PGA"
,
SND_SOC_NOPM
,
0
,
0
,
NULL
,
0
,
late_enable_ev
,
SND_SOC_DAPM_PRE_PMU
),
SND_SOC_DAPM_PGA_E
(
"Late DAC2R Enable PGA"
,
SND_SOC_NOPM
,
0
,
0
,
NULL
,
0
,
late_enable_ev
,
SND_SOC_DAPM_PRE_PMU
),
SND_SOC_DAPM_POST
(
"Late Disable PGA"
,
late_disable_ev
)
};
static
const
struct
snd_soc_dapm_widget
wm8994_lateclk_widgets
[]
=
{
SND_SOC_DAPM_SUPPLY
(
"AIF1CLK"
,
WM8994_AIF1_CLOCKING_1
,
0
,
0
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY
(
"AIF2CLK"
,
WM8994_AIF2_CLOCKING_1
,
0
,
0
,
NULL
,
0
)
};
static
const
struct
snd_soc_dapm_widget
wm8994_dac_revd_widgets
[]
=
{
SND_SOC_DAPM_DAC_E
(
"DAC2L"
,
NULL
,
SND_SOC_NOPM
,
3
,
0
,
dac_ev
,
SND_SOC_DAPM_PRE_PMU
),
SND_SOC_DAPM_DAC_E
(
"DAC2R"
,
NULL
,
SND_SOC_NOPM
,
2
,
0
,
dac_ev
,
SND_SOC_DAPM_PRE_PMU
),
SND_SOC_DAPM_DAC_E
(
"DAC1L"
,
NULL
,
SND_SOC_NOPM
,
1
,
0
,
dac_ev
,
SND_SOC_DAPM_PRE_PMU
),
SND_SOC_DAPM_DAC_E
(
"DAC1R"
,
NULL
,
SND_SOC_NOPM
,
0
,
0
,
dac_ev
,
SND_SOC_DAPM_PRE_PMU
),
};
static
const
struct
snd_soc_dapm_widget
wm8994_dac_widgets
[]
=
{
SND_SOC_DAPM_DAC
(
"DAC2L"
,
NULL
,
WM8994_POWER_MANAGEMENT_5
,
3
,
0
),
SND_SOC_DAPM_DAC
(
"DAC1R"
,
NULL
,
WM8994_POWER_MANAGEMENT_5
,
2
,
0
),
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_dapm_widgets
[]
=
{
SND_SOC_DAPM_INPUT
(
"DMIC1DAT"
),
SND_SOC_DAPM_INPUT
(
"DMIC2DAT"
),
...
...
@@ -1284,9 +1415,6 @@ SND_SOC_DAPM_SUPPLY("DSP1CLK", WM8994_CLOCKING_1, 3, 0, NULL, 0),
SND_SOC_DAPM_SUPPLY
(
"DSP2CLK"
,
WM8994_CLOCKING_1
,
2
,
0
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY
(
"DSPINTCLK"
,
WM8994_CLOCKING_1
,
1
,
0
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY
(
"AIF1CLK"
,
WM8994_AIF1_CLOCKING_1
,
0
,
0
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY
(
"AIF2CLK"
,
WM8994_AIF2_CLOCKING_1
,
0
,
0
,
NULL
,
0
),
SND_SOC_DAPM_AIF_OUT
(
"AIF1ADC1L"
,
NULL
,
0
,
WM8994_POWER_MANAGEMENT_4
,
9
,
0
),
SND_SOC_DAPM_AIF_OUT
(
"AIF1ADC1R"
,
NULL
,
...
...
@@ -1372,11 +1500,6 @@ 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_DAC
(
"DAC2L"
,
NULL
,
WM8994_POWER_MANAGEMENT_5
,
3
,
0
),
SND_SOC_DAPM_DAC
(
"DAC2R"
,
NULL
,
WM8994_POWER_MANAGEMENT_5
,
2
,
0
),
SND_SOC_DAPM_DAC
(
"DAC1L"
,
NULL
,
WM8994_POWER_MANAGEMENT_5
,
1
,
0
),
SND_SOC_DAPM_DAC
(
"DAC1R"
,
NULL
,
WM8994_POWER_MANAGEMENT_5
,
0
,
0
),
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
),
...
...
@@ -1516,14 +1639,12 @@ static const struct snd_soc_dapm_route intercon[] = {
{
"AIF2ADC Mux"
,
"AIF3DACDAT"
,
"AIF3ADCDAT"
},
/* DAC1 inputs */
{
"DAC1L"
,
NULL
,
"DAC1L Mixer"
},
{
"DAC1L Mixer"
,
"AIF2 Switch"
,
"AIF2DACL"
},
{
"DAC1L Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2L"
},
{
"DAC1L Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1L"
},
{
"DAC1L Mixer"
,
"Left Sidetone Switch"
,
"Left Sidetone"
},
{
"DAC1L Mixer"
,
"Right Sidetone Switch"
,
"Right Sidetone"
},
{
"DAC1R"
,
NULL
,
"DAC1R Mixer"
},
{
"DAC1R Mixer"
,
"AIF2 Switch"
,
"AIF2DACR"
},
{
"DAC1R Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2R"
},
{
"DAC1R Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1R"
},
...
...
@@ -1532,7 +1653,6 @@ static const struct snd_soc_dapm_route intercon[] = {
/* DAC2/AIF2 outputs */
{
"AIF2ADCL"
,
NULL
,
"AIF2DAC2L Mixer"
},
{
"DAC2L"
,
NULL
,
"AIF2DAC2L Mixer"
},
{
"AIF2DAC2L Mixer"
,
"AIF2 Switch"
,
"AIF2DACL"
},
{
"AIF2DAC2L Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2L"
},
{
"AIF2DAC2L Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1L"
},
...
...
@@ -1540,7 +1660,6 @@ static const struct snd_soc_dapm_route intercon[] = {
{
"AIF2DAC2L Mixer"
,
"Right Sidetone Switch"
,
"Right Sidetone"
},
{
"AIF2ADCR"
,
NULL
,
"AIF2DAC2R Mixer"
},
{
"DAC2R"
,
NULL
,
"AIF2DAC2R Mixer"
},
{
"AIF2DAC2R Mixer"
,
"AIF2 Switch"
,
"AIF2DACR"
},
{
"AIF2DAC2R Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2R"
},
{
"AIF2DAC2R Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1R"
},
...
...
@@ -1584,6 +1703,24 @@ static const struct snd_soc_dapm_route intercon[] = {
{
"Right Headphone Mux"
,
"DAC"
,
"DAC1R"
},
};
static
const
struct
snd_soc_dapm_route
wm8994_lateclk_revd_intercon
[]
=
{
{
"DAC1L"
,
NULL
,
"Late DAC1L Enable PGA"
},
{
"Late DAC1L Enable PGA"
,
NULL
,
"DAC1L Mixer"
},
{
"DAC1R"
,
NULL
,
"Late DAC1R Enable PGA"
},
{
"Late DAC1R Enable PGA"
,
NULL
,
"DAC1R Mixer"
},
{
"DAC2L"
,
NULL
,
"Late DAC2L Enable PGA"
},
{
"Late DAC2L Enable PGA"
,
NULL
,
"AIF2DAC2L Mixer"
},
{
"DAC2R"
,
NULL
,
"Late DAC2R Enable PGA"
},
{
"Late DAC2R Enable PGA"
,
NULL
,
"AIF2DAC2R Mixer"
}
};
static
const
struct
snd_soc_dapm_route
wm8994_lateclk_intercon
[]
=
{
{
"DAC1L"
,
NULL
,
"DAC1L Mixer"
},
{
"DAC1R"
,
NULL
,
"DAC1R Mixer"
},
{
"DAC2L"
,
NULL
,
"AIF2DAC2L Mixer"
},
{
"DAC2R"
,
NULL
,
"AIF2DAC2R Mixer"
},
};
static
const
struct
snd_soc_dapm_route
wm8994_revd_intercon
[]
=
{
{
"AIF1DACDAT"
,
NULL
,
"AIF2DACDAT"
},
{
"AIF2DACDAT"
,
NULL
,
"AIF1DACDAT"
},
...
...
@@ -2514,6 +2651,22 @@ static int wm8994_resume(struct snd_soc_codec *codec)
{
struct
wm8994_priv
*
wm8994
=
snd_soc_codec_get_drvdata
(
codec
);
int
i
,
ret
;
unsigned
int
val
,
mask
;
if
(
wm8994
->
revision
<
4
)
{
/* force a HW read */
val
=
wm8994_reg_read
(
codec
->
control_data
,
WM8994_POWER_MANAGEMENT_5
);
/* modify the cache only */
codec
->
cache_only
=
1
;
mask
=
WM8994_DAC1R_ENA
|
WM8994_DAC1L_ENA
|
WM8994_DAC2R_ENA
|
WM8994_DAC2L_ENA
;
val
&=
mask
;
snd_soc_update_bits
(
codec
,
WM8994_POWER_MANAGEMENT_5
,
mask
,
val
);
codec
->
cache_only
=
0
;
}
/* Restore the registers */
ret
=
snd_soc_cache_sync
(
codec
);
...
...
@@ -2847,11 +3000,10 @@ static void wm8958_default_micdet(u16 status, void *data)
report
|=
SND_JACK_BTN_5
;
done:
snd_soc_jack_report
(
wm8994
->
micdet
[
0
].
jack
,
snd_soc_jack_report
(
wm8994
->
micdet
[
0
].
jack
,
report
,
SND_JACK_BTN_0
|
SND_JACK_BTN_1
|
SND_JACK_BTN_2
|
SND_JACK_BTN_3
|
SND_JACK_BTN_4
|
SND_JACK_BTN_5
|
SND_JACK_MICROPHONE
|
SND_JACK_VIDEOOUT
,
report
);
SND_JACK_MICROPHONE
|
SND_JACK_VIDEOOUT
);
}
/**
...
...
@@ -3125,6 +3277,17 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
case
WM8994
:
snd_soc_dapm_new_controls
(
dapm
,
wm8994_specific_dapm_widgets
,
ARRAY_SIZE
(
wm8994_specific_dapm_widgets
));
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_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_dac_widgets
,
ARRAY_SIZE
(
wm8994_dac_widgets
));
}
break
;
case
WM8958
:
snd_soc_add_controls
(
codec
,
wm8958_snd_controls
,
...
...
@@ -3143,10 +3306,15 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
snd_soc_dapm_add_routes
(
dapm
,
wm8994_intercon
,
ARRAY_SIZE
(
wm8994_intercon
));
if
(
wm8994
->
revision
<
4
)
if
(
wm8994
->
revision
<
4
)
{
snd_soc_dapm_add_routes
(
dapm
,
wm8994_revd_intercon
,
ARRAY_SIZE
(
wm8994_revd_intercon
));
snd_soc_dapm_add_routes
(
dapm
,
wm8994_lateclk_revd_intercon
,
ARRAY_SIZE
(
wm8994_lateclk_revd_intercon
));
}
else
{
snd_soc_dapm_add_routes
(
dapm
,
wm8994_lateclk_intercon
,
ARRAY_SIZE
(
wm8994_lateclk_intercon
));
}
break
;
case
WM8958
:
snd_soc_dapm_add_routes
(
dapm
,
wm8958_intercon
,
...
...
sound/soc/codecs/wm_hubs.c
浏览文件 @
11be6a26
...
...
@@ -674,6 +674,9 @@ SND_SOC_DAPM_OUTPUT("LINEOUT2N"),
};
static
const
struct
snd_soc_dapm_route
analogue_routes
[]
=
{
{
"MICBIAS1"
,
NULL
,
"CLK_SYS"
},
{
"MICBIAS2"
,
NULL
,
"CLK_SYS"
},
{
"IN1L PGA"
,
"IN1LP Switch"
,
"IN1LP"
},
{
"IN1L PGA"
,
"IN1LN Switch"
,
"IN1LN"
},
...
...
sound/soc/imx/eukrea-tlv320.c
浏览文件 @
11be6a26
...
...
@@ -79,7 +79,7 @@ static struct snd_soc_dai_link eukrea_tlv320_dai = {
.
name
=
"tlv320aic23"
,
.
stream_name
=
"TLV320AIC23"
,
.
codec_dai_name
=
"tlv320aic23-hifi"
,
.
platform_name
=
"imx-pcm-audio.0"
,
.
platform_name
=
"imx-
fiq-
pcm-audio.0"
,
.
codec_name
=
"tlv320aic23-codec.0-001a"
,
.
cpu_dai_name
=
"imx-ssi.0"
,
.
ops
=
&
eukrea_tlv320_snd_ops
,
...
...
sound/soc/pxa/e740_wm9705.c
浏览文件 @
11be6a26
...
...
@@ -117,7 +117,7 @@ static struct snd_soc_dai_link e740_dai[] = {
{
.
name
=
"AC97"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_dai_name
=
"wm9705-hifi"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9705-codec"
,
...
...
@@ -126,7 +126,7 @@ static struct snd_soc_dai_link e740_dai[] = {
{
.
name
=
"AC97 Aux"
,
.
stream_name
=
"AC97 Aux"
,
.
cpu_dai_name
=
"pxa
-ac97.1
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97-aux
"
,
.
codec_dai_name
=
"wm9705-aux"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9705-codec"
,
...
...
sound/soc/pxa/e750_wm9705.c
浏览文件 @
11be6a26
...
...
@@ -99,7 +99,7 @@ static struct snd_soc_dai_link e750_dai[] = {
{
.
name
=
"AC97"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_dai_name
=
"wm9705-hifi"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9705-codec"
,
...
...
@@ -109,7 +109,7 @@ static struct snd_soc_dai_link e750_dai[] = {
{
.
name
=
"AC97 Aux"
,
.
stream_name
=
"AC97 Aux"
,
.
cpu_dai_name
=
"pxa
-ac97.1
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97-aux
"
,
.
codec_dai_name
=
"wm9705-aux"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9705-codec"
,
...
...
sound/soc/pxa/e800_wm9712.c
浏览文件 @
11be6a26
...
...
@@ -89,7 +89,7 @@ static struct snd_soc_dai_link e800_dai[] = {
{
.
name
=
"AC97"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_dai_name
=
"wm9712-hifi"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
...
...
@@ -98,7 +98,7 @@ static struct snd_soc_dai_link e800_dai[] = {
{
.
name
=
"AC97 Aux"
,
.
stream_name
=
"AC97 Aux"
,
.
cpu_dai_name
=
"pxa
-ac97.1
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97-aux
"
,
.
codec_dai_name
=
"wm9712-aux"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
...
...
sound/soc/pxa/em-x270.c
浏览文件 @
11be6a26
...
...
@@ -37,7 +37,7 @@ static struct snd_soc_dai_link em_x270_dai[] = {
{
.
name
=
"AC97"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_dai_name
=
"wm9712-hifi"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
...
...
@@ -45,7 +45,7 @@ static struct snd_soc_dai_link em_x270_dai[] = {
{
.
name
=
"AC97 Aux"
,
.
stream_name
=
"AC97 Aux"
,
.
cpu_dai_name
=
"pxa
-ac97.1
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97-aux
"
,
.
codec_dai_name
=
"wm9712-aux"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
...
...
sound/soc/pxa/mioa701_wm9713.c
浏览文件 @
11be6a26
...
...
@@ -162,7 +162,7 @@ static struct snd_soc_dai_link mioa701_dai[] = {
{
.
name
=
"AC97"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_dai_name
=
"wm9713-hifi"
,
.
codec_name
=
"wm9713-codec"
,
.
init
=
mioa701_wm9713_init
,
...
...
@@ -172,7 +172,7 @@ static struct snd_soc_dai_link mioa701_dai[] = {
{
.
name
=
"AC97 Aux"
,
.
stream_name
=
"AC97 Aux"
,
.
cpu_dai_name
=
"pxa
-ac97.1
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97-aux
"
,
.
codec_dai_name
=
"wm9713-aux"
,
.
codec_name
=
"wm9713-codec"
,
.
platform_name
=
"pxa-pcm-audio"
,
...
...
sound/soc/pxa/palm27x.c
浏览文件 @
11be6a26
...
...
@@ -132,7 +132,7 @@ static struct snd_soc_dai_link palm27x_dai[] = {
{
.
name
=
"AC97 HiFi"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_dai_name
=
"wm9712-hifi"
,
.
codec_name
=
"wm9712-codec"
,
.
platform_name
=
"pxa-pcm-audio"
,
...
...
@@ -141,7 +141,7 @@ static struct snd_soc_dai_link palm27x_dai[] = {
{
.
name
=
"AC97 Aux"
,
.
stream_name
=
"AC97 Aux"
,
.
cpu_dai_name
=
"pxa
-ac97.1
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97-aux
"
,
.
codec_dai_name
=
"wm9712-aux"
,
.
codec_name
=
"wm9712-codec"
,
.
platform_name
=
"pxa-pcm-audio"
,
...
...
sound/soc/pxa/tosa.c
浏览文件 @
11be6a26
...
...
@@ -219,7 +219,7 @@ static struct snd_soc_dai_link tosa_dai[] = {
{
.
name
=
"AC97"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_dai_name
=
"wm9712-hifi"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
...
...
@@ -229,7 +229,7 @@ static struct snd_soc_dai_link tosa_dai[] = {
{
.
name
=
"AC97 Aux"
,
.
stream_name
=
"AC97 Aux"
,
.
cpu_dai_name
=
"pxa
-ac97.1
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97-aux
"
,
.
codec_dai_name
=
"wm9712-aux"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
...
...
sound/soc/pxa/zylonite.c
浏览文件 @
11be6a26
...
...
@@ -166,7 +166,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
.
stream_name
=
"AC97 HiFi"
,
.
codec_name
=
"wm9713-codec"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_name
=
"wm9713-hifi"
,
.
init
=
zylonite_wm9713_init
,
},
...
...
@@ -175,7 +175,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
.
stream_name
=
"AC97 Aux"
,
.
codec_name
=
"wm9713-codec"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
cpu_dai_name
=
"pxa
-ac97.1
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97-aux
"
,
.
codec_name
=
"wm9713-aux"
,
},
{
...
...
sound/soc/soc-dapm.c
浏览文件 @
11be6a26
...
...
@@ -712,7 +712,15 @@ static int dapm_supply_check_power(struct snd_soc_dapm_widget *w)
!
path
->
connected
(
path
->
source
,
path
->
sink
))
continue
;
if
(
path
->
sink
&&
path
->
sink
->
power_check
&&
if
(
!
path
->
sink
)
continue
;
if
(
path
->
sink
->
force
)
{
power
=
1
;
break
;
}
if
(
path
->
sink
->
power_check
&&
path
->
sink
->
power_check
(
path
->
sink
))
{
power
=
1
;
break
;
...
...
@@ -1627,6 +1635,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_add_routes);
int
snd_soc_dapm_new_widgets
(
struct
snd_soc_dapm_context
*
dapm
)
{
struct
snd_soc_dapm_widget
*
w
;
unsigned
int
val
;
list_for_each_entry
(
w
,
&
dapm
->
card
->
widgets
,
list
)
{
...
...
@@ -1675,6 +1684,18 @@ int snd_soc_dapm_new_widgets(struct snd_soc_dapm_context *dapm)
case
snd_soc_dapm_post
:
break
;
}
/* Read the initial power state from the device */
if
(
w
->
reg
>=
0
)
{
val
=
snd_soc_read
(
w
->
codec
,
w
->
reg
);
val
&=
1
<<
w
->
shift
;
if
(
w
->
invert
)
val
=
!
val
;
if
(
val
)
w
->
power
=
1
;
}
w
->
new
=
1
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录