Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gsplhtlxg
clone-Linux
提交
b29cf443
C
clone-Linux
项目概览
gsplhtlxg
/
clone-Linux
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
clone-Linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b29cf443
编写于
10月 24, 2018
作者:
V
Vinod Koul
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'topic/intel' into for-linus
上级
9b01029d
f4d34aa8
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
13 addition
and
8 deletion
+13
-8
drivers/dma/idma64.c
drivers/dma/idma64.c
+2
-3
drivers/dma/ioat/init.c
drivers/dma/ioat/init.c
+11
-5
未找到文件。
drivers/dma/idma64.c
浏览文件 @
b29cf443
...
...
@@ -142,9 +142,8 @@ static void idma64_chan_irq(struct idma64 *idma64, unsigned short c,
{
struct
idma64_chan
*
idma64c
=
&
idma64
->
chan
[
c
];
struct
idma64_desc
*
desc
;
unsigned
long
flags
;
spin_lock
_irqsave
(
&
idma64c
->
vchan
.
lock
,
flags
);
spin_lock
(
&
idma64c
->
vchan
.
lock
);
desc
=
idma64c
->
desc
;
if
(
desc
)
{
if
(
status_err
&
(
1
<<
c
))
{
...
...
@@ -161,7 +160,7 @@ static void idma64_chan_irq(struct idma64 *idma64, unsigned short c,
if
(
idma64c
->
desc
==
NULL
||
desc
->
status
==
DMA_ERROR
)
idma64_stop_transfer
(
idma64c
);
}
spin_unlock
_irqrestore
(
&
idma64c
->
vchan
.
lock
,
flags
);
spin_unlock
(
&
idma64c
->
vchan
.
lock
);
}
static
irqreturn_t
idma64_irq
(
int
irq
,
void
*
dev
)
...
...
drivers/dma/ioat/init.c
浏览文件 @
b29cf443
...
...
@@ -129,7 +129,7 @@ static void
ioat_init_channel
(
struct
ioatdma_device
*
ioat_dma
,
struct
ioatdma_chan
*
ioat_chan
,
int
idx
);
static
void
ioat_intr_quirk
(
struct
ioatdma_device
*
ioat_dma
);
static
int
ioat_enumerate_channels
(
struct
ioatdma_device
*
ioat_dma
);
static
void
ioat_enumerate_channels
(
struct
ioatdma_device
*
ioat_dma
);
static
int
ioat3_dma_self_test
(
struct
ioatdma_device
*
ioat_dma
);
static
int
ioat_dca_enabled
=
1
;
...
...
@@ -575,7 +575,7 @@ static void ioat_dma_remove(struct ioatdma_device *ioat_dma)
* ioat_enumerate_channels - find and initialize the device's channels
* @ioat_dma: the ioat dma device to be enumerated
*/
static
int
ioat_enumerate_channels
(
struct
ioatdma_device
*
ioat_dma
)
static
void
ioat_enumerate_channels
(
struct
ioatdma_device
*
ioat_dma
)
{
struct
ioatdma_chan
*
ioat_chan
;
struct
device
*
dev
=
&
ioat_dma
->
pdev
->
dev
;
...
...
@@ -594,7 +594,7 @@ static int ioat_enumerate_channels(struct ioatdma_device *ioat_dma)
xfercap_log
=
readb
(
ioat_dma
->
reg_base
+
IOAT_XFERCAP_OFFSET
);
xfercap_log
&=
0x1f
;
/* bits [4:0] valid */
if
(
xfercap_log
==
0
)
return
0
;
return
;
dev_dbg
(
dev
,
"%s: xfercap = %d
\n
"
,
__func__
,
1
<<
xfercap_log
);
for
(
i
=
0
;
i
<
dma
->
chancnt
;
i
++
)
{
...
...
@@ -611,7 +611,6 @@ static int ioat_enumerate_channels(struct ioatdma_device *ioat_dma)
}
}
dma
->
chancnt
=
i
;
return
i
;
}
/**
...
...
@@ -1205,8 +1204,15 @@ static void ioat_shutdown(struct pci_dev *pdev)
spin_lock_bh
(
&
ioat_chan
->
prep_lock
);
set_bit
(
IOAT_CHAN_DOWN
,
&
ioat_chan
->
state
);
del_timer_sync
(
&
ioat_chan
->
timer
);
spin_unlock_bh
(
&
ioat_chan
->
prep_lock
);
/*
* Synchronization rule for del_timer_sync():
* - The caller must not hold locks which would prevent
* completion of the timer's handler.
* So prep_lock cannot be held before calling it.
*/
del_timer_sync
(
&
ioat_chan
->
timer
);
/* this should quiesce then reset */
ioat_reset_hw
(
ioat_chan
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录