Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
fa353e9f
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
163
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
fa353e9f
编写于
12月 31, 2010
作者:
K
Kukjin Kim
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev/s5pv310-irq' into next-s5pv310
上级
a8928ce7
85140ad5
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
24 addition
and
4 deletion
+24
-4
arch/arm/mach-s5pv310/cpu.c
arch/arm/mach-s5pv310/cpu.c
+9
-0
arch/arm/mach-s5pv310/include/mach/irqs.h
arch/arm/mach-s5pv310/include/mach/irqs.h
+10
-3
arch/arm/mach-s5pv310/irq-combiner.c
arch/arm/mach-s5pv310/irq-combiner.c
+5
-1
未找到文件。
arch/arm/mach-s5pv310/cpu.c
浏览文件 @
fa353e9f
...
...
@@ -132,6 +132,15 @@ void __init s5pv310_init_irq(void)
gic_cpu_init
(
0
,
S5P_VA_GIC_CPU
);
for
(
irq
=
0
;
irq
<
MAX_COMBINER_NR
;
irq
++
)
{
/*
* From SPI(0) to SPI(39) and SPI(51), SPI(53) are
* connected to the interrupt combiner. These irqs
* should be initialized to support cascade interrupt.
*/
if
((
irq
>=
40
)
&&
!
(
irq
==
51
)
&&
!
(
irq
==
53
))
continue
;
combiner_init
(
irq
,
(
void
__iomem
*
)
S5P_VA_COMBINER
(
irq
),
COMBINER_IRQ
(
irq
,
0
));
combiner_cascade_irq
(
irq
,
IRQ_SPI
(
irq
));
...
...
arch/arm/mach-s5pv310/include/mach/irqs.h
浏览文件 @
fa353e9f
...
...
@@ -25,6 +25,8 @@
#define IRQ_SPI(x) S5P_IRQ(x+32)
#define IRQ_MCT1 IRQ_SPI(35)
#define IRQ_EINT0 IRQ_SPI(40)
#define IRQ_EINT1 IRQ_SPI(41)
#define IRQ_EINT2 IRQ_SPI(42)
...
...
@@ -36,9 +38,8 @@
#define IRQ_JPEG IRQ_SPI(48)
#define IRQ_2D IRQ_SPI(49)
#define IRQ_PCIE IRQ_SPI(50)
#define IRQ_
SYSTEM_TIMER
IRQ_SPI(51)
#define IRQ_
MCT0
IRQ_SPI(51)
#define IRQ_MFC IRQ_SPI(52)
#define IRQ_WDT IRQ_SPI(53)
#define IRQ_AUDIO_SS IRQ_SPI(54)
#define IRQ_AC97 IRQ_SPI(55)
#define IRQ_SPDIF IRQ_SPI(56)
...
...
@@ -85,6 +86,8 @@
#define IRQ_ONENAND_AUDI COMBINER_IRQ(34, 0)
#define IRQ_MCT_L1 COMBINER_IRQ(35, 3)
#define IRQ_EINT4 COMBINER_IRQ(37, 0)
#define IRQ_EINT5 COMBINER_IRQ(37, 1)
#define IRQ_EINT6 COMBINER_IRQ(37, 2)
...
...
@@ -101,7 +104,11 @@
#define IRQ_EINT16_31 COMBINER_IRQ(39, 0)
#define MAX_COMBINER_NR 40
#define IRQ_MCT_L0 COMBINER_IRQ(51, 0)
#define IRQ_WDT COMBINER_IRQ(53, 0)
#define MAX_COMBINER_NR 54
#define S5P_IRQ_EINT_BASE COMBINER_IRQ(MAX_COMBINER_NR, 0)
...
...
arch/arm/mach-s5pv310/irq-combiner.c
浏览文件 @
fa353e9f
...
...
@@ -24,6 +24,7 @@ static DEFINE_SPINLOCK(irq_controller_lock);
struct
combiner_chip_data
{
unsigned
int
irq_offset
;
unsigned
int
irq_mask
;
void
__iomem
*
base
;
};
...
...
@@ -62,6 +63,7 @@ static void combiner_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
spin_lock
(
&
irq_controller_lock
);
status
=
__raw_readl
(
chip_data
->
base
+
COMBINER_INT_STATUS
);
spin_unlock
(
&
irq_controller_lock
);
status
&=
chip_data
->
irq_mask
;
if
(
status
==
0
)
goto
out
;
...
...
@@ -104,10 +106,12 @@ void __init combiner_init(unsigned int combiner_nr, void __iomem *base,
combiner_data
[
combiner_nr
].
base
=
base
;
combiner_data
[
combiner_nr
].
irq_offset
=
irq_start
;
combiner_data
[
combiner_nr
].
irq_mask
=
0xff
<<
((
combiner_nr
%
4
)
<<
3
);
/* Disable all interrupts */
__raw_writel
(
0xffffffff
,
base
+
COMBINER_ENABLE_CLEAR
);
__raw_writel
(
combiner_data
[
combiner_nr
].
irq_mask
,
base
+
COMBINER_ENABLE_CLEAR
);
/* Setup the Linux IRQ subsystem */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录