Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
0cb3a12f
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0cb3a12f
编写于
3月 29, 2017
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'asoc/fix/rcar' into asoc-linus
上级
4368c276
9986943e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
41 addition
and
19 deletion
+41
-19
sound/soc/sh/rcar/cmd.c
sound/soc/sh/rcar/cmd.c
+20
-16
sound/soc/sh/rcar/dma.c
sound/soc/sh/rcar/dma.c
+16
-2
sound/soc/sh/rcar/ssiu.c
sound/soc/sh/rcar/ssiu.c
+5
-1
未找到文件。
sound/soc/sh/rcar/cmd.c
浏览文件 @
0cb3a12f
...
...
@@ -31,23 +31,24 @@ static int rsnd_cmd_init(struct rsnd_mod *mod,
struct
rsnd_mod
*
mix
=
rsnd_io_to_mod_mix
(
io
);
struct
device
*
dev
=
rsnd_priv_to_dev
(
priv
);
u32
data
;
u32
path
[]
=
{
[
1
]
=
1
<<
0
,
[
5
]
=
1
<<
8
,
[
6
]
=
1
<<
12
,
[
9
]
=
1
<<
15
,
};
if
(
!
mix
&&
!
dvc
)
return
0
;
if
(
ARRAY_SIZE
(
path
)
<
rsnd_mod_id
(
mod
)
+
1
)
return
-
ENXIO
;
if
(
mix
)
{
struct
rsnd_dai
*
rdai
;
struct
rsnd_mod
*
src
;
struct
rsnd_dai_stream
*
tio
;
int
i
;
u32
path
[]
=
{
[
0
]
=
0
,
[
1
]
=
1
<<
0
,
[
2
]
=
0
,
[
3
]
=
0
,
[
4
]
=
0
,
[
5
]
=
1
<<
8
};
/*
* it is assuming that integrater is well understanding about
...
...
@@ -70,16 +71,19 @@ static int rsnd_cmd_init(struct rsnd_mod *mod,
}
else
{
struct
rsnd_mod
*
src
=
rsnd_io_to_mod_src
(
io
);
u32
path
[]
=
{
[
0
]
=
0x30000
,
[
1
]
=
0x30001
,
[
2
]
=
0x40000
,
[
3
]
=
0x10000
,
[
4
]
=
0x20000
,
[
5
]
=
0x40100
u8
cmd_case
[]
=
{
[
0
]
=
0x3
,
[
1
]
=
0x3
,
[
2
]
=
0x4
,
[
3
]
=
0x1
,
[
4
]
=
0x2
,
[
5
]
=
0x4
,
[
6
]
=
0x1
,
[
9
]
=
0x2
,
};
data
=
path
[
rsnd_mod_id
(
src
)];
data
=
path
[
rsnd_mod_id
(
src
)]
|
cmd_case
[
rsnd_mod_id
(
src
)]
<<
16
;
}
dev_dbg
(
dev
,
"ctu/mix path = 0x%08x"
,
data
);
...
...
sound/soc/sh/rcar/dma.c
浏览文件 @
0cb3a12f
...
...
@@ -454,6 +454,20 @@ static u32 rsnd_dmapp_read(struct rsnd_dma *dma, u32 reg)
return
ioread32
(
rsnd_dmapp_addr
(
dmac
,
dma
,
reg
));
}
static
void
rsnd_dmapp_bset
(
struct
rsnd_dma
*
dma
,
u32
data
,
u32
mask
,
u32
reg
)
{
struct
rsnd_mod
*
mod
=
rsnd_mod_get
(
dma
);
struct
rsnd_priv
*
priv
=
rsnd_mod_to_priv
(
mod
);
struct
rsnd_dma_ctrl
*
dmac
=
rsnd_priv_to_dmac
(
priv
);
void
__iomem
*
addr
=
rsnd_dmapp_addr
(
dmac
,
dma
,
reg
);
u32
val
=
ioread32
(
addr
);
val
&=
~
mask
;
val
|=
(
data
&
mask
);
iowrite32
(
val
,
addr
);
}
static
int
rsnd_dmapp_stop
(
struct
rsnd_mod
*
mod
,
struct
rsnd_dai_stream
*
io
,
struct
rsnd_priv
*
priv
)
...
...
@@ -461,10 +475,10 @@ static int rsnd_dmapp_stop(struct rsnd_mod *mod,
struct
rsnd_dma
*
dma
=
rsnd_mod_to_dma
(
mod
);
int
i
;
rsnd_dmapp_
write
(
dma
,
0
,
PDMACHCR
);
rsnd_dmapp_
bset
(
dma
,
0
,
PDMACHCR_DE
,
PDMACHCR
);
for
(
i
=
0
;
i
<
1024
;
i
++
)
{
if
(
0
==
rsnd_dmapp_read
(
dma
,
PDMACHCR
))
if
(
0
==
(
rsnd_dmapp_read
(
dma
,
PDMACHCR
)
&
PDMACHCR_DE
))
return
0
;
udelay
(
1
);
}
...
...
sound/soc/sh/rcar/ssiu.c
浏览文件 @
0cb3a12f
...
...
@@ -64,7 +64,11 @@ static int rsnd_ssiu_init(struct rsnd_mod *mod,
mask1
=
(
1
<<
4
)
|
(
1
<<
20
);
/* mask sync bit */
mask2
=
(
1
<<
4
);
/* mask sync bit */
val1
=
val2
=
0
;
if
(
rsnd_ssi_is_pin_sharing
(
io
))
{
if
(
id
==
8
)
{
/*
* SSI8 pin is sharing with SSI7, nothing to do.
*/
}
else
if
(
rsnd_ssi_is_pin_sharing
(
io
))
{
int
shift
=
-
1
;
switch
(
id
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录