Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
11be6a26
Commit
11be6a26
authored
Feb 26, 2011
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/asoc' into for-linus
parents
4dfb8a45
43c63188
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
233 additions
and
45 deletions
+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
No files found.
include/sound/wm8903.h
View file @
11be6a26
...
@@ -17,13 +17,9 @@
...
@@ -17,13 +17,9 @@
/*
/*
* R6 (0x06) - Mic Bias Control 0
* R6 (0x06) - Mic Bias Control 0
*/
*/
#define WM8903_MICDET_HYST_ENA 0x0080
/* MICDET_HYST_ENA */
#define WM8903_MICDET_THR_MASK 0x0030
/* MICDET_THR - [5:4] */
#define WM8903_MICDET_HYST_ENA_MASK 0x0080
/* MICDET_HYST_ENA */
#define WM8903_MICDET_THR_SHIFT 4
/* MICDET_THR - [5:4] */
#define WM8903_MICDET_HYST_ENA_SHIFT 7
/* MICDET_HYST_ENA */
#define WM8903_MICDET_THR_WIDTH 2
/* MICDET_THR - [5:4] */
#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_MICSHORT_THR_MASK 0x000C
/* MICSHORT_THR - [3:2] */
#define WM8903_MICSHORT_THR_MASK 0x000C
/* MICSHORT_THR - [3:2] */
#define WM8903_MICSHORT_THR_SHIFT 2
/* MICSHORT_THR - [3:2] */
#define WM8903_MICSHORT_THR_SHIFT 2
/* MICSHORT_THR - [3:2] */
#define WM8903_MICSHORT_THR_WIDTH 2
/* MICSHORT_THR - [3:2] */
#define WM8903_MICSHORT_THR_WIDTH 2
/* MICSHORT_THR - [3:2] */
...
...
sound/soc/codecs/cx20442.c
View file @
11be6a26
...
@@ -367,7 +367,7 @@ static int cx20442_codec_remove(struct snd_soc_codec *codec)
...
@@ -367,7 +367,7 @@ static int cx20442_codec_remove(struct snd_soc_codec *codec)
return
0
;
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
=
{
static
struct
snd_soc_codec_driver
cx20442_codec_dev
=
{
.
probe
=
cx20442_codec_probe
,
.
probe
=
cx20442_codec_probe
,
...
...
sound/soc/codecs/wm8903.c
View file @
11be6a26
...
@@ -1482,7 +1482,7 @@ int wm8903_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack,
...
@@ -1482,7 +1482,7 @@ int wm8903_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack,
WM8903_MICDET_EINT
|
WM8903_MICSHRT_EINT
,
WM8903_MICDET_EINT
|
WM8903_MICSHRT_EINT
,
irq_mask
);
irq_mask
);
if
(
det
&&
shrt
)
{
if
(
det
||
shrt
)
{
/* Enable mic detection, this may not have been set through
/* Enable mic detection, this may not have been set through
* platform data (eg, if the defaults are OK). */
* platform data (eg, if the defaults are OK). */
snd_soc_update_bits
(
codec
,
WM8903_WRITE_SEQUENCER_0
,
snd_soc_update_bits
(
codec
,
WM8903_WRITE_SEQUENCER_0
,
...
...
sound/soc/codecs/wm8903.h
View file @
11be6a26
...
@@ -165,7 +165,7 @@ extern int wm8903_mic_detect(struct snd_soc_codec *codec,
...
@@ -165,7 +165,7 @@ extern int wm8903_mic_detect(struct snd_soc_codec *codec,
#define WM8903_VMID_RES_50K 2
#define WM8903_VMID_RES_50K 2
#define WM8903_VMID_RES_250K 3
#define WM8903_VMID_RES_250K 3
#define WM8903_VMID_RES_5K
4
#define WM8903_VMID_RES_5K
6
/*
/*
* R8 (0x08) - Analogue DAC 0
* R8 (0x08) - Analogue DAC 0
...
...
sound/soc/codecs/wm8994.c
View file @
11be6a26
...
@@ -107,6 +107,9 @@ struct wm8994_priv {
...
@@ -107,6 +107,9 @@ struct wm8994_priv {
int
revision
;
int
revision
;
struct
wm8994_pdata
*
pdata
;
struct
wm8994_pdata
*
pdata
;
unsigned
int
aif1clk_enable
:
1
;
unsigned
int
aif2clk_enable
:
1
;
};
};
static
int
wm8994_readable
(
unsigned
int
reg
)
static
int
wm8994_readable
(
unsigned
int
reg
)
...
@@ -1004,6 +1007,93 @@ static void wm8994_update_class_w(struct snd_soc_codec *codec)
...
@@ -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
[]
=
{
static
const
char
*
hp_mux_text
[]
=
{
"Mixer"
,
"Mixer"
,
"DAC"
,
"DAC"
,
...
@@ -1272,6 +1362,47 @@ static const struct soc_enum aif2dacr_src_enum =
...
@@ -1272,6 +1362,47 @@ static const struct soc_enum aif2dacr_src_enum =
static
const
struct
snd_kcontrol_new
aif2dacr_src_mux
=
static
const
struct
snd_kcontrol_new
aif2dacr_src_mux
=
SOC_DAPM_ENUM
(
"AIF2DACR Mux"
,
aif2dacr_src_enum
);
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
[]
=
{
static
const
struct
snd_soc_dapm_widget
wm8994_dapm_widgets
[]
=
{
SND_SOC_DAPM_INPUT
(
"DMIC1DAT"
),
SND_SOC_DAPM_INPUT
(
"DMIC1DAT"
),
SND_SOC_DAPM_INPUT
(
"DMIC2DAT"
),
SND_SOC_DAPM_INPUT
(
"DMIC2DAT"
),
...
@@ -1284,9 +1415,6 @@ SND_SOC_DAPM_SUPPLY("DSP1CLK", WM8994_CLOCKING_1, 3, 0, NULL, 0),
...
@@ -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
(
"DSP2CLK"
,
WM8994_CLOCKING_1
,
2
,
0
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY
(
"DSPINTCLK"
,
WM8994_CLOCKING_1
,
1
,
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
,
SND_SOC_DAPM_AIF_OUT
(
"AIF1ADC1L"
,
NULL
,
0
,
WM8994_POWER_MANAGEMENT_4
,
9
,
0
),
0
,
WM8994_POWER_MANAGEMENT_4
,
9
,
0
),
SND_SOC_DAPM_AIF_OUT
(
"AIF1ADC1R"
,
NULL
,
SND_SOC_DAPM_AIF_OUT
(
"AIF1ADC1R"
,
NULL
,
...
@@ -1372,11 +1500,6 @@ SND_SOC_DAPM_ADC("ADCR", NULL, SND_SOC_NOPM, 0, 0),
...
@@ -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
(
"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
(
"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
(
"Left Headphone Mux"
,
SND_SOC_NOPM
,
0
,
0
,
&
hpl_mux
),
SND_SOC_DAPM_MUX
(
"Right Headphone Mux"
,
SND_SOC_NOPM
,
0
,
0
,
&
hpr_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[] = {
...
@@ -1516,14 +1639,12 @@ static const struct snd_soc_dapm_route intercon[] = {
{
"AIF2ADC Mux"
,
"AIF3DACDAT"
,
"AIF3ADCDAT"
},
{
"AIF2ADC Mux"
,
"AIF3DACDAT"
,
"AIF3ADCDAT"
},
/* DAC1 inputs */
/* DAC1 inputs */
{
"DAC1L"
,
NULL
,
"DAC1L Mixer"
},
{
"DAC1L Mixer"
,
"AIF2 Switch"
,
"AIF2DACL"
},
{
"DAC1L Mixer"
,
"AIF2 Switch"
,
"AIF2DACL"
},
{
"DAC1L Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2L"
},
{
"DAC1L Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2L"
},
{
"DAC1L Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1L"
},
{
"DAC1L Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1L"
},
{
"DAC1L Mixer"
,
"Left Sidetone Switch"
,
"Left Sidetone"
},
{
"DAC1L Mixer"
,
"Left Sidetone Switch"
,
"Left Sidetone"
},
{
"DAC1L Mixer"
,
"Right Sidetone Switch"
,
"Right Sidetone"
},
{
"DAC1L Mixer"
,
"Right Sidetone Switch"
,
"Right Sidetone"
},
{
"DAC1R"
,
NULL
,
"DAC1R Mixer"
},
{
"DAC1R Mixer"
,
"AIF2 Switch"
,
"AIF2DACR"
},
{
"DAC1R Mixer"
,
"AIF2 Switch"
,
"AIF2DACR"
},
{
"DAC1R Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2R"
},
{
"DAC1R Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2R"
},
{
"DAC1R Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1R"
},
{
"DAC1R Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1R"
},
...
@@ -1532,7 +1653,6 @@ static const struct snd_soc_dapm_route intercon[] = {
...
@@ -1532,7 +1653,6 @@ static const struct snd_soc_dapm_route intercon[] = {
/* DAC2/AIF2 outputs */
/* DAC2/AIF2 outputs */
{
"AIF2ADCL"
,
NULL
,
"AIF2DAC2L Mixer"
},
{
"AIF2ADCL"
,
NULL
,
"AIF2DAC2L Mixer"
},
{
"DAC2L"
,
NULL
,
"AIF2DAC2L Mixer"
},
{
"AIF2DAC2L Mixer"
,
"AIF2 Switch"
,
"AIF2DACL"
},
{
"AIF2DAC2L Mixer"
,
"AIF2 Switch"
,
"AIF2DACL"
},
{
"AIF2DAC2L Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2L"
},
{
"AIF2DAC2L Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2L"
},
{
"AIF2DAC2L Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1L"
},
{
"AIF2DAC2L Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1L"
},
...
@@ -1540,7 +1660,6 @@ static const struct snd_soc_dapm_route intercon[] = {
...
@@ -1540,7 +1660,6 @@ static const struct snd_soc_dapm_route intercon[] = {
{
"AIF2DAC2L Mixer"
,
"Right Sidetone Switch"
,
"Right Sidetone"
},
{
"AIF2DAC2L Mixer"
,
"Right Sidetone Switch"
,
"Right Sidetone"
},
{
"AIF2ADCR"
,
NULL
,
"AIF2DAC2R Mixer"
},
{
"AIF2ADCR"
,
NULL
,
"AIF2DAC2R Mixer"
},
{
"DAC2R"
,
NULL
,
"AIF2DAC2R Mixer"
},
{
"AIF2DAC2R Mixer"
,
"AIF2 Switch"
,
"AIF2DACR"
},
{
"AIF2DAC2R Mixer"
,
"AIF2 Switch"
,
"AIF2DACR"
},
{
"AIF2DAC2R Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2R"
},
{
"AIF2DAC2R Mixer"
,
"AIF1.2 Switch"
,
"AIF1DAC2R"
},
{
"AIF2DAC2R Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1R"
},
{
"AIF2DAC2R Mixer"
,
"AIF1.1 Switch"
,
"AIF1DAC1R"
},
...
@@ -1584,6 +1703,24 @@ static const struct snd_soc_dapm_route intercon[] = {
...
@@ -1584,6 +1703,24 @@ static const struct snd_soc_dapm_route intercon[] = {
{
"Right Headphone Mux"
,
"DAC"
,
"DAC1R"
},
{
"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
[]
=
{
static
const
struct
snd_soc_dapm_route
wm8994_revd_intercon
[]
=
{
{
"AIF1DACDAT"
,
NULL
,
"AIF2DACDAT"
},
{
"AIF1DACDAT"
,
NULL
,
"AIF2DACDAT"
},
{
"AIF2DACDAT"
,
NULL
,
"AIF1DACDAT"
},
{
"AIF2DACDAT"
,
NULL
,
"AIF1DACDAT"
},
...
@@ -2514,6 +2651,22 @@ static int wm8994_resume(struct snd_soc_codec *codec)
...
@@ -2514,6 +2651,22 @@ static int wm8994_resume(struct snd_soc_codec *codec)
{
{
struct
wm8994_priv
*
wm8994
=
snd_soc_codec_get_drvdata
(
codec
);
struct
wm8994_priv
*
wm8994
=
snd_soc_codec_get_drvdata
(
codec
);
int
i
,
ret
;
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 */
/* Restore the registers */
ret
=
snd_soc_cache_sync
(
codec
);
ret
=
snd_soc_cache_sync
(
codec
);
...
@@ -2847,11 +3000,10 @@ static void wm8958_default_micdet(u16 status, void *data)
...
@@ -2847,11 +3000,10 @@ static void wm8958_default_micdet(u16 status, void *data)
report
|=
SND_JACK_BTN_5
;
report
|=
SND_JACK_BTN_5
;
done:
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_0
|
SND_JACK_BTN_1
|
SND_JACK_BTN_2
|
SND_JACK_BTN_3
|
SND_JACK_BTN_4
|
SND_JACK_BTN_5
|
SND_JACK_BTN_3
|
SND_JACK_BTN_4
|
SND_JACK_BTN_5
|
SND_JACK_MICROPHONE
|
SND_JACK_VIDEOOUT
,
SND_JACK_MICROPHONE
|
SND_JACK_VIDEOOUT
);
report
);
}
}
/**
/**
...
@@ -3125,6 +3277,17 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
...
@@ -3125,6 +3277,17 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
case
WM8994
:
case
WM8994
:
snd_soc_dapm_new_controls
(
dapm
,
wm8994_specific_dapm_widgets
,
snd_soc_dapm_new_controls
(
dapm
,
wm8994_specific_dapm_widgets
,
ARRAY_SIZE
(
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
;
break
;
case
WM8958
:
case
WM8958
:
snd_soc_add_controls
(
codec
,
wm8958_snd_controls
,
snd_soc_add_controls
(
codec
,
wm8958_snd_controls
,
...
@@ -3143,10 +3306,15 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
...
@@ -3143,10 +3306,15 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
snd_soc_dapm_add_routes
(
dapm
,
wm8994_intercon
,
snd_soc_dapm_add_routes
(
dapm
,
wm8994_intercon
,
ARRAY_SIZE
(
wm8994_intercon
));
ARRAY_SIZE
(
wm8994_intercon
));
if
(
wm8994
->
revision
<
4
)
if
(
wm8994
->
revision
<
4
)
{
snd_soc_dapm_add_routes
(
dapm
,
wm8994_revd_intercon
,
snd_soc_dapm_add_routes
(
dapm
,
wm8994_revd_intercon
,
ARRAY_SIZE
(
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
;
break
;
case
WM8958
:
case
WM8958
:
snd_soc_dapm_add_routes
(
dapm
,
wm8958_intercon
,
snd_soc_dapm_add_routes
(
dapm
,
wm8958_intercon
,
...
...
sound/soc/codecs/wm_hubs.c
View file @
11be6a26
...
@@ -674,6 +674,9 @@ SND_SOC_DAPM_OUTPUT("LINEOUT2N"),
...
@@ -674,6 +674,9 @@ SND_SOC_DAPM_OUTPUT("LINEOUT2N"),
};
};
static
const
struct
snd_soc_dapm_route
analogue_routes
[]
=
{
static
const
struct
snd_soc_dapm_route
analogue_routes
[]
=
{
{
"MICBIAS1"
,
NULL
,
"CLK_SYS"
},
{
"MICBIAS2"
,
NULL
,
"CLK_SYS"
},
{
"IN1L PGA"
,
"IN1LP Switch"
,
"IN1LP"
},
{
"IN1L PGA"
,
"IN1LP Switch"
,
"IN1LP"
},
{
"IN1L PGA"
,
"IN1LN Switch"
,
"IN1LN"
},
{
"IN1L PGA"
,
"IN1LN Switch"
,
"IN1LN"
},
...
...
sound/soc/imx/eukrea-tlv320.c
View file @
11be6a26
...
@@ -79,7 +79,7 @@ static struct snd_soc_dai_link eukrea_tlv320_dai = {
...
@@ -79,7 +79,7 @@ static struct snd_soc_dai_link eukrea_tlv320_dai = {
.
name
=
"tlv320aic23"
,
.
name
=
"tlv320aic23"
,
.
stream_name
=
"TLV320AIC23"
,
.
stream_name
=
"TLV320AIC23"
,
.
codec_dai_name
=
"tlv320aic23-hifi"
,
.
codec_dai_name
=
"tlv320aic23-hifi"
,
.
platform_name
=
"imx-pcm-audio.0"
,
.
platform_name
=
"imx-
fiq-
pcm-audio.0"
,
.
codec_name
=
"tlv320aic23-codec.0-001a"
,
.
codec_name
=
"tlv320aic23-codec.0-001a"
,
.
cpu_dai_name
=
"imx-ssi.0"
,
.
cpu_dai_name
=
"imx-ssi.0"
,
.
ops
=
&
eukrea_tlv320_snd_ops
,
.
ops
=
&
eukrea_tlv320_snd_ops
,
...
...
sound/soc/pxa/e740_wm9705.c
View file @
11be6a26
...
@@ -117,7 +117,7 @@ static struct snd_soc_dai_link e740_dai[] = {
...
@@ -117,7 +117,7 @@ static struct snd_soc_dai_link e740_dai[] = {
{
{
.
name
=
"AC97"
,
.
name
=
"AC97"
,
.
stream_name
=
"AC97 HiFi"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_dai_name
=
"wm9705-hifi"
,
.
codec_dai_name
=
"wm9705-hifi"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9705-codec"
,
.
codec_name
=
"wm9705-codec"
,
...
@@ -126,7 +126,7 @@ static struct snd_soc_dai_link e740_dai[] = {
...
@@ -126,7 +126,7 @@ static struct snd_soc_dai_link e740_dai[] = {
{
{
.
name
=
"AC97 Aux"
,
.
name
=
"AC97 Aux"
,
.
stream_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"
,
.
codec_dai_name
=
"wm9705-aux"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9705-codec"
,
.
codec_name
=
"wm9705-codec"
,
...
...
sound/soc/pxa/e750_wm9705.c
View file @
11be6a26
...
@@ -99,7 +99,7 @@ static struct snd_soc_dai_link e750_dai[] = {
...
@@ -99,7 +99,7 @@ static struct snd_soc_dai_link e750_dai[] = {
{
{
.
name
=
"AC97"
,
.
name
=
"AC97"
,
.
stream_name
=
"AC97 HiFi"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_dai_name
=
"wm9705-hifi"
,
.
codec_dai_name
=
"wm9705-hifi"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9705-codec"
,
.
codec_name
=
"wm9705-codec"
,
...
@@ -109,7 +109,7 @@ static struct snd_soc_dai_link e750_dai[] = {
...
@@ -109,7 +109,7 @@ static struct snd_soc_dai_link e750_dai[] = {
{
{
.
name
=
"AC97 Aux"
,
.
name
=
"AC97 Aux"
,
.
stream_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"
,
.
codec_dai_name
=
"wm9705-aux"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9705-codec"
,
.
codec_name
=
"wm9705-codec"
,
...
...
sound/soc/pxa/e800_wm9712.c
View file @
11be6a26
...
@@ -89,7 +89,7 @@ static struct snd_soc_dai_link e800_dai[] = {
...
@@ -89,7 +89,7 @@ static struct snd_soc_dai_link e800_dai[] = {
{
{
.
name
=
"AC97"
,
.
name
=
"AC97"
,
.
stream_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_dai_name
=
"wm9712-hifi"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
.
codec_name
=
"wm9712-codec"
,
...
@@ -98,7 +98,7 @@ static struct snd_soc_dai_link e800_dai[] = {
...
@@ -98,7 +98,7 @@ static struct snd_soc_dai_link e800_dai[] = {
{
{
.
name
=
"AC97 Aux"
,
.
name
=
"AC97 Aux"
,
.
stream_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_dai_name
=
"wm9712-aux"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
.
codec_name
=
"wm9712-codec"
,
...
...
sound/soc/pxa/em-x270.c
View file @
11be6a26
...
@@ -37,7 +37,7 @@ static struct snd_soc_dai_link em_x270_dai[] = {
...
@@ -37,7 +37,7 @@ static struct snd_soc_dai_link em_x270_dai[] = {
{
{
.
name
=
"AC97"
,
.
name
=
"AC97"
,
.
stream_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_dai_name
=
"wm9712-hifi"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
.
codec_name
=
"wm9712-codec"
,
...
@@ -45,7 +45,7 @@ static struct snd_soc_dai_link em_x270_dai[] = {
...
@@ -45,7 +45,7 @@ static struct snd_soc_dai_link em_x270_dai[] = {
{
{
.
name
=
"AC97 Aux"
,
.
name
=
"AC97 Aux"
,
.
stream_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_dai_name
=
"wm9712-aux"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
.
codec_name
=
"wm9712-codec"
,
...
...
sound/soc/pxa/mioa701_wm9713.c
View file @
11be6a26
...
@@ -162,7 +162,7 @@ static struct snd_soc_dai_link mioa701_dai[] = {
...
@@ -162,7 +162,7 @@ static struct snd_soc_dai_link mioa701_dai[] = {
{
{
.
name
=
"AC97"
,
.
name
=
"AC97"
,
.
stream_name
=
"AC97 HiFi"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_dai_name
=
"wm9713-hifi"
,
.
codec_dai_name
=
"wm9713-hifi"
,
.
codec_name
=
"wm9713-codec"
,
.
codec_name
=
"wm9713-codec"
,
.
init
=
mioa701_wm9713_init
,
.
init
=
mioa701_wm9713_init
,
...
@@ -172,7 +172,7 @@ static struct snd_soc_dai_link mioa701_dai[] = {
...
@@ -172,7 +172,7 @@ static struct snd_soc_dai_link mioa701_dai[] = {
{
{
.
name
=
"AC97 Aux"
,
.
name
=
"AC97 Aux"
,
.
stream_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_dai_name
=
"wm9713-aux"
,
.
codec_name
=
"wm9713-codec"
,
.
codec_name
=
"wm9713-codec"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
...
...
sound/soc/pxa/palm27x.c
View file @
11be6a26
...
@@ -132,7 +132,7 @@ static struct snd_soc_dai_link palm27x_dai[] = {
...
@@ -132,7 +132,7 @@ static struct snd_soc_dai_link palm27x_dai[] = {
{
{
.
name
=
"AC97 HiFi"
,
.
name
=
"AC97 HiFi"
,
.
stream_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_dai_name
=
"wm9712-hifi"
,
.
codec_name
=
"wm9712-codec"
,
.
codec_name
=
"wm9712-codec"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
...
@@ -141,7 +141,7 @@ static struct snd_soc_dai_link palm27x_dai[] = {
...
@@ -141,7 +141,7 @@ static struct snd_soc_dai_link palm27x_dai[] = {
{
{
.
name
=
"AC97 Aux"
,
.
name
=
"AC97 Aux"
,
.
stream_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_dai_name
=
"wm9712-aux"
,
.
codec_name
=
"wm9712-codec"
,
.
codec_name
=
"wm9712-codec"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
...
...
sound/soc/pxa/tosa.c
View file @
11be6a26
...
@@ -219,7 +219,7 @@ static struct snd_soc_dai_link tosa_dai[] = {
...
@@ -219,7 +219,7 @@ static struct snd_soc_dai_link tosa_dai[] = {
{
{
.
name
=
"AC97"
,
.
name
=
"AC97"
,
.
stream_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_dai_name
=
"wm9712-hifi"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
.
codec_name
=
"wm9712-codec"
,
...
@@ -229,7 +229,7 @@ static struct snd_soc_dai_link tosa_dai[] = {
...
@@ -229,7 +229,7 @@ static struct snd_soc_dai_link tosa_dai[] = {
{
{
.
name
=
"AC97 Aux"
,
.
name
=
"AC97 Aux"
,
.
stream_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_dai_name
=
"wm9712-aux"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"wm9712-codec"
,
.
codec_name
=
"wm9712-codec"
,
...
...
sound/soc/pxa/zylonite.c
View file @
11be6a26
...
@@ -166,7 +166,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
...
@@ -166,7 +166,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
.
stream_name
=
"AC97 HiFi"
,
.
stream_name
=
"AC97 HiFi"
,
.
codec_name
=
"wm9713-codec"
,
.
codec_name
=
"wm9713-codec"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
cpu_dai_name
=
"pxa
-ac97.0
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97
"
,
.
codec_name
=
"wm9713-hifi"
,
.
codec_name
=
"wm9713-hifi"
,
.
init
=
zylonite_wm9713_init
,
.
init
=
zylonite_wm9713_init
,
},
},
...
@@ -175,7 +175,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
...
@@ -175,7 +175,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
.
stream_name
=
"AC97 Aux"
,
.
stream_name
=
"AC97 Aux"
,
.
codec_name
=
"wm9713-codec"
,
.
codec_name
=
"wm9713-codec"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
cpu_dai_name
=
"pxa
-ac97.1
"
,
.
cpu_dai_name
=
"pxa
2xx-ac97-aux
"
,
.
codec_name
=
"wm9713-aux"
,
.
codec_name
=
"wm9713-aux"
,
},
},
{
{
...
...
sound/soc/soc-dapm.c
View file @
11be6a26
...
@@ -712,7 +712,15 @@ static int dapm_supply_check_power(struct snd_soc_dapm_widget *w)
...
@@ -712,7 +712,15 @@ static int dapm_supply_check_power(struct snd_soc_dapm_widget *w)
!
path
->
connected
(
path
->
source
,
path
->
sink
))
!
path
->
connected
(
path
->
source
,
path
->
sink
))
continue
;
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
))
{
path
->
sink
->
power_check
(
path
->
sink
))
{
power
=
1
;
power
=
1
;
break
;
break
;
...
@@ -1627,6 +1635,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_add_routes);
...
@@ -1627,6 +1635,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_add_routes);
int
snd_soc_dapm_new_widgets
(
struct
snd_soc_dapm_context
*
dapm
)
int
snd_soc_dapm_new_widgets
(
struct
snd_soc_dapm_context
*
dapm
)
{
{
struct
snd_soc_dapm_widget
*
w
;
struct
snd_soc_dapm_widget
*
w
;
unsigned
int
val
;
list_for_each_entry
(
w
,
&
dapm
->
card
->
widgets
,
list
)
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)
...
@@ -1675,6 +1684,18 @@ int snd_soc_dapm_new_widgets(struct snd_soc_dapm_context *dapm)
case
snd_soc_dapm_post
:
case
snd_soc_dapm_post
:
break
;
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
;
w
->
new
=
1
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment