Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
ddaedd1c
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看板
提交
ddaedd1c
编写于
3月 28, 2011
作者:
T
Thomas Gleixner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
powerpc-fsl-msi-use-irqd.patch
Signed-off-by:
N
Thomas Gleixner
<
tglx@linutronix.de
>
上级
773e20d5
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
11 addition
and
10 deletion
+11
-10
arch/powerpc/sysdev/fsl_msi.c
arch/powerpc/sysdev/fsl_msi.c
+11
-10
未找到文件。
arch/powerpc/sysdev/fsl_msi.c
浏览文件 @
ddaedd1c
...
...
@@ -183,7 +183,8 @@ static int fsl_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
static
void
fsl_msi_cascade
(
unsigned
int
irq
,
struct
irq_desc
*
desc
)
{
struct
irq_chip
*
chip
=
get_irq_desc_chip
(
desc
);
struct
irq_chip
*
chip
=
irq_desc_get_chip
(
desc
);
struct
irq_data
*
idata
=
irq_desc_get_irq_data
(
desc
);
unsigned
int
cascade_irq
;
struct
fsl_msi
*
msi_data
;
int
msir_index
=
-
1
;
...
...
@@ -198,14 +199,14 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc)
raw_spin_lock
(
&
desc
->
lock
);
if
((
msi_data
->
feature
&
FSL_PIC_IP_MASK
)
==
FSL_PIC_IP_IPIC
)
{
if
(
chip
->
irq_mask_ack
)
chip
->
irq_mask_ack
(
&
desc
->
irq_
data
);
chip
->
irq_mask_ack
(
i
data
);
else
{
chip
->
irq_mask
(
&
desc
->
irq_
data
);
chip
->
irq_ack
(
&
desc
->
irq_
data
);
chip
->
irq_mask
(
i
data
);
chip
->
irq_ack
(
i
data
);
}
}
if
(
unlikely
(
desc
->
status
&
IRQ_INPROGRESS
))
if
(
unlikely
(
irqd_irq_inprogress
(
idata
)
))
goto
unlock
;
msir_index
=
cascade_data
->
index
;
...
...
@@ -213,7 +214,7 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc)
if
(
msir_index
>=
NR_MSI_REG
)
cascade_irq
=
NO_IRQ
;
desc
->
status
|=
IRQ_INPROGRESS
;
irqd_set_chained_irq_inprogress
(
idata
)
;
switch
(
msi_data
->
feature
&
FSL_PIC_IP_MASK
)
{
case
FSL_PIC_IP_MPIC
:
msir_value
=
fsl_msi_read
(
msi_data
->
msi_regs
,
...
...
@@ -235,15 +236,15 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc)
have_shift
+=
intr_index
+
1
;
msir_value
=
msir_value
>>
(
intr_index
+
1
);
}
desc
->
status
&=
~
IRQ_INPROGRESS
;
irqd_clr_chained_irq_inprogress
(
idata
)
;
switch
(
msi_data
->
feature
&
FSL_PIC_IP_MASK
)
{
case
FSL_PIC_IP_MPIC
:
chip
->
irq_eoi
(
&
desc
->
irq_
data
);
chip
->
irq_eoi
(
i
data
);
break
;
case
FSL_PIC_IP_IPIC
:
if
(
!
(
desc
->
status
&
IRQ_DISABLED
)
&&
chip
->
irq_unmask
)
chip
->
irq_unmask
(
&
desc
->
irq_
data
);
if
(
!
irqd_irq_disabled
(
idata
)
&&
chip
->
irq_unmask
)
chip
->
irq_unmask
(
i
data
);
break
;
}
unlock:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录