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
aa38bff8
Commit
aa38bff8
authored
Nov 10, 2017
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/core' into asoc-next
parents
73e13d0f
e07bd30b
Changes
6
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1090 additions
and
138 deletions
+1090
-138
include/sound/soc.h
include/sound/soc.h
+94
-0
sound/soc/soc-compress.c
sound/soc/soc-compress.c
+427
-34
sound/soc/soc-core.c
sound/soc/soc-core.c
+142
-50
sound/soc/soc-dapm.c
sound/soc/soc-dapm.c
+4
-4
sound/soc/soc-io.c
sound/soc/soc-io.c
+14
-0
sound/soc/soc-pcm.c
sound/soc/soc-pcm.c
+409
-50
No files found.
include/sound/soc.h
View file @
aa38bff8
...
...
@@ -480,6 +480,8 @@ int devm_snd_soc_register_component(struct device *dev,
const
struct
snd_soc_component_driver
*
component_driver
,
struct
snd_soc_dai_driver
*
dai_drv
,
int
num_dai
);
void
snd_soc_unregister_component
(
struct
device
*
dev
);
struct
snd_soc_component
*
snd_soc_lookup_component
(
struct
device
*
dev
,
const
char
*
driver_name
);
int
snd_soc_cache_init
(
struct
snd_soc_codec
*
codec
);
int
snd_soc_cache_exit
(
struct
snd_soc_codec
*
codec
);
...
...
@@ -800,6 +802,10 @@ struct snd_soc_component_driver {
int
(
*
suspend
)(
struct
snd_soc_component
*
);
int
(
*
resume
)(
struct
snd_soc_component
*
);
/* pcm creation and destruction */
int
(
*
pcm_new
)(
struct
snd_soc_pcm_runtime
*
);
void
(
*
pcm_free
)(
struct
snd_pcm
*
);
/* component wide operations */
int
(
*
set_sysclk
)(
struct
snd_soc_component
*
component
,
int
clk_id
,
int
source
,
unsigned
int
freq
,
int
dir
);
...
...
@@ -817,10 +823,22 @@ struct snd_soc_component_driver {
void
(
*
seq_notifier
)(
struct
snd_soc_component
*
,
enum
snd_soc_dapm_type
,
int
subseq
);
int
(
*
stream_event
)(
struct
snd_soc_component
*
,
int
event
);
int
(
*
set_bias_level
)(
struct
snd_soc_component
*
component
,
enum
snd_soc_bias_level
level
);
const
struct
snd_pcm_ops
*
ops
;
const
struct
snd_compr_ops
*
compr_ops
;
/* probe ordering - for components with runtime dependencies */
int
probe_order
;
int
remove_order
;
/* bits */
unsigned
int
idle_bias_on
:
1
;
unsigned
int
suspend_bias_off
:
1
;
unsigned
int
pmdown_time
:
1
;
/* care pmdown_time at stop */
unsigned
int
endianness
:
1
;
unsigned
int
non_legacy_dai_naming
:
1
;
};
struct
snd_soc_component
{
...
...
@@ -877,6 +895,8 @@ struct snd_soc_component {
void
(
*
remove
)(
struct
snd_soc_component
*
);
int
(
*
suspend
)(
struct
snd_soc_component
*
);
int
(
*
resume
)(
struct
snd_soc_component
*
);
int
(
*
pcm_new
)(
struct
snd_soc_component
*
,
struct
snd_soc_pcm_runtime
*
);
void
(
*
pcm_free
)(
struct
snd_soc_component
*
,
struct
snd_pcm
*
);
int
(
*
set_sysclk
)(
struct
snd_soc_component
*
component
,
int
clk_id
,
int
source
,
unsigned
int
freq
,
int
dir
);
...
...
@@ -884,6 +904,8 @@ struct snd_soc_component {
int
source
,
unsigned
int
freq_in
,
unsigned
int
freq_out
);
int
(
*
set_jack
)(
struct
snd_soc_component
*
component
,
struct
snd_soc_jack
*
jack
,
void
*
data
);
int
(
*
set_bias_level
)(
struct
snd_soc_component
*
component
,
enum
snd_soc_bias_level
level
);
/* machine specific init */
int
(
*
init
)(
struct
snd_soc_component
*
component
);
...
...
@@ -1417,6 +1439,21 @@ static inline void snd_soc_codec_init_bias_level(struct snd_soc_codec *codec,
snd_soc_dapm_init_bias_level
(
snd_soc_codec_get_dapm
(
codec
),
level
);
}
/**
* snd_soc_component_init_bias_level() - Initialize COMPONENT DAPM bias level
* @component: The COMPONENT for which to initialize the DAPM bias level
* @level: The DAPM level to initialize to
*
* Initializes the COMPONENT DAPM bias level. See snd_soc_dapm_init_bias_level().
*/
static
inline
void
snd_soc_component_init_bias_level
(
struct
snd_soc_component
*
component
,
enum
snd_soc_bias_level
level
)
{
snd_soc_dapm_init_bias_level
(
snd_soc_component_get_dapm
(
component
),
level
);
}
/**
* snd_soc_dapm_get_bias_level() - Get current CODEC DAPM bias level
* @codec: The CODEC for which to get the DAPM bias level
...
...
@@ -1429,6 +1466,19 @@ static inline enum snd_soc_bias_level snd_soc_codec_get_bias_level(
return
snd_soc_dapm_get_bias_level
(
snd_soc_codec_get_dapm
(
codec
));
}
/**
* snd_soc_component_get_bias_level() - Get current COMPONENT DAPM bias level
* @component: The COMPONENT for which to get the DAPM bias level
*
* Returns: The current DAPM bias level of the COMPONENT.
*/
static
inline
enum
snd_soc_bias_level
snd_soc_component_get_bias_level
(
struct
snd_soc_component
*
component
)
{
return
snd_soc_dapm_get_bias_level
(
snd_soc_component_get_dapm
(
component
));
}
/**
* snd_soc_codec_force_bias_level() - Set the CODEC DAPM bias level
* @codec: The CODEC for which to set the level
...
...
@@ -1444,6 +1494,23 @@ static inline int snd_soc_codec_force_bias_level(struct snd_soc_codec *codec,
level
);
}
/**
* snd_soc_component_force_bias_level() - Set the COMPONENT DAPM bias level
* @component: The COMPONENT for which to set the level
* @level: The level to set to
*
* Forces the COMPONENT bias level to a specific state. See
* snd_soc_dapm_force_bias_level().
*/
static
inline
int
snd_soc_component_force_bias_level
(
struct
snd_soc_component
*
component
,
enum
snd_soc_bias_level
level
)
{
return
snd_soc_dapm_force_bias_level
(
snd_soc_component_get_dapm
(
component
),
level
);
}
/**
* snd_soc_dapm_kcontrol_codec() - Returns the codec associated to a kcontrol
* @kcontrol: The kcontrol
...
...
@@ -1457,6 +1524,19 @@ static inline struct snd_soc_codec *snd_soc_dapm_kcontrol_codec(
return
snd_soc_dapm_to_codec
(
snd_soc_dapm_kcontrol_dapm
(
kcontrol
));
}
/**
* snd_soc_dapm_kcontrol_component() - Returns the component associated to a kcontrol
* @kcontrol: The kcontrol
*
* This function must only be used on DAPM contexts that are known to be part of
* a COMPONENT (e.g. in a COMPONENT driver). Otherwise the behavior is undefined.
*/
static
inline
struct
snd_soc_component
*
snd_soc_dapm_kcontrol_component
(
struct
snd_kcontrol
*
kcontrol
)
{
return
snd_soc_dapm_to_component
(
snd_soc_dapm_kcontrol_dapm
(
kcontrol
));
}
/* codec IO */
unsigned
int
snd_soc_read
(
struct
snd_soc_codec
*
codec
,
unsigned
int
reg
);
int
snd_soc_write
(
struct
snd_soc_codec
*
codec
,
unsigned
int
reg
,
...
...
@@ -1473,9 +1553,23 @@ static inline int snd_soc_cache_sync(struct snd_soc_codec *codec)
return
regcache_sync
(
codec
->
component
.
regmap
);
}
/**
* snd_soc_component_cache_sync() - Sync the register cache with the hardware
* @component: COMPONENT to sync
*
* Note: This function will call regcache_sync()
*/
static
inline
int
snd_soc_component_cache_sync
(
struct
snd_soc_component
*
component
)
{
return
regcache_sync
(
component
->
regmap
);
}
/* component IO */
int
snd_soc_component_read
(
struct
snd_soc_component
*
component
,
unsigned
int
reg
,
unsigned
int
*
val
);
unsigned
int
snd_soc_component_read32
(
struct
snd_soc_component
*
component
,
unsigned
int
reg
);
int
snd_soc_component_write
(
struct
snd_soc_component
*
component
,
unsigned
int
reg
,
unsigned
int
val
);
int
snd_soc_component_update_bits
(
struct
snd_soc_component
*
component
,
...
...
sound/soc/soc-compress.c
View file @
aa38bff8
This diff is collapsed.
Click to expand it.
sound/soc/soc-core.c
View file @
aa38bff8
This diff is collapsed.
Click to expand it.
sound/soc/soc-dapm.c
View file @
aa38bff8
...
...
@@ -3681,7 +3681,7 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
switch
(
event
)
{
case
SND_SOC_DAPM_PRE_PMU
:
substream
.
stream
=
SNDRV_PCM_STREAM_CAPTURE
;
if
(
source
->
driver
->
ops
&&
source
->
driver
->
ops
->
startup
)
{
if
(
source
->
driver
->
ops
->
startup
)
{
ret
=
source
->
driver
->
ops
->
startup
(
&
substream
,
source
);
if
(
ret
<
0
)
{
dev_err
(
source
->
dev
,
...
...
@@ -3695,7 +3695,7 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
goto
out
;
substream
.
stream
=
SNDRV_PCM_STREAM_PLAYBACK
;
if
(
sink
->
driver
->
ops
&&
sink
->
driver
->
ops
->
startup
)
{
if
(
sink
->
driver
->
ops
->
startup
)
{
ret
=
sink
->
driver
->
ops
->
startup
(
&
substream
,
sink
);
if
(
ret
<
0
)
{
dev_err
(
sink
->
dev
,
...
...
@@ -3725,13 +3725,13 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
ret
=
0
;
source
->
active
--
;
if
(
source
->
driver
->
ops
&&
source
->
driver
->
ops
->
shutdown
)
{
if
(
source
->
driver
->
ops
->
shutdown
)
{
substream
.
stream
=
SNDRV_PCM_STREAM_CAPTURE
;
source
->
driver
->
ops
->
shutdown
(
&
substream
,
source
);
}
sink
->
active
--
;
if
(
sink
->
driver
->
ops
&&
sink
->
driver
->
ops
->
shutdown
)
{
if
(
sink
->
driver
->
ops
->
shutdown
)
{
substream
.
stream
=
SNDRV_PCM_STREAM_PLAYBACK
;
sink
->
driver
->
ops
->
shutdown
(
&
substream
,
sink
);
}
...
...
sound/soc/soc-io.c
View file @
aa38bff8
...
...
@@ -41,6 +41,20 @@ int snd_soc_component_read(struct snd_soc_component *component,
}
EXPORT_SYMBOL_GPL
(
snd_soc_component_read
);
unsigned
int
snd_soc_component_read32
(
struct
snd_soc_component
*
component
,
unsigned
int
reg
)
{
unsigned
int
val
;
int
ret
;
ret
=
snd_soc_component_read
(
component
,
reg
,
&
val
);
if
(
ret
<
0
)
return
-
1
;
return
val
;
}
EXPORT_SYMBOL_GPL
(
snd_soc_component_read32
);
/**
* snd_soc_component_write() - Write register value
* @component: Component to write to
...
...
sound/soc/soc-pcm.c
View file @
aa38bff8
This diff is collapsed.
Click to expand it.
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