Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
be13ec66
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
be13ec66
编写于
5月 04, 2017
作者:
V
Vinod Koul
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'topic/pl330' into for-linus
上级
b7b0201a
e8bb4673
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
8 addition
and
70 deletion
+8
-70
arch/arm/plat-samsung/devs.c
arch/arm/plat-samsung/devs.c
+0
-1
drivers/dma/pl330.c
drivers/dma/pl330.c
+8
-34
include/linux/amba/pl330.h
include/linux/amba/pl330.h
+0
-35
未找到文件。
arch/arm/plat-samsung/devs.c
浏览文件 @
be13ec66
...
...
@@ -10,7 +10,6 @@
* published by the Free Software Foundation.
*/
#include <linux/amba/pl330.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/interrupt.h>
...
...
drivers/dma/pl330.c
浏览文件 @
be13ec66
...
...
@@ -22,7 +22,6 @@
#include <linux/dma-mapping.h>
#include <linux/dmaengine.h>
#include <linux/amba/bus.h>
#include <linux/amba/pl330.h>
#include <linux/scatterlist.h>
#include <linux/of.h>
#include <linux/of_dma.h>
...
...
@@ -2077,18 +2076,6 @@ static void pl330_tasklet(unsigned long data)
}
}
bool
pl330_filter
(
struct
dma_chan
*
chan
,
void
*
param
)
{
u8
*
peri_id
;
if
(
chan
->
device
->
dev
->
driver
!=
&
pl330_driver
.
drv
)
return
false
;
peri_id
=
chan
->
private
;
return
*
peri_id
==
(
unsigned
long
)
param
;
}
EXPORT_SYMBOL
(
pl330_filter
);
static
struct
dma_chan
*
of_dma_pl330_xlate
(
struct
of_phandle_args
*
dma_spec
,
struct
of_dma
*
ofdma
)
{
...
...
@@ -2833,7 +2820,6 @@ static SIMPLE_DEV_PM_OPS(pl330_pm, pl330_suspend, pl330_resume);
static
int
pl330_probe
(
struct
amba_device
*
adev
,
const
struct
amba_id
*
id
)
{
struct
dma_pl330_platdata
*
pdat
;
struct
pl330_config
*
pcfg
;
struct
pl330_dmac
*
pl330
;
struct
dma_pl330_chan
*
pch
,
*
_p
;
...
...
@@ -2843,8 +2829,6 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
int
num_chan
;
struct
device_node
*
np
=
adev
->
dev
.
of_node
;
pdat
=
dev_get_platdata
(
&
adev
->
dev
);
ret
=
dma_set_mask_and_coherent
(
&
adev
->
dev
,
DMA_BIT_MASK
(
32
));
if
(
ret
)
return
ret
;
...
...
@@ -2857,7 +2841,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
pd
=
&
pl330
->
ddma
;
pd
->
dev
=
&
adev
->
dev
;
pl330
->
mcbufsz
=
pdat
?
pdat
->
mcbuf_sz
:
0
;
pl330
->
mcbufsz
=
0
;
/* get quirk */
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
of_quirks
);
i
++
)
...
...
@@ -2901,10 +2885,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
INIT_LIST_HEAD
(
&
pd
->
channels
);
/* Initialize channel parameters */
if
(
pdat
)
num_chan
=
max_t
(
int
,
pdat
->
nr_valid_peri
,
pcfg
->
num_chan
);
else
num_chan
=
max_t
(
int
,
pcfg
->
num_peri
,
pcfg
->
num_chan
);
num_chan
=
max_t
(
int
,
pcfg
->
num_peri
,
pcfg
->
num_chan
);
pl330
->
num_peripherals
=
num_chan
;
...
...
@@ -2916,11 +2897,8 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
for
(
i
=
0
;
i
<
num_chan
;
i
++
)
{
pch
=
&
pl330
->
peripherals
[
i
];
if
(
!
adev
->
dev
.
of_node
)
pch
->
chan
.
private
=
pdat
?
&
pdat
->
peri_id
[
i
]
:
NULL
;
else
pch
->
chan
.
private
=
adev
->
dev
.
of_node
;
pch
->
chan
.
private
=
adev
->
dev
.
of_node
;
INIT_LIST_HEAD
(
&
pch
->
submitted_list
);
INIT_LIST_HEAD
(
&
pch
->
work_list
);
INIT_LIST_HEAD
(
&
pch
->
completed_list
);
...
...
@@ -2933,15 +2911,11 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
list_add_tail
(
&
pch
->
chan
.
device_node
,
&
pd
->
channels
);
}
if
(
pdat
)
{
pd
->
cap_mask
=
pdat
->
cap_mask
;
}
else
{
dma_cap_set
(
DMA_MEMCPY
,
pd
->
cap_mask
);
if
(
pcfg
->
num_peri
)
{
dma_cap_set
(
DMA_SLAVE
,
pd
->
cap_mask
);
dma_cap_set
(
DMA_CYCLIC
,
pd
->
cap_mask
);
dma_cap_set
(
DMA_PRIVATE
,
pd
->
cap_mask
);
}
dma_cap_set
(
DMA_MEMCPY
,
pd
->
cap_mask
);
if
(
pcfg
->
num_peri
)
{
dma_cap_set
(
DMA_SLAVE
,
pd
->
cap_mask
);
dma_cap_set
(
DMA_CYCLIC
,
pd
->
cap_mask
);
dma_cap_set
(
DMA_PRIVATE
,
pd
->
cap_mask
);
}
pd
->
device_alloc_chan_resources
=
pl330_alloc_chan_resources
;
...
...
include/linux/amba/pl330.h
已删除
100644 → 0
浏览文件 @
b7b0201a
/* linux/include/linux/amba/pl330.h
*
* Copyright (C) 2010 Samsung Electronics Co. Ltd.
* Jaswinder Singh <jassi.brar@samsung.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef __AMBA_PL330_H_
#define __AMBA_PL330_H_
#include <linux/dmaengine.h>
struct
dma_pl330_platdata
{
/*
* Number of valid peripherals connected to DMAC.
* This may be different from the value read from
* CR0, as the PL330 implementation might have 'holes'
* in the peri list or the peri could also be reached
* from another DMAC which the platform prefers.
*/
u8
nr_valid_peri
;
/* Array of valid peripherals */
u8
*
peri_id
;
/* Operational capabilities */
dma_cap_mask_t
cap_mask
;
/* Bytes to allocate for MC buffer */
unsigned
mcbuf_sz
;
};
extern
bool
pl330_filter
(
struct
dma_chan
*
chan
,
void
*
param
);
#endif
/* __AMBA_PL330_H_ */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录