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
549ade57
Commit
549ade57
authored
Aug 17, 2020
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge existing fixes from asoc/for-5.9
parents
9123e3a7
062fa09f
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
266 additions
and
243 deletions
+266
-243
sound/soc/amd/acp3x-rt5682-max9836.c
sound/soc/amd/acp3x-rt5682-max9836.c
+1
-1
sound/soc/amd/renoir/acp3x-pdm-dma.c
sound/soc/amd/renoir/acp3x-pdm-dma.c
+9
-20
sound/soc/codecs/msm8916-wcd-analog.c
sound/soc/codecs/msm8916-wcd-analog.c
+2
-2
sound/soc/codecs/wm8958-dsp2.c
sound/soc/codecs/wm8958-dsp2.c
+4
-0
sound/soc/codecs/wm8962.c
sound/soc/codecs/wm8962.c
+1
-1
sound/soc/codecs/wm8994.c
sound/soc/codecs/wm8994.c
+44
-16
sound/soc/fsl/fsl-asoc-card.c
sound/soc/fsl/fsl-asoc-card.c
+70
-84
sound/soc/fsl/mpc5200_dma.c
sound/soc/fsl/mpc5200_dma.c
+0
-1
sound/soc/intel/atom/sst-mfld-platform-pcm.c
sound/soc/intel/atom/sst-mfld-platform-pcm.c
+3
-2
sound/soc/qcom/qdsp6/q6afe-dai.c
sound/soc/qcom/qdsp6/q6afe-dai.c
+105
-105
sound/soc/qcom/qdsp6/q6routing.c
sound/soc/qcom/qdsp6/q6routing.c
+16
-0
sound/soc/soc-component.c
sound/soc/soc-component.c
+1
-1
sound/soc/tegra/tegra186_dspk.c
sound/soc/tegra/tegra186_dspk.c
+2
-2
sound/soc/tegra/tegra210_admaif.c
sound/soc/tegra/tegra210_admaif.c
+2
-2
sound/soc/tegra/tegra210_ahub.c
sound/soc/tegra/tegra210_ahub.c
+2
-2
sound/soc/tegra/tegra210_dmic.c
sound/soc/tegra/tegra210_dmic.c
+2
-2
sound/soc/tegra/tegra210_i2s.c
sound/soc/tegra/tegra210_i2s.c
+2
-2
No files found.
sound/soc/amd/acp3x-rt5682-max9836.c
View file @
549ade57
...
...
@@ -138,7 +138,7 @@ static int acp3x_1015_hw_params(struct snd_pcm_substream *substream,
srate
=
params_rate
(
params
);
for_each_rtd_codec_dais
(
rtd
,
i
,
codec_dai
)
{
if
(
strcmp
(
codec_dai
->
component
->
name
,
"rt1015-aif"
))
if
(
strcmp
(
codec_dai
->
name
,
"rt1015-aif"
))
continue
;
ret
=
snd_soc_dai_set_bclk_ratio
(
codec_dai
,
64
);
if
(
ret
<
0
)
...
...
sound/soc/amd/renoir/acp3x-pdm-dma.c
View file @
549ade57
...
...
@@ -314,40 +314,30 @@ static int acp_pdm_dma_close(struct snd_soc_component *component,
return
0
;
}
static
int
acp_pdm_dai_hw_params
(
struct
snd_pcm_substream
*
substream
,
struct
snd_pcm_hw_params
*
params
,
struct
snd_soc_dai
*
dai
)
static
int
acp_pdm_dai_trigger
(
struct
snd_pcm_substream
*
substream
,
int
cmd
,
struct
snd_soc_dai
*
dai
)
{
struct
pdm_stream_instance
*
rtd
;
int
ret
;
bool
pdm_status
;
unsigned
int
ch_mask
;
rtd
=
substream
->
runtime
->
private_data
;
switch
(
params_channels
(
params
))
{
ret
=
0
;
switch
(
substream
->
runtime
->
channels
)
{
case
TWO_CH
:
ch_mask
=
0x00
;
break
;
default:
return
-
EINVAL
;
}
rn_writel
(
ch_mask
,
rtd
->
acp_base
+
ACP_WOV_PDM_NO_OF_CHANNELS
);
rn_writel
(
PDM_DECIMATION_FACTOR
,
rtd
->
acp_base
+
ACP_WOV_PDM_DECIMATION_FACTOR
);
return
0
;
}
static
int
acp_pdm_dai_trigger
(
struct
snd_pcm_substream
*
substream
,
int
cmd
,
struct
snd_soc_dai
*
dai
)
{
struct
pdm_stream_instance
*
rtd
;
int
ret
;
bool
pdm_status
;
rtd
=
substream
->
runtime
->
private_data
;
ret
=
0
;
switch
(
cmd
)
{
case
SNDRV_PCM_TRIGGER_START
:
case
SNDRV_PCM_TRIGGER_RESUME
:
case
SNDRV_PCM_TRIGGER_PAUSE_RELEASE
:
rn_writel
(
ch_mask
,
rtd
->
acp_base
+
ACP_WOV_PDM_NO_OF_CHANNELS
);
rn_writel
(
PDM_DECIMATION_FACTOR
,
rtd
->
acp_base
+
ACP_WOV_PDM_DECIMATION_FACTOR
);
rtd
->
bytescount
=
acp_pdm_get_byte_count
(
rtd
,
substream
->
stream
);
pdm_status
=
check_pdm_dma_status
(
rtd
->
acp_base
);
...
...
@@ -369,7 +359,6 @@ static int acp_pdm_dai_trigger(struct snd_pcm_substream *substream,
}
static
struct
snd_soc_dai_ops
acp_pdm_dai_ops
=
{
.
hw_params
=
acp_pdm_dai_hw_params
,
.
trigger
=
acp_pdm_dai_trigger
,
};
...
...
sound/soc/codecs/msm8916-wcd-analog.c
View file @
549ade57
...
...
@@ -19,8 +19,8 @@
#define CDC_D_REVISION1 (0xf000)
#define CDC_D_PERPH_SUBTYPE (0xf005)
#define CDC_D_INT_EN_SET (0x015)
#define CDC_D_INT_EN_CLR (0x016)
#define CDC_D_INT_EN_SET (0x
f
015)
#define CDC_D_INT_EN_CLR (0x
f
016)
#define MBHC_SWITCH_INT BIT(7)
#define MBHC_MIC_ELECTRICAL_INS_REM_DET BIT(6)
#define MBHC_BUTTON_PRESS_DET BIT(5)
...
...
sound/soc/codecs/wm8958-dsp2.c
View file @
549ade57
...
...
@@ -412,8 +412,12 @@ int wm8958_aif_ev(struct snd_soc_dapm_widget *w,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
struct
snd_soc_component
*
component
=
snd_soc_dapm_to_component
(
w
->
dapm
);
struct
wm8994
*
control
=
dev_get_drvdata
(
component
->
dev
->
parent
);
int
i
;
if
(
control
->
type
!=
WM8958
)
return
0
;
switch
(
event
)
{
case
SND_SOC_DAPM_POST_PMU
:
case
SND_SOC_DAPM_PRE_PMU
:
...
...
sound/soc/codecs/wm8962.c
View file @
549ade57
...
...
@@ -151,7 +151,6 @@ static const struct reg_default wm8962_reg[] = {
{
40
,
0x0000
},
/* R40 - SPKOUTL volume */
{
41
,
0x0000
},
/* R41 - SPKOUTR volume */
{
48
,
0x0000
},
/* R48 - Additional control(4) */
{
49
,
0x0010
},
/* R49 - Class D Control 1 */
{
51
,
0x0003
},
/* R51 - Class D Control 2 */
...
...
@@ -842,6 +841,7 @@ static bool wm8962_readable_register(struct device *dev, unsigned int reg)
case
WM8962_SPKOUTL_VOLUME
:
case
WM8962_SPKOUTR_VOLUME
:
case
WM8962_THERMAL_SHUTDOWN_STATUS
:
case
WM8962_ADDITIONAL_CONTROL_4
:
case
WM8962_CLASS_D_CONTROL_1
:
case
WM8962_CLASS_D_CONTROL_2
:
case
WM8962_CLOCKING_4
:
...
...
sound/soc/codecs/wm8994.c
View file @
549ade57
...
...
@@ -43,10 +43,12 @@
#define WM8994_NUM_DRC 3
#define WM8994_NUM_EQ 3
st
atic
struct
{
st
ruct
wm8994_reg_mask
{
unsigned
int
reg
;
unsigned
int
mask
;
}
wm8994_vu_bits
[]
=
{
};
static
struct
wm8994_reg_mask
wm8994_vu_bits
[]
=
{
{
WM8994_LEFT_LINE_INPUT_1_2_VOLUME
,
WM8994_IN1_VU
},
{
WM8994_RIGHT_LINE_INPUT_1_2_VOLUME
,
WM8994_IN1_VU
},
{
WM8994_LEFT_LINE_INPUT_3_4_VOLUME
,
WM8994_IN2_VU
},
...
...
@@ -60,14 +62,10 @@ static struct {
{
WM8994_AIF1_DAC1_LEFT_VOLUME
,
WM8994_AIF1DAC1_VU
},
{
WM8994_AIF1_DAC1_RIGHT_VOLUME
,
WM8994_AIF1DAC1_VU
},
{
WM8994_AIF1_DAC2_LEFT_VOLUME
,
WM8994_AIF1DAC2_VU
},
{
WM8994_AIF1_DAC2_RIGHT_VOLUME
,
WM8994_AIF1DAC2_VU
},
{
WM8994_AIF2_DAC_LEFT_VOLUME
,
WM8994_AIF2DAC_VU
},
{
WM8994_AIF2_DAC_RIGHT_VOLUME
,
WM8994_AIF2DAC_VU
},
{
WM8994_AIF1_ADC1_LEFT_VOLUME
,
WM8994_AIF1ADC1_VU
},
{
WM8994_AIF1_ADC1_RIGHT_VOLUME
,
WM8994_AIF1ADC1_VU
},
{
WM8994_AIF1_ADC2_LEFT_VOLUME
,
WM8994_AIF1ADC2_VU
},
{
WM8994_AIF1_ADC2_RIGHT_VOLUME
,
WM8994_AIF1ADC2_VU
},
{
WM8994_AIF2_ADC_LEFT_VOLUME
,
WM8994_AIF2ADC_VU
},
{
WM8994_AIF2_ADC_RIGHT_VOLUME
,
WM8994_AIF1ADC2_VU
},
{
WM8994_DAC1_LEFT_VOLUME
,
WM8994_DAC1_VU
},
...
...
@@ -76,6 +74,14 @@ static struct {
{
WM8994_DAC2_RIGHT_VOLUME
,
WM8994_DAC2_VU
},
};
/* VU bitfields for ADC2, DAC2 not available on WM1811 */
static
struct
wm8994_reg_mask
wm8994_adc2_dac2_vu_bits
[]
=
{
{
WM8994_AIF1_DAC2_LEFT_VOLUME
,
WM8994_AIF1DAC2_VU
},
{
WM8994_AIF1_DAC2_RIGHT_VOLUME
,
WM8994_AIF1DAC2_VU
},
{
WM8994_AIF1_ADC2_LEFT_VOLUME
,
WM8994_AIF1ADC2_VU
},
{
WM8994_AIF1_ADC2_RIGHT_VOLUME
,
WM8994_AIF1ADC2_VU
},
};
static
int
wm8994_drc_base
[]
=
{
WM8994_AIF1_DRC1_1
,
WM8994_AIF1_DRC2_1
,
...
...
@@ -1030,6 +1036,26 @@ static bool wm8994_check_class_w_digital(struct snd_soc_component *component)
return
true
;
}
static
void
wm8994_update_vu_bits
(
struct
snd_soc_component
*
component
)
{
struct
wm8994_priv
*
wm8994
=
snd_soc_component_get_drvdata
(
component
);
struct
wm8994
*
control
=
wm8994
->
wm8994
;
int
i
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
wm8994_vu_bits
);
i
++
)
snd_soc_component_write
(
component
,
wm8994_vu_bits
[
i
].
reg
,
snd_soc_component_read
(
component
,
wm8994_vu_bits
[
i
].
reg
));
if
(
control
->
type
==
WM1811
)
return
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
wm8994_adc2_dac2_vu_bits
);
i
++
)
snd_soc_component_write
(
component
,
wm8994_adc2_dac2_vu_bits
[
i
].
reg
,
snd_soc_component_read
(
component
,
wm8994_adc2_dac2_vu_bits
[
i
].
reg
));
}
static
int
aif_mclk_set
(
struct
snd_soc_component
*
component
,
int
aif
,
bool
enable
)
{
struct
wm8994_priv
*
wm8994
=
snd_soc_component_get_drvdata
(
component
);
...
...
@@ -1076,7 +1102,7 @@ static int aif1clk_ev(struct snd_soc_dapm_widget *w,
struct
wm8994_priv
*
wm8994
=
snd_soc_component_get_drvdata
(
component
);
struct
wm8994
*
control
=
wm8994
->
wm8994
;
int
mask
=
WM8994_AIF1DAC1L_ENA
|
WM8994_AIF1DAC1R_ENA
;
int
ret
,
i
;
int
ret
;
int
dac
;
int
adc
;
int
val
;
...
...
@@ -1144,10 +1170,7 @@ static int aif1clk_ev(struct snd_soc_dapm_widget *w,
break
;
case
SND_SOC_DAPM_POST_PMU
:
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
wm8994_vu_bits
);
i
++
)
snd_soc_component_write
(
component
,
wm8994_vu_bits
[
i
].
reg
,
snd_soc_component_read
(
component
,
wm8994_vu_bits
[
i
].
reg
));
wm8994_update_vu_bits
(
component
);
break
;
case
SND_SOC_DAPM_PRE_PMD
:
...
...
@@ -1181,7 +1204,7 @@ static int aif2clk_ev(struct snd_soc_dapm_widget *w,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
struct
snd_soc_component
*
component
=
snd_soc_dapm_to_component
(
w
->
dapm
);
int
ret
,
i
;
int
ret
;
int
dac
;
int
adc
;
int
val
;
...
...
@@ -1237,10 +1260,7 @@ static int aif2clk_ev(struct snd_soc_dapm_widget *w,
break
;
case
SND_SOC_DAPM_POST_PMU
:
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
wm8994_vu_bits
);
i
++
)
snd_soc_component_write
(
component
,
wm8994_vu_bits
[
i
].
reg
,
snd_soc_component_read
(
component
,
wm8994_vu_bits
[
i
].
reg
));
wm8994_update_vu_bits
(
component
);
break
;
case
SND_SOC_DAPM_PRE_PMD
:
...
...
@@ -4346,6 +4366,14 @@ static int wm8994_component_probe(struct snd_soc_component *component)
wm8994_vu_bits
[
i
].
mask
,
wm8994_vu_bits
[
i
].
mask
);
if
(
control
->
type
!=
WM1811
)
{
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
wm8994_adc2_dac2_vu_bits
);
i
++
)
snd_soc_component_update_bits
(
component
,
wm8994_adc2_dac2_vu_bits
[
i
].
reg
,
wm8994_adc2_dac2_vu_bits
[
i
].
mask
,
wm8994_adc2_dac2_vu_bits
[
i
].
mask
);
}
/* Set the low bit of the 3D stereo depth so TLV matches */
snd_soc_component_update_bits
(
component
,
WM8994_AIF1_DAC1_FILTERS_2
,
1
<<
WM8994_AIF1DAC1_3D_GAIN_SHIFT
,
...
...
sound/soc/fsl/fsl-asoc-card.c
View file @
549ade57
...
...
@@ -73,6 +73,7 @@ struct cpu_priv {
* @codec_priv: CODEC private data
* @cpu_priv: CPU private data
* @card: ASoC card structure
* @streams: Mask of current active streams
* @sample_rate: Current sample rate
* @sample_format: Current sample format
* @asrc_rate: ASRC sample rate used by Back-Ends
...
...
@@ -89,6 +90,7 @@ struct fsl_asoc_card_priv {
struct
codec_priv
codec_priv
;
struct
cpu_priv
cpu_priv
;
struct
snd_soc_card
card
;
u8
streams
;
u32
sample_rate
;
snd_pcm_format_t
sample_format
;
u32
asrc_rate
;
...
...
@@ -151,21 +153,17 @@ static int fsl_asoc_card_hw_params(struct snd_pcm_substream *substream,
struct
snd_soc_pcm_runtime
*
rtd
=
asoc_substream_to_rtd
(
substream
);
struct
fsl_asoc_card_priv
*
priv
=
snd_soc_card_get_drvdata
(
rtd
->
card
);
bool
tx
=
substream
->
stream
==
SNDRV_PCM_STREAM_PLAYBACK
;
struct
codec_priv
*
codec_priv
=
&
priv
->
codec_priv
;
struct
cpu_priv
*
cpu_priv
=
&
priv
->
cpu_priv
;
struct
device
*
dev
=
rtd
->
card
->
dev
;
unsigned
int
pll_out
;
int
ret
;
priv
->
sample_rate
=
params_rate
(
params
);
priv
->
sample_format
=
params_format
(
params
);
priv
->
streams
|=
BIT
(
substream
->
stream
);
/*
* If codec-dai is DAI Master and all configurations are already in the
* set_bias_level(), bypass the remaining settings in hw_params().
* Note: (dai_fmt & CBM_CFM) includes CBM_CFM and CBM_CFS.
*/
if
((
priv
->
card
.
set_bias_level
&&
priv
->
dai_fmt
&
SND_SOC_DAIFMT_CBM_CFM
)
||
fsl_asoc_card_is_ac97
(
priv
))
if
(
fsl_asoc_card_is_ac97
(
priv
))
return
0
;
/* Specific configurations of DAIs starts from here */
...
...
@@ -174,7 +172,7 @@ static int fsl_asoc_card_hw_params(struct snd_pcm_substream *substream,
cpu_priv
->
sysclk_dir
[
tx
]);
if
(
ret
&&
ret
!=
-
ENOTSUPP
)
{
dev_err
(
dev
,
"failed to set sysclk for cpu dai
\n
"
);
return
ret
;
goto
fail
;
}
if
(
cpu_priv
->
slot_width
)
{
...
...
@@ -182,6 +180,68 @@ static int fsl_asoc_card_hw_params(struct snd_pcm_substream *substream,
cpu_priv
->
slot_width
);
if
(
ret
&&
ret
!=
-
ENOTSUPP
)
{
dev_err
(
dev
,
"failed to set TDM slot for cpu dai
\n
"
);
goto
fail
;
}
}
/* Specific configuration for PLL */
if
(
codec_priv
->
pll_id
&&
codec_priv
->
fll_id
)
{
if
(
priv
->
sample_format
==
SNDRV_PCM_FORMAT_S24_LE
)
pll_out
=
priv
->
sample_rate
*
384
;
else
pll_out
=
priv
->
sample_rate
*
256
;
ret
=
snd_soc_dai_set_pll
(
asoc_rtd_to_codec
(
rtd
,
0
),
codec_priv
->
pll_id
,
codec_priv
->
mclk_id
,
codec_priv
->
mclk_freq
,
pll_out
);
if
(
ret
)
{
dev_err
(
dev
,
"failed to start FLL: %d
\n
"
,
ret
);
goto
fail
;
}
ret
=
snd_soc_dai_set_sysclk
(
asoc_rtd_to_codec
(
rtd
,
0
),
codec_priv
->
fll_id
,
pll_out
,
SND_SOC_CLOCK_IN
);
if
(
ret
&&
ret
!=
-
ENOTSUPP
)
{
dev_err
(
dev
,
"failed to set SYSCLK: %d
\n
"
,
ret
);
goto
fail
;
}
}
return
0
;
fail:
priv
->
streams
&=
~
BIT
(
substream
->
stream
);
return
ret
;
}
static
int
fsl_asoc_card_hw_free
(
struct
snd_pcm_substream
*
substream
)
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
fsl_asoc_card_priv
*
priv
=
snd_soc_card_get_drvdata
(
rtd
->
card
);
struct
codec_priv
*
codec_priv
=
&
priv
->
codec_priv
;
struct
device
*
dev
=
rtd
->
card
->
dev
;
int
ret
;
priv
->
streams
&=
~
BIT
(
substream
->
stream
);
if
(
!
priv
->
streams
&&
codec_priv
->
pll_id
&&
codec_priv
->
fll_id
)
{
/* Force freq to be 0 to avoid error message in codec */
ret
=
snd_soc_dai_set_sysclk
(
asoc_rtd_to_codec
(
rtd
,
0
),
codec_priv
->
mclk_id
,
0
,
SND_SOC_CLOCK_IN
);
if
(
ret
)
{
dev_err
(
dev
,
"failed to switch away from FLL: %d
\n
"
,
ret
);
return
ret
;
}
ret
=
snd_soc_dai_set_pll
(
asoc_rtd_to_codec
(
rtd
,
0
),
codec_priv
->
pll_id
,
0
,
0
,
0
);
if
(
ret
&&
ret
!=
-
ENOTSUPP
)
{
dev_err
(
dev
,
"failed to stop FLL: %d
\n
"
,
ret
);
return
ret
;
}
}
...
...
@@ -191,6 +251,7 @@ static int fsl_asoc_card_hw_params(struct snd_pcm_substream *substream,
static
const
struct
snd_soc_ops
fsl_asoc_card_ops
=
{
.
hw_params
=
fsl_asoc_card_hw_params
,
.
hw_free
=
fsl_asoc_card_hw_free
,
};
static
int
be_hw_params_fixup
(
struct
snd_soc_pcm_runtime
*
rtd
,
...
...
@@ -254,75 +315,6 @@ static struct snd_soc_dai_link fsl_asoc_card_dai[] = {
},
};
static
int
fsl_asoc_card_set_bias_level
(
struct
snd_soc_card
*
card
,
struct
snd_soc_dapm_context
*
dapm
,
enum
snd_soc_bias_level
level
)
{
struct
fsl_asoc_card_priv
*
priv
=
snd_soc_card_get_drvdata
(
card
);
struct
snd_soc_pcm_runtime
*
rtd
;
struct
snd_soc_dai
*
codec_dai
;
struct
codec_priv
*
codec_priv
=
&
priv
->
codec_priv
;
struct
device
*
dev
=
card
->
dev
;
unsigned
int
pll_out
;
int
ret
;
rtd
=
snd_soc_get_pcm_runtime
(
card
,
&
card
->
dai_link
[
0
]);
codec_dai
=
asoc_rtd_to_codec
(
rtd
,
0
);
if
(
dapm
->
dev
!=
codec_dai
->
dev
)
return
0
;
switch
(
level
)
{
case
SND_SOC_BIAS_PREPARE
:
if
(
dapm
->
bias_level
!=
SND_SOC_BIAS_STANDBY
)
break
;
if
(
priv
->
sample_format
==
SNDRV_PCM_FORMAT_S24_LE
)
pll_out
=
priv
->
sample_rate
*
384
;
else
pll_out
=
priv
->
sample_rate
*
256
;
ret
=
snd_soc_dai_set_pll
(
codec_dai
,
codec_priv
->
pll_id
,
codec_priv
->
mclk_id
,
codec_priv
->
mclk_freq
,
pll_out
);
if
(
ret
)
{
dev_err
(
dev
,
"failed to start FLL: %d
\n
"
,
ret
);
return
ret
;
}
ret
=
snd_soc_dai_set_sysclk
(
codec_dai
,
codec_priv
->
fll_id
,
pll_out
,
SND_SOC_CLOCK_IN
);
if
(
ret
&&
ret
!=
-
ENOTSUPP
)
{
dev_err
(
dev
,
"failed to set SYSCLK: %d
\n
"
,
ret
);
return
ret
;
}
break
;
case
SND_SOC_BIAS_STANDBY
:
if
(
dapm
->
bias_level
!=
SND_SOC_BIAS_PREPARE
)
break
;
ret
=
snd_soc_dai_set_sysclk
(
codec_dai
,
codec_priv
->
mclk_id
,
codec_priv
->
mclk_freq
,
SND_SOC_CLOCK_IN
);
if
(
ret
&&
ret
!=
-
ENOTSUPP
)
{
dev_err
(
dev
,
"failed to switch away from FLL: %d
\n
"
,
ret
);
return
ret
;
}
ret
=
snd_soc_dai_set_pll
(
codec_dai
,
codec_priv
->
pll_id
,
0
,
0
,
0
);
if
(
ret
)
{
dev_err
(
dev
,
"failed to stop FLL: %d
\n
"
,
ret
);
return
ret
;
}
break
;
default:
break
;
}
return
0
;
}
static
int
fsl_asoc_card_audmux_init
(
struct
device_node
*
np
,
struct
fsl_asoc_card_priv
*
priv
)
{
...
...
@@ -611,7 +603,6 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
/* Diversify the card configurations */
if
(
of_device_is_compatible
(
np
,
"fsl,imx-audio-cs42888"
))
{
codec_dai_name
=
"cs42888"
;
priv
->
card
.
set_bias_level
=
NULL
;
priv
->
cpu_priv
.
sysclk_freq
[
TX
]
=
priv
->
codec_priv
.
mclk_freq
;
priv
->
cpu_priv
.
sysclk_freq
[
RX
]
=
priv
->
codec_priv
.
mclk_freq
;
priv
->
cpu_priv
.
sysclk_dir
[
TX
]
=
SND_SOC_CLOCK_OUT
;
...
...
@@ -628,26 +619,22 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
priv
->
dai_fmt
|=
SND_SOC_DAIFMT_CBM_CFM
;
}
else
if
(
of_device_is_compatible
(
np
,
"fsl,imx-audio-wm8962"
))
{
codec_dai_name
=
"wm8962"
;
priv
->
card
.
set_bias_level
=
fsl_asoc_card_set_bias_level
;
priv
->
codec_priv
.
mclk_id
=
WM8962_SYSCLK_MCLK
;
priv
->
codec_priv
.
fll_id
=
WM8962_SYSCLK_FLL
;
priv
->
codec_priv
.
pll_id
=
WM8962_FLL
;
priv
->
dai_fmt
|=
SND_SOC_DAIFMT_CBM_CFM
;
}
else
if
(
of_device_is_compatible
(
np
,
"fsl,imx-audio-wm8960"
))
{
codec_dai_name
=
"wm8960-hifi"
;
priv
->
card
.
set_bias_level
=
fsl_asoc_card_set_bias_level
;
priv
->
codec_priv
.
fll_id
=
WM8960_SYSCLK_AUTO
;
priv
->
codec_priv
.
pll_id
=
WM8960_SYSCLK_AUTO
;
priv
->
dai_fmt
|=
SND_SOC_DAIFMT_CBM_CFM
;
}
else
if
(
of_device_is_compatible
(
np
,
"fsl,imx-audio-ac97"
))
{
codec_dai_name
=
"ac97-hifi"
;
priv
->
card
.
set_bias_level
=
NULL
;
priv
->
dai_fmt
=
SND_SOC_DAIFMT_AC97
;
priv
->
card
.
dapm_routes
=
audio_map_ac97
;
priv
->
card
.
num_dapm_routes
=
ARRAY_SIZE
(
audio_map_ac97
);
}
else
if
(
of_device_is_compatible
(
np
,
"fsl,imx-audio-mqs"
))
{
codec_dai_name
=
"fsl-mqs-dai"
;
priv
->
card
.
set_bias_level
=
NULL
;
priv
->
dai_fmt
=
SND_SOC_DAIFMT_LEFT_J
|
SND_SOC_DAIFMT_CBS_CFS
|
SND_SOC_DAIFMT_NB_NF
;
...
...
@@ -657,7 +644,6 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
priv
->
card
.
num_dapm_routes
=
ARRAY_SIZE
(
audio_map_tx
);
}
else
if
(
of_device_is_compatible
(
np
,
"fsl,imx-audio-wm8524"
))
{
codec_dai_name
=
"wm8524-hifi"
;
priv
->
card
.
set_bias_level
=
NULL
;
priv
->
dai_fmt
|=
SND_SOC_DAIFMT_CBS_CFS
;
priv
->
dai_link
[
1
].
dpcm_capture
=
0
;
priv
->
dai_link
[
2
].
dpcm_capture
=
0
;
...
...
sound/soc/fsl/mpc5200_dma.c
View file @
549ade57
...
...
@@ -339,7 +339,6 @@ static int psc_dma_new(struct snd_soc_component *component,
static
void
psc_dma_free
(
struct
snd_soc_component
*
component
,
struct
snd_pcm
*
pcm
)
{
struct
snd_soc_pcm_runtime
*
rtd
=
pcm
->
private_data
;
struct
snd_pcm_substream
*
substream
;
int
stream
;
...
...
sound/soc/intel/atom/sst-mfld-platform-pcm.c
View file @
549ade57
...
...
@@ -331,7 +331,7 @@ static int sst_media_open(struct snd_pcm_substream *substream,
ret_val
=
power_up_sst
(
stream
);
if
(
ret_val
<
0
)
return
ret_val
;
goto
out_power_up
;
/* Make sure, that the period size is always even */
snd_pcm_hw_constraint_step
(
substream
->
runtime
,
0
,
...
...
@@ -340,8 +340,9 @@ static int sst_media_open(struct snd_pcm_substream *substream,
return
snd_pcm_hw_constraint_integer
(
runtime
,
SNDRV_PCM_HW_PARAM_PERIODS
);
out_ops:
kfree
(
stream
);
mutex_unlock
(
&
sst_lock
);
out_power_up:
kfree
(
stream
);
return
ret_val
;
}
...
...
sound/soc/qcom/qdsp6/q6afe-dai.c
View file @
549ade57
This diff is collapsed.
Click to expand it.
sound/soc/qcom/qdsp6/q6routing.c
View file @
549ade57
...
...
@@ -973,6 +973,20 @@ static int msm_routing_probe(struct snd_soc_component *c)
return
0
;
}
static
unsigned
int
q6routing_reg_read
(
struct
snd_soc_component
*
component
,
unsigned
int
reg
)
{
/* default value */
return
0
;
}
static
int
q6routing_reg_write
(
struct
snd_soc_component
*
component
,
unsigned
int
reg
,
unsigned
int
val
)
{
/* dummy */
return
0
;
}
static
const
struct
snd_soc_component_driver
msm_soc_routing_component
=
{
.
probe
=
msm_routing_probe
,
.
name
=
DRV_NAME
,
...
...
@@ -981,6 +995,8 @@ static const struct snd_soc_component_driver msm_soc_routing_component = {
.
num_dapm_widgets
=
ARRAY_SIZE
(
msm_qdsp6_widgets
),
.
dapm_routes
=
intercon
,
.
num_dapm_routes
=
ARRAY_SIZE
(
intercon
),
.
read
=
q6routing_reg_read
,
.
write
=
q6routing_reg_write
,
};
static
int
q6pcm_routing_probe
(
struct
platform_device
*
pdev
)
...
...
sound/soc/soc-component.c
View file @
549ade57
...
...
@@ -406,7 +406,7 @@ static unsigned int soc_component_read_no_lock(
ret
=
-
EIO
;
if
(
ret
<
0
)
soc_component_ret
(
component
,
ret
);
return
soc_component_ret
(
component
,
ret
);
return
val
;
}
...
...
sound/soc/tegra/tegra186_dspk.c
View file @
549ade57
...
...
@@ -71,7 +71,7 @@ static int tegra186_dspk_put_control(struct snd_kcontrol *kcontrol,
return
0
;
}
static
int
tegra186_dspk_runtime_suspend
(
struct
device
*
dev
)
static
int
__maybe_unused
tegra186_dspk_runtime_suspend
(
struct
device
*
dev
)
{
struct
tegra186_dspk
*
dspk
=
dev_get_drvdata
(
dev
);
...
...
@@ -83,7 +83,7 @@ static int tegra186_dspk_runtime_suspend(struct device *dev)
return
0
;
}
static
int
tegra186_dspk_runtime_resume
(
struct
device
*
dev
)
static
int
__maybe_unused
tegra186_dspk_runtime_resume
(
struct
device
*
dev
)
{
struct
tegra186_dspk
*
dspk
=
dev_get_drvdata
(
dev
);
int
err
;
...
...
sound/soc/tegra/tegra210_admaif.c
View file @
549ade57
...
...
@@ -219,7 +219,7 @@ static const struct regmap_config tegra186_admaif_regmap_config = {
.
cache_type
=
REGCACHE_FLAT
,
};
static
int
tegra_admaif_runtime_suspend
(
struct
device
*
dev
)
static
int
__maybe_unused
tegra_admaif_runtime_suspend
(
struct
device
*
dev
)
{
struct
tegra_admaif
*
admaif
=
dev_get_drvdata
(
dev
);
...
...
@@ -229,7 +229,7 @@ static int tegra_admaif_runtime_suspend(struct device *dev)
return
0
;
}
static
int
tegra_admaif_runtime_resume
(
struct
device
*
dev
)
static
int
__maybe_unused
tegra_admaif_runtime_resume
(
struct
device
*
dev
)
{
struct
tegra_admaif
*
admaif
=
dev_get_drvdata
(
dev
);
...
...
sound/soc/tegra/tegra210_ahub.c
View file @
549ade57
...
...
@@ -564,7 +564,7 @@ static const struct of_device_id tegra_ahub_of_match[] = {
};
MODULE_DEVICE_TABLE
(
of
,
tegra_ahub_of_match
);
static
int
tegra_ahub_runtime_suspend
(
struct
device
*
dev
)
static
int
__maybe_unused
tegra_ahub_runtime_suspend
(
struct
device
*
dev
)
{
struct
tegra_ahub
*
ahub
=
dev_get_drvdata
(
dev
);
...
...
@@ -576,7 +576,7 @@ static int tegra_ahub_runtime_suspend(struct device *dev)
return
0
;
}
static
int
tegra_ahub_runtime_resume
(
struct
device
*
dev
)
static
int
__maybe_unused
tegra_ahub_runtime_resume
(
struct
device
*
dev
)
{
struct
tegra_ahub
*
ahub
=
dev_get_drvdata
(
dev
);
int
err
;
...
...
sound/soc/tegra/tegra210_dmic.c
View file @
549ade57
...
...
@@ -40,7 +40,7 @@ static const struct reg_default tegra210_dmic_reg_defaults[] = {
{
TEGRA210_DMIC_LP_BIQUAD_1_COEF_4
,
0x0
},
};
static
int
tegra210_dmic_runtime_suspend
(
struct
device
*
dev
)
static
int
__maybe_unused
tegra210_dmic_runtime_suspend
(
struct
device
*
dev
)
{
struct
tegra210_dmic
*
dmic
=
dev_get_drvdata
(
dev
);
...
...
@@ -52,7 +52,7 @@ static int tegra210_dmic_runtime_suspend(struct device *dev)
return
0
;
}
static
int
tegra210_dmic_runtime_resume
(
struct
device
*
dev
)
static
int
__maybe_unused
tegra210_dmic_runtime_resume
(
struct
device
*
dev
)
{
struct
tegra210_dmic
*
dmic
=
dev_get_drvdata
(
dev
);
int
err
;
...
...
sound/soc/tegra/tegra210_i2s.c
View file @
549ade57
...
...
@@ -164,7 +164,7 @@ static int tegra210_i2s_init(struct snd_soc_dapm_widget *w,
return
tegra210_i2s_sw_reset
(
compnt
,
is_playback
);
}
static
int
tegra210_i2s_runtime_suspend
(
struct
device
*
dev
)
static
int
__maybe_unused
tegra210_i2s_runtime_suspend
(
struct
device
*
dev
)
{
struct
tegra210_i2s
*
i2s
=
dev_get_drvdata
(
dev
);
...
...
@@ -176,7 +176,7 @@ static int tegra210_i2s_runtime_suspend(struct device *dev)
return
0
;
}
static
int
tegra210_i2s_runtime_resume
(
struct
device
*
dev
)
static
int
__maybe_unused
tegra210_i2s_runtime_resume
(
struct
device
*
dev
)
{
struct
tegra210_i2s
*
i2s
=
dev_get_drvdata
(
dev
);
int
err
;
...
...
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