Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
56cbb3dd
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看板
提交
56cbb3dd
编写于
4月 25, 2012
作者:
V
Vinod Koul
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fixes' into next
上级
affa115e
88c08a3f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
10 deletion
+16
-10
drivers/dma/amba-pl08x.c
drivers/dma/amba-pl08x.c
+1
-0
drivers/dma/pl330.c
drivers/dma/pl330.c
+15
-10
未找到文件。
drivers/dma/amba-pl08x.c
浏览文件 @
56cbb3dd
...
@@ -1433,6 +1433,7 @@ static int pl08x_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
...
@@ -1433,6 +1433,7 @@ static int pl08x_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
* signal
* signal
*/
*/
release_phy_channel
(
plchan
);
release_phy_channel
(
plchan
);
plchan
->
phychan_hold
=
0
;
}
}
/* Dequeue jobs and free LLIs */
/* Dequeue jobs and free LLIs */
if
(
plchan
->
at
)
{
if
(
plchan
->
at
)
{
...
...
drivers/dma/pl330.c
浏览文件 @
56cbb3dd
...
@@ -2225,12 +2225,9 @@ static inline void free_desc_list(struct list_head *list)
...
@@ -2225,12 +2225,9 @@ static inline void free_desc_list(struct list_head *list)
{
{
struct
dma_pl330_dmac
*
pdmac
;
struct
dma_pl330_dmac
*
pdmac
;
struct
dma_pl330_desc
*
desc
;
struct
dma_pl330_desc
*
desc
;
struct
dma_pl330_chan
*
pch
;
struct
dma_pl330_chan
*
pch
=
NULL
;
unsigned
long
flags
;
unsigned
long
flags
;
if
(
list_empty
(
list
))
return
;
/* Finish off the work list */
/* Finish off the work list */
list_for_each_entry
(
desc
,
list
,
node
)
{
list_for_each_entry
(
desc
,
list
,
node
)
{
dma_async_tx_callback
callback
;
dma_async_tx_callback
callback
;
...
@@ -2247,6 +2244,10 @@ static inline void free_desc_list(struct list_head *list)
...
@@ -2247,6 +2244,10 @@ static inline void free_desc_list(struct list_head *list)
desc
->
pchan
=
NULL
;
desc
->
pchan
=
NULL
;
}
}
/* pch will be unset if list was empty */
if
(
!
pch
)
return
;
pdmac
=
pch
->
dmac
;
pdmac
=
pch
->
dmac
;
spin_lock_irqsave
(
&
pdmac
->
pool_lock
,
flags
);
spin_lock_irqsave
(
&
pdmac
->
pool_lock
,
flags
);
...
@@ -2257,12 +2258,9 @@ static inline void free_desc_list(struct list_head *list)
...
@@ -2257,12 +2258,9 @@ static inline void free_desc_list(struct list_head *list)
static
inline
void
handle_cyclic_desc_list
(
struct
list_head
*
list
)
static
inline
void
handle_cyclic_desc_list
(
struct
list_head
*
list
)
{
{
struct
dma_pl330_desc
*
desc
;
struct
dma_pl330_desc
*
desc
;
struct
dma_pl330_chan
*
pch
;
struct
dma_pl330_chan
*
pch
=
NULL
;
unsigned
long
flags
;
unsigned
long
flags
;
if
(
list_empty
(
list
))
return
;
list_for_each_entry
(
desc
,
list
,
node
)
{
list_for_each_entry
(
desc
,
list
,
node
)
{
dma_async_tx_callback
callback
;
dma_async_tx_callback
callback
;
...
@@ -2274,6 +2272,10 @@ static inline void handle_cyclic_desc_list(struct list_head *list)
...
@@ -2274,6 +2272,10 @@ static inline void handle_cyclic_desc_list(struct list_head *list)
callback
(
desc
->
txd
.
callback_param
);
callback
(
desc
->
txd
.
callback_param
);
}
}
/* pch will be unset if list was empty */
if
(
!
pch
)
return
;
spin_lock_irqsave
(
&
pch
->
lock
,
flags
);
spin_lock_irqsave
(
&
pch
->
lock
,
flags
);
list_splice_tail_init
(
list
,
&
pch
->
work_list
);
list_splice_tail_init
(
list
,
&
pch
->
work_list
);
spin_unlock_irqrestore
(
&
pch
->
lock
,
flags
);
spin_unlock_irqrestore
(
&
pch
->
lock
,
flags
);
...
@@ -2926,8 +2928,11 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
...
@@ -2926,8 +2928,11 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
INIT_LIST_HEAD
(
&
pd
->
channels
);
INIT_LIST_HEAD
(
&
pd
->
channels
);
/* Initialize channel parameters */
/* Initialize channel parameters */
num_chan
=
max
(
pdat
?
pdat
->
nr_valid_peri
:
(
u8
)
pi
->
pcfg
.
num_peri
,
if
(
pdat
)
(
u8
)
pi
->
pcfg
.
num_chan
);
num_chan
=
max_t
(
int
,
pdat
->
nr_valid_peri
,
pi
->
pcfg
.
num_chan
);
else
num_chan
=
max_t
(
int
,
pi
->
pcfg
.
num_peri
,
pi
->
pcfg
.
num_chan
);
pdmac
->
peripherals
=
kzalloc
(
num_chan
*
sizeof
(
*
pch
),
GFP_KERNEL
);
pdmac
->
peripherals
=
kzalloc
(
num_chan
*
sizeof
(
*
pch
),
GFP_KERNEL
);
for
(
i
=
0
;
i
<
num_chan
;
i
++
)
{
for
(
i
=
0
;
i
<
num_chan
;
i
++
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录