Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
39c36ad0
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
39c36ad0
编写于
7月 15, 2013
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'asoc/fix/omap' into asoc-linus
上级
ad81f054
9ab1fac4
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
39 addition
and
44 deletion
+39
-44
sound/soc/omap/mcbsp.c
sound/soc/omap/mcbsp.c
+22
-17
sound/soc/omap/omap-dmic.c
sound/soc/omap/omap-dmic.c
+1
-10
sound/soc/omap/omap-mcpdm.c
sound/soc/omap/omap-mcpdm.c
+2
-14
sound/soc/omap/omap-pcm.c
sound/soc/omap/omap-pcm.c
+14
-3
未找到文件。
sound/soc/omap/mcbsp.c
浏览文件 @
39c36ad0
...
...
@@ -1012,28 +1012,33 @@ int omap_mcbsp_init(struct platform_device *pdev)
}
}
res
=
platform_get_resource_byname
(
pdev
,
IORESOURCE_DMA
,
"rx"
);
if
(
!
res
)
{
dev_err
(
&
pdev
->
dev
,
"invalid rx DMA channel
\n
"
);
return
-
ENODEV
;
}
/* RX DMA request number, and port address configuration */
mcbsp
->
dma_req
[
1
]
=
res
->
start
;
mcbsp
->
dma_data
[
1
].
filter_data
=
&
mcbsp
->
dma_req
[
1
];
mcbsp
->
dma_data
[
1
].
addr
=
omap_mcbsp_dma_reg_params
(
mcbsp
,
1
);
mcbsp
->
dma_data
[
1
].
maxburst
=
4
;
if
(
!
pdev
->
dev
.
of_node
)
{
res
=
platform_get_resource_byname
(
pdev
,
IORESOURCE_DMA
,
"tx"
);
if
(
!
res
)
{
dev_err
(
&
pdev
->
dev
,
"invalid tx DMA channel
\n
"
);
return
-
ENODEV
;
}
mcbsp
->
dma_req
[
0
]
=
res
->
start
;
mcbsp
->
dma_data
[
0
].
filter_data
=
&
mcbsp
->
dma_req
[
0
];
res
=
platform_get_resource_byname
(
pdev
,
IORESOURCE_DMA
,
"tx"
);
if
(
!
res
)
{
dev_err
(
&
pdev
->
dev
,
"invalid tx DMA channel
\n
"
);
return
-
ENODEV
;
res
=
platform_get_resource_byname
(
pdev
,
IORESOURCE_DMA
,
"rx"
);
if
(
!
res
)
{
dev_err
(
&
pdev
->
dev
,
"invalid rx DMA channel
\n
"
);
return
-
ENODEV
;
}
mcbsp
->
dma_req
[
1
]
=
res
->
start
;
mcbsp
->
dma_data
[
1
].
filter_data
=
&
mcbsp
->
dma_req
[
1
];
}
else
{
mcbsp
->
dma_data
[
0
].
filter_data
=
"tx"
;
mcbsp
->
dma_data
[
1
].
filter_data
=
"rx"
;
}
/* TX DMA request number, and port address configuration */
mcbsp
->
dma_req
[
0
]
=
res
->
start
;
mcbsp
->
dma_data
[
0
].
filter_data
=
&
mcbsp
->
dma_req
[
0
];
mcbsp
->
dma_data
[
0
].
addr
=
omap_mcbsp_dma_reg_params
(
mcbsp
,
0
);
mcbsp
->
dma_data
[
0
].
maxburst
=
4
;
mcbsp
->
dma_data
[
1
].
addr
=
omap_mcbsp_dma_reg_params
(
mcbsp
,
1
);
mcbsp
->
dma_data
[
1
].
maxburst
=
4
;
mcbsp
->
fclk
=
clk_get
(
&
pdev
->
dev
,
"fck"
);
if
(
IS_ERR
(
mcbsp
->
fclk
))
{
ret
=
PTR_ERR
(
mcbsp
->
fclk
);
...
...
sound/soc/omap/omap-dmic.c
浏览文件 @
39c36ad0
...
...
@@ -57,7 +57,6 @@ struct omap_dmic {
struct
mutex
mutex
;
struct
snd_dmaengine_dai_dma_data
dma_data
;
unsigned
int
dma_req
;
};
static
inline
void
omap_dmic_write
(
struct
omap_dmic
*
dmic
,
u16
reg
,
u32
val
)
...
...
@@ -478,15 +477,7 @@ static int asoc_dmic_probe(struct platform_device *pdev)
}
dmic
->
dma_data
.
addr
=
res
->
start
+
OMAP_DMIC_DATA_REG
;
res
=
platform_get_resource
(
pdev
,
IORESOURCE_DMA
,
0
);
if
(
!
res
)
{
dev_err
(
dmic
->
dev
,
"invalid dma resource
\n
"
);
ret
=
-
ENODEV
;
goto
err_put_clk
;
}
dmic
->
dma_req
=
res
->
start
;
dmic
->
dma_data
.
filter_data
=
&
dmic
->
dma_req
;
dmic
->
dma_data
.
filter_data
=
"up_link"
;
res
=
platform_get_resource_byname
(
pdev
,
IORESOURCE_MEM
,
"mpu"
);
if
(
!
res
)
{
...
...
sound/soc/omap/omap-mcpdm.c
浏览文件 @
39c36ad0
...
...
@@ -66,7 +66,6 @@ struct omap_mcpdm {
bool
restart
;
struct
snd_dmaengine_dai_dma_data
dma_data
[
2
];
unsigned
int
dma_req
[
2
];
};
/*
...
...
@@ -477,19 +476,8 @@ static int asoc_mcpdm_probe(struct platform_device *pdev)
mcpdm
->
dma_data
[
0
].
addr
=
res
->
start
+
MCPDM_REG_DN_DATA
;
mcpdm
->
dma_data
[
1
].
addr
=
res
->
start
+
MCPDM_REG_UP_DATA
;
res
=
platform_get_resource_byname
(
pdev
,
IORESOURCE_DMA
,
"dn_link"
);
if
(
!
res
)
return
-
ENODEV
;
mcpdm
->
dma_req
[
0
]
=
res
->
start
;
mcpdm
->
dma_data
[
0
].
filter_data
=
&
mcpdm
->
dma_req
[
0
];
res
=
platform_get_resource_byname
(
pdev
,
IORESOURCE_DMA
,
"up_link"
);
if
(
!
res
)
return
-
ENODEV
;
mcpdm
->
dma_req
[
1
]
=
res
->
start
;
mcpdm
->
dma_data
[
1
].
filter_data
=
&
mcpdm
->
dma_req
[
1
];
mcpdm
->
dma_data
[
0
].
filter_data
=
"dn_link"
;
mcpdm
->
dma_data
[
1
].
filter_data
=
"up_link"
;
res
=
platform_get_resource_byname
(
pdev
,
IORESOURCE_MEM
,
"mpu"
);
if
(
res
==
NULL
)
...
...
sound/soc/omap/omap-pcm.c
浏览文件 @
39c36ad0
...
...
@@ -113,14 +113,25 @@ static int omap_pcm_open(struct snd_pcm_substream *substream)
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_dmaengine_dai_dma_data
*
dma_data
;
int
ret
;
snd_soc_set_runtime_hwparams
(
substream
,
&
omap_pcm_hardware
);
dma_data
=
snd_soc_dai_get_dma_data
(
rtd
->
cpu_dai
,
substream
);
return
snd_dmaengine_pcm_open_request_chan
(
substream
,
omap_dma_filter_fn
,
dma_data
->
filter_data
);
/* DT boot: filter_data is the DMA name */
if
(
rtd
->
cpu_dai
->
dev
->
of_node
)
{
struct
dma_chan
*
chan
;
chan
=
dma_request_slave_channel
(
rtd
->
cpu_dai
->
dev
,
dma_data
->
filter_data
);
ret
=
snd_dmaengine_pcm_open
(
substream
,
chan
);
}
else
{
ret
=
snd_dmaengine_pcm_open_request_chan
(
substream
,
omap_dma_filter_fn
,
dma_data
->
filter_data
);
}
return
ret
;
}
static
int
omap_pcm_mmap
(
struct
snd_pcm_substream
*
substream
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录