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
ac6d7c48
Commit
ac6d7c48
authored
Jan 20, 2014
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/compress' into asoc-next
parents
31824e65
2a99ef0f
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
335 additions
and
18 deletions
+335
-18
include/sound/soc-dpcm.h
include/sound/soc-dpcm.h
+22
-0
include/sound/soc.h
include/sound/soc.h
+1
-0
sound/soc/soc-compress.c
sound/soc/soc-compress.c
+300
-1
sound/soc/soc-pcm.c
sound/soc/soc-pcm.c
+12
-17
No files found.
include/sound/soc-dpcm.h
View file @
ac6d7c48
...
...
@@ -11,6 +11,7 @@
#ifndef __LINUX_SND_SOC_DPCM_H
#define __LINUX_SND_SOC_DPCM_H
#include <linux/slab.h>
#include <linux/list.h>
#include <sound/pcm.h>
...
...
@@ -135,4 +136,25 @@ int soc_dpcm_be_digital_mute(struct snd_soc_pcm_runtime *fe, int mute);
int
soc_dpcm_debugfs_add
(
struct
snd_soc_pcm_runtime
*
rtd
);
int
soc_dpcm_runtime_update
(
struct
snd_soc_card
*
);
int
dpcm_path_get
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
,
struct
snd_soc_dapm_widget_list
**
list_
);
int
dpcm_process_paths
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
,
struct
snd_soc_dapm_widget_list
**
list
,
int
new
);
int
dpcm_be_dai_startup
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
);
int
dpcm_be_dai_shutdown
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
);
void
dpcm_be_disconnect
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
);
void
dpcm_clear_pending_state
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
);
int
dpcm_be_dai_hw_free
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
);
int
dpcm_be_dai_hw_params
(
struct
snd_soc_pcm_runtime
*
fe
,
int
tream
);
int
dpcm_be_dai_trigger
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
,
int
cmd
);
int
dpcm_be_dai_prepare
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
);
int
dpcm_dapm_stream_event
(
struct
snd_soc_pcm_runtime
*
fe
,
int
dir
,
int
event
);
static
inline
void
dpcm_path_put
(
struct
snd_soc_dapm_widget_list
**
list
)
{
kfree
(
*
list
);
}
#endif
include/sound/soc.h
View file @
ac6d7c48
...
...
@@ -1042,6 +1042,7 @@ struct snd_soc_pcm_runtime {
/* Dynamic PCM BE runtime data */
struct
snd_soc_dpcm_runtime
dpcm
[
2
];
int
fe_compr
;
long
pmdown_time
;
unsigned
char
pop_wait
:
1
;
...
...
sound/soc/soc-compress.c
View file @
ac6d7c48
This diff is collapsed.
Click to expand it.
sound/soc/soc-pcm.c
View file @
ac6d7c48
...
...
@@ -58,7 +58,7 @@ int snd_soc_set_runtime_hwparams(struct snd_pcm_substream *substream,
EXPORT_SYMBOL_GPL
(
snd_soc_set_runtime_hwparams
);
/* DPCM stream event, send event to FE and all active BEs. */
static
int
dpcm_dapm_stream_event
(
struct
snd_soc_pcm_runtime
*
fe
,
int
dir
,
int
dpcm_dapm_stream_event
(
struct
snd_soc_pcm_runtime
*
fe
,
int
dir
,
int
event
)
{
struct
snd_soc_dpcm
*
dpcm
;
...
...
@@ -885,7 +885,7 @@ static void dpcm_be_reparent(struct snd_soc_pcm_runtime *fe,
}
/* disconnect a BE and FE */
static
void
dpcm_be_disconnect
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
void
dpcm_be_disconnect
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
{
struct
snd_soc_dpcm
*
dpcm
,
*
d
;
...
...
@@ -981,7 +981,7 @@ static int widget_in_list(struct snd_soc_dapm_widget_list *list,
return
0
;
}
static
int
dpcm_path_get
(
struct
snd_soc_pcm_runtime
*
fe
,
int
dpcm_path_get
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
,
struct
snd_soc_dapm_widget_list
**
list_
)
{
struct
snd_soc_dai
*
cpu_dai
=
fe
->
cpu_dai
;
...
...
@@ -1003,11 +1003,6 @@ static int dpcm_path_get(struct snd_soc_pcm_runtime *fe,
return
paths
;
}
static
inline
void
dpcm_path_put
(
struct
snd_soc_dapm_widget_list
**
list
)
{
kfree
(
*
list
);
}
static
int
dpcm_prune_paths
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
,
struct
snd_soc_dapm_widget_list
**
list_
)
{
...
...
@@ -1077,7 +1072,7 @@ static int dpcm_add_paths(struct snd_soc_pcm_runtime *fe, int stream,
continue
;
/* don't connect if FE is not running */
if
(
!
fe
->
dpcm
[
stream
].
runtime
)
if
(
!
fe
->
dpcm
[
stream
].
runtime
&&
!
fe
->
fe_compr
)
continue
;
/* newly connected FE and BE */
...
...
@@ -1102,7 +1097,7 @@ static int dpcm_add_paths(struct snd_soc_pcm_runtime *fe, int stream,
* Find the corresponding BE DAIs that source or sink audio to this
* FE substream.
*/
static
int
dpcm_process_paths
(
struct
snd_soc_pcm_runtime
*
fe
,
int
dpcm_process_paths
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
,
struct
snd_soc_dapm_widget_list
**
list
,
int
new
)
{
if
(
new
)
...
...
@@ -1111,7 +1106,7 @@ static int dpcm_process_paths(struct snd_soc_pcm_runtime *fe,
return
dpcm_prune_paths
(
fe
,
stream
,
list
);
}
static
void
dpcm_clear_pending_state
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
void
dpcm_clear_pending_state
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
{
struct
snd_soc_dpcm
*
dpcm
;
...
...
@@ -1149,7 +1144,7 @@ static void dpcm_be_dai_startup_unwind(struct snd_soc_pcm_runtime *fe,
}
}
static
int
dpcm_be_dai_startup
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
int
dpcm_be_dai_startup
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
{
struct
snd_soc_dpcm
*
dpcm
;
int
err
,
count
=
0
;
...
...
@@ -1301,7 +1296,7 @@ static int dpcm_fe_dai_startup(struct snd_pcm_substream *fe_substream)
return
ret
;
}
static
int
dpcm_be_dai_shutdown
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
int
dpcm_be_dai_shutdown
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
{
struct
snd_soc_dpcm
*
dpcm
;
...
...
@@ -1362,7 +1357,7 @@ static int dpcm_fe_dai_shutdown(struct snd_pcm_substream *substream)
return
0
;
}
static
int
dpcm_be_dai_hw_free
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
int
dpcm_be_dai_hw_free
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
{
struct
snd_soc_dpcm
*
dpcm
;
...
...
@@ -1427,7 +1422,7 @@ static int dpcm_fe_dai_hw_free(struct snd_pcm_substream *substream)
return
0
;
}
static
int
dpcm_be_dai_hw_params
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
int
dpcm_be_dai_hw_params
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
{
struct
snd_soc_dpcm
*
dpcm
;
int
ret
;
...
...
@@ -1557,7 +1552,7 @@ static int dpcm_do_trigger(struct snd_soc_dpcm *dpcm,
return
ret
;
}
static
int
dpcm_be_dai_trigger
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
,
int
dpcm_be_dai_trigger
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
,
int
cmd
)
{
struct
snd_soc_dpcm
*
dpcm
;
...
...
@@ -1725,7 +1720,7 @@ static int dpcm_fe_dai_trigger(struct snd_pcm_substream *substream, int cmd)
return
ret
;
}
static
int
dpcm_be_dai_prepare
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
int
dpcm_be_dai_prepare
(
struct
snd_soc_pcm_runtime
*
fe
,
int
stream
)
{
struct
snd_soc_dpcm
*
dpcm
;
int
ret
=
0
;
...
...
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