Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
f1f701e9
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看板
提交
f1f701e9
编写于
2月 04, 2011
作者:
T
Thomas Gleixner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ia64: Convert msi to new irq_chip functions
Signed-off-by:
N
Thomas Gleixner
<
tglx@linutronix.de
>
上级
545c8d8d
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
22 addition
and
19 deletion
+22
-19
arch/ia64/kernel/msi_ia64.c
arch/ia64/kernel/msi_ia64.c
+22
-19
未找到文件。
arch/ia64/kernel/msi_ia64.c
浏览文件 @
f1f701e9
...
...
@@ -12,12 +12,13 @@
static
struct
irq_chip
ia64_msi_chip
;
#ifdef CONFIG_SMP
static
int
ia64_set_msi_irq_affinity
(
unsigned
int
irq
,
const
cpumask_t
*
cpu_mask
)
static
int
ia64_set_msi_irq_affinity
(
struct
irq_data
*
idata
,
const
cpumask_t
*
cpu_mask
,
bool
force
)
{
struct
msi_msg
msg
;
u32
addr
,
data
;
int
cpu
=
first_cpu
(
*
cpu_mask
);
unsigned
int
irq
=
idata
->
irq
;
if
(
!
cpu_online
(
cpu
))
return
-
1
;
...
...
@@ -38,7 +39,7 @@ static int ia64_set_msi_irq_affinity(unsigned int irq,
msg
.
data
=
data
;
write_msi_msg
(
irq
,
&
msg
);
cpumask_copy
(
i
rq_desc
[
irq
].
affinity
,
cpumask_of
(
cpu
));
cpumask_copy
(
i
data
->
affinity
,
cpumask_of
(
cpu
));
return
0
;
}
...
...
@@ -84,16 +85,16 @@ void ia64_teardown_msi_irq(unsigned int irq)
destroy_irq
(
irq
);
}
static
void
ia64_ack_msi_irq
(
unsigned
int
irq
)
static
void
ia64_ack_msi_irq
(
struct
irq_data
*
data
)
{
irq_complete_move
(
irq
);
move_native_irq
(
irq
);
irq_complete_move
(
data
->
irq
);
move_native_irq
(
data
->
irq
);
ia64_eoi
();
}
static
int
ia64_msi_retrigger_irq
(
unsigned
int
irq
)
static
int
ia64_msi_retrigger_irq
(
struct
irq_data
*
data
)
{
unsigned
int
vector
=
irq_to_vector
(
irq
);
unsigned
int
vector
=
irq_to_vector
(
data
->
irq
);
ia64_resend_irq
(
vector
);
return
1
;
...
...
@@ -106,11 +107,11 @@ static struct irq_chip ia64_msi_chip = {
.
name
=
"PCI-MSI"
,
.
irq_mask
=
mask_msi_irq
,
.
irq_unmask
=
unmask_msi_irq
,
.
ack
=
ia64_ack_msi_irq
,
.
irq_
ack
=
ia64_ack_msi_irq
,
#ifdef CONFIG_SMP
.
set_affinity
=
ia64_set_msi_irq_affinity
,
.
irq_
set_affinity
=
ia64_set_msi_irq_affinity
,
#endif
.
retrigger
=
ia64_msi_retrigger_irq
,
.
irq_retrigger
=
ia64_msi_retrigger_irq
,
};
...
...
@@ -132,8 +133,10 @@ void arch_teardown_msi_irq(unsigned int irq)
#ifdef CONFIG_DMAR
#ifdef CONFIG_SMP
static
int
dmar_msi_set_affinity
(
unsigned
int
irq
,
const
struct
cpumask
*
mask
)
static
int
dmar_msi_set_affinity
(
struct
irq_data
*
data
,
const
struct
cpumask
*
mask
,
bool
force
)
{
unsigned
int
irq
=
data
->
irq
;
struct
irq_cfg
*
cfg
=
irq_cfg
+
irq
;
struct
msi_msg
msg
;
int
cpu
=
cpumask_first
(
mask
);
...
...
@@ -152,7 +155,7 @@ static int dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask)
msg
.
address_lo
|=
MSI_ADDR_DEST_ID_CPU
(
cpu_physical_id
(
cpu
));
dmar_msi_write
(
irq
,
&
msg
);
cpumask_copy
(
irq_desc
[
irq
].
affinity
,
mask
);
cpumask_copy
(
data
->
affinity
,
mask
);
return
0
;
}
...
...
@@ -162,11 +165,11 @@ static struct irq_chip dmar_msi_type = {
.
name
=
"DMAR_MSI"
,
.
irq_unmask
=
dmar_msi_unmask
,
.
irq_mask
=
dmar_msi_mask
,
.
ack
=
ia64_ack_msi_irq
,
.
irq_
ack
=
ia64_ack_msi_irq
,
#ifdef CONFIG_SMP
.
set_affinity
=
dmar_msi_set_affinity
,
.
irq_
set_affinity
=
dmar_msi_set_affinity
,
#endif
.
retrigger
=
ia64_msi_retrigger_irq
,
.
irq_
retrigger
=
ia64_msi_retrigger_irq
,
};
static
int
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录