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
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
Hide 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