Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
008a03c0
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
未验证
提交
008a03c0
编写于
2月 07, 2018
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'asoc/topic/compress' into asoc-next
上级
aa726454
141dfc9e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
41 addition
and
30 deletion
+41
-30
sound/soc/soc-compress.c
sound/soc/soc-compress.c
+41
-30
未找到文件。
sound/soc/soc-compress.c
浏览文件 @
008a03c0
...
...
@@ -40,7 +40,8 @@ static int soc_compr_open(struct snd_compr_stream *cstream)
if
(
cpu_dai
->
driver
->
cops
&&
cpu_dai
->
driver
->
cops
->
startup
)
{
ret
=
cpu_dai
->
driver
->
cops
->
startup
(
cstream
,
cpu_dai
);
if
(
ret
<
0
)
{
dev_err
(
cpu_dai
->
dev
,
"Compress ASoC: can't open interface %s: %d
\n
"
,
dev_err
(
cpu_dai
->
dev
,
"Compress ASoC: can't open interface %s: %d
\n
"
,
cpu_dai
->
name
,
ret
);
goto
out
;
}
...
...
@@ -49,8 +50,9 @@ static int soc_compr_open(struct snd_compr_stream *cstream)
if
(
platform
&&
platform
->
driver
->
compr_ops
&&
platform
->
driver
->
compr_ops
->
open
)
{
ret
=
platform
->
driver
->
compr_ops
->
open
(
cstream
);
if
(
ret
<
0
)
{
pr_err
(
"compress asoc: can't open platform %s
\n
"
,
platform
->
component
.
name
);
dev_err
(
platform
->
dev
,
"Compress ASoC: can't open platform %s: %d
\n
"
,
platform
->
component
.
name
,
ret
);
goto
plat_err
;
}
}
...
...
@@ -68,8 +70,9 @@ static int soc_compr_open(struct snd_compr_stream *cstream)
__ret
=
component
->
driver
->
compr_ops
->
open
(
cstream
);
if
(
__ret
<
0
)
{
pr_err
(
"compress asoc: can't open platform %s
\n
"
,
component
->
name
);
dev_err
(
component
->
dev
,
"Compress ASoC: can't open platform %s: %d
\n
"
,
component
->
name
,
__ret
);
ret
=
__ret
;
}
}
...
...
@@ -79,7 +82,9 @@ static int soc_compr_open(struct snd_compr_stream *cstream)
if
(
rtd
->
dai_link
->
compr_ops
&&
rtd
->
dai_link
->
compr_ops
->
startup
)
{
ret
=
rtd
->
dai_link
->
compr_ops
->
startup
(
cstream
);
if
(
ret
<
0
)
{
pr_err
(
"compress asoc: %s startup failed
\n
"
,
rtd
->
dai_link
->
name
);
dev_err
(
rtd
->
dev
,
"Compress ASoC: %s startup failed: %d
\n
"
,
rtd
->
dai_link
->
name
,
ret
);
goto
machine_err
;
}
}
...
...
@@ -139,18 +144,19 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
if
(
cpu_dai
->
driver
->
cops
&&
cpu_dai
->
driver
->
cops
->
startup
)
{
ret
=
cpu_dai
->
driver
->
cops
->
startup
(
cstream
,
cpu_dai
);
if
(
ret
<
0
)
{
dev_err
(
cpu_dai
->
dev
,
"Compress ASoC: can't open interface %s: %d
\n
"
,
dev_err
(
cpu_dai
->
dev
,
"Compress ASoC: can't open interface %s: %d
\n
"
,
cpu_dai
->
name
,
ret
);
goto
out
;
}
}
if
(
platform
&&
platform
->
driver
->
compr_ops
&&
platform
->
driver
->
compr_ops
->
open
)
{
ret
=
platform
->
driver
->
compr_ops
->
open
(
cstream
);
if
(
ret
<
0
)
{
pr_err
(
"compress asoc: can't open platform %s
\n
"
,
platform
->
component
.
name
);
dev_err
(
platform
->
dev
,
"Compress ASoC: can't open platform %s: %d
\n
"
,
platform
->
component
.
name
,
ret
);
goto
plat_err
;
}
}
...
...
@@ -168,8 +174,9 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
__ret
=
component
->
driver
->
compr_ops
->
open
(
cstream
);
if
(
__ret
<
0
)
{
pr_err
(
"compress asoc: can't open platform %s
\n
"
,
component
->
name
);
dev_err
(
component
->
dev
,
"Compress ASoC: can't open platform %s: %d
\n
"
,
component
->
name
,
__ret
);
ret
=
__ret
;
}
}
...
...
@@ -179,7 +186,8 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
if
(
fe
->
dai_link
->
compr_ops
&&
fe
->
dai_link
->
compr_ops
->
startup
)
{
ret
=
fe
->
dai_link
->
compr_ops
->
startup
(
cstream
);
if
(
ret
<
0
)
{
pr_err
(
"compress asoc: %s startup failed
\n
"
,
fe
->
dai_link
->
name
);
pr_err
(
"Compress ASoC: %s startup failed: %d
\n
"
,
fe
->
dai_link
->
name
,
ret
);
goto
machine_err
;
}
}
...
...
@@ -190,7 +198,7 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
if
(
ret
<
0
)
goto
fe_err
;
else
if
(
ret
==
0
)
dev_dbg
(
fe
->
dev
,
"ASoC: %s no valid %s route
\n
"
,
dev_dbg
(
fe
->
dev
,
"
Compress
ASoC: %s no valid %s route
\n
"
,
fe
->
dai_link
->
name
,
stream
?
"capture"
:
"playback"
);
/* calculate valid and active FE <-> BE dpcms */
...
...
@@ -265,10 +273,11 @@ static void close_delayed_work(struct work_struct *work)
mutex_lock_nested
(
&
rtd
->
pcm_mutex
,
rtd
->
pcm_subclass
);
dev_dbg
(
rtd
->
dev
,
"ASoC: pop wq checking: %s status: %s waiting: %s
\n
"
,
codec_dai
->
driver
->
playback
.
stream_name
,
codec_dai
->
playback_active
?
"active"
:
"inactive"
,
rtd
->
pop_wait
?
"yes"
:
"no"
);
dev_dbg
(
rtd
->
dev
,
"Compress ASoC: pop wq checking: %s status: %s waiting: %s
\n
"
,
codec_dai
->
driver
->
playback
.
stream_name
,
codec_dai
->
playback_active
?
"active"
:
"inactive"
,
rtd
->
pop_wait
?
"yes"
:
"no"
);
/* are we waiting on this codec DAI stream */
if
(
rtd
->
pop_wait
==
1
)
{
...
...
@@ -307,7 +316,6 @@ static int soc_compr_free(struct snd_compr_stream *cstream)
if
(
!
codec_dai
->
active
)
codec_dai
->
rate
=
0
;
if
(
rtd
->
dai_link
->
compr_ops
&&
rtd
->
dai_link
->
compr_ops
->
shutdown
)
rtd
->
dai_link
->
compr_ops
->
shutdown
(
cstream
);
...
...
@@ -376,7 +384,7 @@ static int soc_compr_free_fe(struct snd_compr_stream *cstream)
ret
=
dpcm_be_dai_hw_free
(
fe
,
stream
);
if
(
ret
<
0
)
dev_err
(
fe
->
dev
,
"
compressed hw_free failed
%d
\n
"
,
ret
);
dev_err
(
fe
->
dev
,
"
Compressed ASoC: hw_free failed:
%d
\n
"
,
ret
);
ret
=
dpcm_be_dai_shutdown
(
fe
,
stream
);
...
...
@@ -460,7 +468,6 @@ static int soc_compr_trigger(struct snd_compr_stream *cstream, int cmd)
if
(
cpu_dai
->
driver
->
cops
&&
cpu_dai
->
driver
->
cops
->
trigger
)
cpu_dai
->
driver
->
cops
->
trigger
(
cstream
,
cmd
,
cpu_dai
);
switch
(
cmd
)
{
case
SNDRV_PCM_TRIGGER_START
:
snd_soc_dai_digital_mute
(
codec_dai
,
0
,
cstream
->
direction
);
...
...
@@ -1108,7 +1115,8 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
int
playback
=
0
,
capture
=
0
;
if
(
rtd
->
num_codecs
>
1
)
{
dev_err
(
rtd
->
card
->
dev
,
"Multicodec not supported for compressed stream
\n
"
);
dev_err
(
rtd
->
card
->
dev
,
"Compress ASoC: Multicodec not supported
\n
"
);
return
-
EINVAL
;
}
...
...
@@ -1126,8 +1134,9 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
* should be set, check for that (xor)
*/
if
(
playback
+
capture
!=
1
)
{
dev_err
(
rtd
->
card
->
dev
,
"Invalid direction for compress P %d, C %d
\n
"
,
playback
,
capture
);
dev_err
(
rtd
->
card
->
dev
,
"Compress ASoC: Invalid direction for P %d, C %d
\n
"
,
playback
,
capture
);
return
-
EINVAL
;
}
...
...
@@ -1155,8 +1164,9 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
rtd
->
dai_link
->
dpcm_playback
,
rtd
->
dai_link
->
dpcm_capture
,
&
be_pcm
);
if
(
ret
<
0
)
{
dev_err
(
rtd
->
card
->
dev
,
"ASoC: can't create compressed for %s
\n
"
,
rtd
->
dai_link
->
name
);
dev_err
(
rtd
->
card
->
dev
,
"Compress ASoC: can't create compressed for %s: %d
\n
"
,
rtd
->
dai_link
->
name
,
ret
);
goto
compr_err
;
}
...
...
@@ -1199,8 +1209,9 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
new_name
,
compr
);
if
(
ret
<
0
)
{
component
=
rtd
->
codec_dai
->
component
;
pr_err
(
"compress asoc: can't create compress for codec %s
\n
"
,
component
->
name
);
dev_err
(
component
->
dev
,
"Compress ASoC: can't create compress for codec %s: %d
\n
"
,
component
->
name
,
ret
);
goto
compr_err
;
}
...
...
@@ -1210,8 +1221,8 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
rtd
->
compr
=
compr
;
compr
->
private_data
=
rtd
;
printk
(
KERN_INFO
"compress asoc: %s <-> %s mapping ok
\n
"
,
codec_dai
->
name
,
cpu_dai
->
name
);
dev_info
(
rtd
->
card
->
dev
,
"Compress ASoC: %s <-> %s mapping ok
\n
"
,
codec_dai
->
name
,
cpu_dai
->
name
);
return
ret
;
compr_err:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录