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
Kirill Smelkov
linux
Commits
953de782
Commit
953de782
authored
Apr 16, 2018
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'asoc-4.17' into asoc-4.18 to get adau17x1 changes so
further patches can be applied.
parents
3fd391fb
d0f8b9c5
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
72 additions
and
26 deletions
+72
-26
sound/soc/codecs/adau17x1.c
sound/soc/codecs/adau17x1.c
+20
-6
sound/soc/codecs/adau17x1.h
sound/soc/codecs/adau17x1.h
+2
-1
sound/soc/fsl/fsl_esai.c
sound/soc/fsl/fsl_esai.c
+7
-0
sound/soc/fsl/fsl_ssi.c
sound/soc/fsl/fsl_ssi.c
+11
-3
sound/soc/intel/Kconfig
sound/soc/intel/Kconfig
+13
-9
sound/soc/omap/omap-dmic.c
sound/soc/omap/omap-dmic.c
+11
-3
sound/soc/sh/rcar/core.c
sound/soc/sh/rcar/core.c
+2
-2
sound/soc/soc-topology.c
sound/soc/soc-topology.c
+6
-2
No files found.
sound/soc/codecs/adau17x1.c
View file @
953de782
...
...
@@ -502,7 +502,7 @@ static int adau17x1_hw_params(struct snd_pcm_substream *substream,
}
if
(
adau
->
sigmadsp
)
{
ret
=
adau17x1_setup_firmware
(
adau
,
params_rate
(
params
));
ret
=
adau17x1_setup_firmware
(
component
,
params_rate
(
params
));
if
(
ret
<
0
)
return
ret
;
}
...
...
@@ -835,26 +835,40 @@ bool adau17x1_volatile_register(struct device *dev, unsigned int reg)
}
EXPORT_SYMBOL_GPL
(
adau17x1_volatile_register
);
int
adau17x1_setup_firmware
(
struct
adau
*
adau
,
unsigned
int
rate
)
int
adau17x1_setup_firmware
(
struct
snd_soc_component
*
component
,
unsigned
int
rate
)
{
int
ret
;
int
dspsr
;
int
dspsr
,
dsp_run
;
struct
adau
*
adau
=
snd_soc_component_get_drvdata
(
component
);
struct
snd_soc_dapm_context
*
dapm
=
snd_soc_component_get_dapm
(
component
);
snd_soc_dapm_mutex_lock
(
dapm
);
ret
=
regmap_read
(
adau
->
regmap
,
ADAU17X1_DSP_SAMPLING_RATE
,
&
dspsr
);
if
(
ret
)
return
ret
;
goto
err
;
ret
=
regmap_read
(
adau
->
regmap
,
ADAU17X1_DSP_RUN
,
&
dsp_run
);
if
(
ret
)
goto
err
;
regmap_write
(
adau
->
regmap
,
ADAU17X1_DSP_ENABLE
,
1
);
regmap_write
(
adau
->
regmap
,
ADAU17X1_DSP_SAMPLING_RATE
,
0xf
);
regmap_write
(
adau
->
regmap
,
ADAU17X1_DSP_RUN
,
0
);
ret
=
sigmadsp_setup
(
adau
->
sigmadsp
,
rate
);
if
(
ret
)
{
regmap_write
(
adau
->
regmap
,
ADAU17X1_DSP_ENABLE
,
0
);
return
ret
;
goto
err
;
}
regmap_write
(
adau
->
regmap
,
ADAU17X1_DSP_SAMPLING_RATE
,
dspsr
);
regmap_write
(
adau
->
regmap
,
ADAU17X1_DSP_RUN
,
dsp_run
);
return
0
;
err:
snd_soc_dapm_mutex_unlock
(
dapm
);
return
ret
;
}
EXPORT_SYMBOL_GPL
(
adau17x1_setup_firmware
);
...
...
sound/soc/codecs/adau17x1.h
View file @
953de782
...
...
@@ -68,7 +68,8 @@ int adau17x1_resume(struct snd_soc_component *component);
extern
const
struct
snd_soc_dai_ops
adau17x1_dai_ops
;
int
adau17x1_setup_firmware
(
struct
adau
*
adau
,
unsigned
int
rate
);
int
adau17x1_setup_firmware
(
struct
snd_soc_component
*
component
,
unsigned
int
rate
);
bool
adau17x1_has_dsp
(
struct
adau
*
adau
);
#define ADAU17X1_CLOCK_CONTROL 0x4000
...
...
sound/soc/fsl/fsl_esai.c
View file @
953de782
...
...
@@ -144,6 +144,13 @@ static int fsl_esai_divisor_cal(struct snd_soc_dai *dai, bool tx, u32 ratio,
psr
=
ratio
<=
256
*
maxfp
?
ESAI_xCCR_xPSR_BYPASS
:
ESAI_xCCR_xPSR_DIV8
;
/* Do not loop-search if PM (1 ~ 256) alone can serve the ratio */
if
(
ratio
<=
256
)
{
pm
=
ratio
;
fp
=
1
;
goto
out
;
}
/* Set the max fluctuation -- 0.1% of the max devisor */
savesub
=
(
psr
?
1
:
8
)
*
256
*
maxfp
/
1000
;
...
...
sound/soc/fsl/fsl_ssi.c
View file @
953de782
...
...
@@ -217,6 +217,7 @@ struct fsl_ssi_soc_data {
* @dai_fmt: DAI configuration this device is currently used with
* @streams: Mask of current active streams: BIT(TX) and BIT(RX)
* @i2s_net: I2S and Network mode configurations of SCR register
* (this is the initial settings based on the DAI format)
* @synchronous: Use synchronous mode - both of TX and RX use STCK and SFCK
* @use_dma: DMA is used or FIQ with stream filter
* @use_dual_fifo: DMA with support for dual FIFO mode
...
...
@@ -829,16 +830,23 @@ static int fsl_ssi_hw_params(struct snd_pcm_substream *substream,
}
if
(
!
fsl_ssi_is_ac97
(
ssi
))
{
/*
* Keep the ssi->i2s_net intact while having a local variable
* to override settings for special use cases. Otherwise, the
* ssi->i2s_net will lose the settings for regular use cases.
*/
u8
i2s_net
=
ssi
->
i2s_net
;
/* Normal + Network mode to send 16-bit data in 32-bit frames */
if
(
fsl_ssi_is_i2s_cbm_cfs
(
ssi
)
&&
sample_size
==
16
)
ssi
->
i2s_net
=
SSI_SCR_I2S_MODE_NORMAL
|
SSI_SCR_NET
;
i2s_net
=
SSI_SCR_I2S_MODE_NORMAL
|
SSI_SCR_NET
;
/* Use Normal mode to send mono data at 1st slot of 2 slots */
if
(
channels
==
1
)
ssi
->
i2s_net
=
SSI_SCR_I2S_MODE_NORMAL
;
i2s_net
=
SSI_SCR_I2S_MODE_NORMAL
;
regmap_update_bits
(
regs
,
REG_SSI_SCR
,
SSI_SCR_I2S_NET_MASK
,
ssi
->
i2s_net
);
SSI_SCR_I2S_NET_MASK
,
i2s_net
);
}
/* In synchronous mode, the SSI uses STCCR for capture */
...
...
sound/soc/intel/Kconfig
View file @
953de782
...
...
@@ -72,24 +72,28 @@ config SND_SOC_INTEL_BAYTRAIL
for Baytrail Chromebooks but this option is now deprecated and is
not recommended, use SND_SST_ATOM_HIFI2_PLATFORM instead.
config SND_SST_ATOM_HIFI2_PLATFORM
tristate
select SND_SOC_COMPRESS
config SND_SST_ATOM_HIFI2_PLATFORM_PCI
tristate "PCI HiFi2 (Me
dfield, Me
rrifield) Platforms"
tristate "PCI HiFi2 (Merrifield) Platforms"
depends on X86 && PCI
select SND_SST_IPC_PCI
select SND_S
OC_COMPRESS
select SND_S
ST_ATOM_HIFI2_PLATFORM
help
If you have a Intel Me
dfield or Me
rrifield/Edison platform, then
If you have a Intel Merrifield/Edison platform, then
enable this option by saying Y or m. Distros will typically not
enable this option: Medfield devices are not available to
developers and while Merrifield/Edison can run a mainline kernel with
limited functionality it will require a firmware file which
is not in the standard firmware tree
enable this option: while Merrifield/Edison can run a mainline
kernel with limited functionality it will require a firmware file
which is not in the standard firmware tree
config SND_SST_ATOM_HIFI2_PLATFORM
config SND_SST_ATOM_HIFI2_PLATFORM
_ACPI
tristate "ACPI HiFi2 (Baytrail, Cherrytrail) Platforms"
default ACPI
depends on X86 && ACPI
select SND_SST_IPC_ACPI
select SND_S
OC_COMPRESS
select SND_S
ST_ATOM_HIFI2_PLATFORM
select SND_SOC_ACPI_INTEL_MATCH
select IOSF_MBI
help
...
...
sound/soc/omap/omap-dmic.c
View file @
953de782
...
...
@@ -281,7 +281,7 @@ static int omap_dmic_dai_trigger(struct snd_pcm_substream *substream,
static
int
omap_dmic_select_fclk
(
struct
omap_dmic
*
dmic
,
int
clk_id
,
unsigned
int
freq
)
{
struct
clk
*
parent_clk
;
struct
clk
*
parent_clk
,
*
mux
;
char
*
parent_clk_name
;
int
ret
=
0
;
...
...
@@ -329,14 +329,21 @@ static int omap_dmic_select_fclk(struct omap_dmic *dmic, int clk_id,
return
-
ENODEV
;
}
mux
=
clk_get_parent
(
dmic
->
fclk
);
if
(
IS_ERR
(
mux
))
{
dev_err
(
dmic
->
dev
,
"can't get fck mux parent
\n
"
);
clk_put
(
parent_clk
);
return
-
ENODEV
;
}
mutex_lock
(
&
dmic
->
mutex
);
if
(
dmic
->
active
)
{
/* disable clock while reparenting */
pm_runtime_put_sync
(
dmic
->
dev
);
ret
=
clk_set_parent
(
dmic
->
fclk
,
parent_clk
);
ret
=
clk_set_parent
(
mux
,
parent_clk
);
pm_runtime_get_sync
(
dmic
->
dev
);
}
else
{
ret
=
clk_set_parent
(
dmic
->
fclk
,
parent_clk
);
ret
=
clk_set_parent
(
mux
,
parent_clk
);
}
mutex_unlock
(
&
dmic
->
mutex
);
...
...
@@ -349,6 +356,7 @@ static int omap_dmic_select_fclk(struct omap_dmic *dmic, int clk_id,
dmic
->
fclk_freq
=
freq
;
err_busy:
clk_put
(
mux
);
clk_put
(
parent_clk
);
return
ret
;
...
...
sound/soc/sh/rcar/core.c
View file @
953de782
...
...
@@ -1573,7 +1573,7 @@ static int rsnd_remove(struct platform_device *pdev)
return
ret
;
}
static
int
rsnd_suspend
(
struct
device
*
dev
)
static
int
__maybe_unused
rsnd_suspend
(
struct
device
*
dev
)
{
struct
rsnd_priv
*
priv
=
dev_get_drvdata
(
dev
);
...
...
@@ -1582,7 +1582,7 @@ static int rsnd_suspend(struct device *dev)
return
0
;
}
static
int
rsnd_resume
(
struct
device
*
dev
)
static
int
__maybe_unused
rsnd_resume
(
struct
device
*
dev
)
{
struct
rsnd_priv
*
priv
=
dev_get_drvdata
(
dev
);
...
...
sound/soc/soc-topology.c
View file @
953de782
...
...
@@ -1325,8 +1325,10 @@ static struct snd_kcontrol_new *soc_tplg_dapm_widget_denum_create(
ec
->
hdr
.
name
);
kc
[
i
].
name
=
kstrdup
(
ec
->
hdr
.
name
,
GFP_KERNEL
);
if
(
kc
[
i
].
name
==
NULL
)
if
(
kc
[
i
].
name
==
NULL
)
{
kfree
(
se
);
goto
err_se
;
}
kc
[
i
].
private_value
=
(
long
)
se
;
kc
[
i
].
iface
=
SNDRV_CTL_ELEM_IFACE_MIXER
;
kc
[
i
].
access
=
ec
->
hdr
.
access
;
...
...
@@ -1442,8 +1444,10 @@ static struct snd_kcontrol_new *soc_tplg_dapm_widget_dbytes_create(
be
->
hdr
.
name
,
be
->
hdr
.
access
);
kc
[
i
].
name
=
kstrdup
(
be
->
hdr
.
name
,
GFP_KERNEL
);
if
(
kc
[
i
].
name
==
NULL
)
if
(
kc
[
i
].
name
==
NULL
)
{
kfree
(
sbe
);
goto
err
;
}
kc
[
i
].
private_value
=
(
long
)
sbe
;
kc
[
i
].
iface
=
SNDRV_CTL_ELEM_IFACE_MIXER
;
kc
[
i
].
access
=
be
->
hdr
.
access
;
...
...
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