Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
0a076035
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
0a076035
编写于
6月 14, 2012
作者:
V
Vinod Koul
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fixes' into next
上级
f7ceb362
fdec53d5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
16 deletion
+10
-16
drivers/dma/pl330.c
drivers/dma/pl330.c
+10
-16
未找到文件。
drivers/dma/pl330.c
浏览文件 @
0a076035
...
...
@@ -392,6 +392,8 @@ struct pl330_req {
struct
pl330_reqcfg
*
cfg
;
/* Pointer to first xfer in the request. */
struct
pl330_xfer
*
x
;
/* Hook to attach to DMAC's list of reqs with due callback */
struct
list_head
rqd
;
};
/*
...
...
@@ -461,8 +463,6 @@ struct _pl330_req {
/* Number of bytes taken to setup MC for the req */
u32
mc_len
;
struct
pl330_req
*
r
;
/* Hook to attach to DMAC's list of reqs with due callback */
struct
list_head
rqd
;
};
/* ToBeDone for tasklet */
...
...
@@ -1683,7 +1683,7 @@ static void pl330_dotask(unsigned long data)
/* Returns 1 if state was updated, 0 otherwise */
static
int
pl330_update
(
const
struct
pl330_info
*
pi
)
{
struct
_pl330_req
*
rqdone
;
struct
pl330_req
*
rqdone
,
*
tmp
;
struct
pl330_dmac
*
pl330
;
unsigned
long
flags
;
void
__iomem
*
regs
;
...
...
@@ -1750,7 +1750,10 @@ static int pl330_update(const struct pl330_info *pi)
if
(
active
==
-
1
)
/* Aborted */
continue
;
rqdone
=
&
thrd
->
req
[
active
];
/* Detach the req */
rqdone
=
thrd
->
req
[
active
].
r
;
thrd
->
req
[
active
].
r
=
NULL
;
mark_free
(
thrd
,
active
);
/* Get going again ASAP */
...
...
@@ -1762,20 +1765,11 @@ static int pl330_update(const struct pl330_info *pi)
}
/* Now that we are in no hurry, do the callbacks */
while
(
!
list_empty
(
&
pl330
->
req_done
))
{
struct
pl330_req
*
r
;
rqdone
=
container_of
(
pl330
->
req_done
.
next
,
struct
_pl330_req
,
rqd
);
list_del_init
(
&
rqdone
->
rqd
);
/* Detach the req */
r
=
rqdone
->
r
;
rqdone
->
r
=
NULL
;
list_for_each_entry_safe
(
rqdone
,
tmp
,
&
pl330
->
req_done
,
rqd
)
{
list_del
(
&
rqdone
->
rqd
);
spin_unlock_irqrestore
(
&
pl330
->
lock
,
flags
);
_callback
(
r
,
PL330_ERR_NONE
);
_callback
(
r
qdone
,
PL330_ERR_NONE
);
spin_lock_irqsave
(
&
pl330
->
lock
,
flags
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录