From 2a004e1ba43b809c4c26c1fabdcdb8efe076e49e Mon Sep 17 00:00:00 2001 From: Shawn Guo Date: Thu, 28 Jun 2012 14:42:08 +0800 Subject: [PATCH] --- yaml --- r: 313512 b: refs/heads/master c: bc89663aa5c7ca620f58c34ab531ca409119becc h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/arm/include/asm/mach/irq.h | 2 +- trunk/arch/arm/kernel/fiq.c | 9 ++++++--- trunk/arch/arm/mach-rpc/irq.c | 2 +- trunk/arch/arm/plat-mxc/avic.c | 2 +- trunk/arch/arm/plat-mxc/tzic.c | 2 +- trunk/arch/arm/plat-s3c24xx/irq.c | 2 +- 7 files changed, 12 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index eff69f0efaf4..73d8f89a7fd6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1ee8f65b5689504b98dacb6641fc8b2cc5618ad4 +refs/heads/master: bc89663aa5c7ca620f58c34ab531ca409119becc diff --git a/trunk/arch/arm/include/asm/mach/irq.h b/trunk/arch/arm/include/asm/mach/irq.h index febe495d0c6e..15cb035309f7 100644 --- a/trunk/arch/arm/include/asm/mach/irq.h +++ b/trunk/arch/arm/include/asm/mach/irq.h @@ -17,7 +17,7 @@ struct seq_file; /* * This is internal. Do not use it. */ -extern void init_FIQ(void); +extern void init_FIQ(int); extern int show_fiq_list(struct seq_file *, int); #ifdef CONFIG_MULTI_IRQ_HANDLER diff --git a/trunk/arch/arm/kernel/fiq.c b/trunk/arch/arm/kernel/fiq.c index c32f8456aa09..2adda11f712f 100644 --- a/trunk/arch/arm/kernel/fiq.c +++ b/trunk/arch/arm/kernel/fiq.c @@ -122,14 +122,16 @@ void release_fiq(struct fiq_handler *f) while (current_fiq->fiq_op(current_fiq->dev_id, 0)); } +static int fiq_start; + void enable_fiq(int fiq) { - enable_irq(fiq + FIQ_START); + enable_irq(fiq + fiq_start); } void disable_fiq(int fiq) { - disable_irq(fiq + FIQ_START); + disable_irq(fiq + fiq_start); } EXPORT_SYMBOL(set_fiq_handler); @@ -140,7 +142,8 @@ EXPORT_SYMBOL(release_fiq); EXPORT_SYMBOL(enable_fiq); EXPORT_SYMBOL(disable_fiq); -void __init init_FIQ(void) +void __init init_FIQ(int start) { no_fiq_insn = *(unsigned long *)0xffff001c; + fiq_start = start; } diff --git a/trunk/arch/arm/mach-rpc/irq.c b/trunk/arch/arm/mach-rpc/irq.c index cf0e669eaf1a..3e4fa849c64d 100644 --- a/trunk/arch/arm/mach-rpc/irq.c +++ b/trunk/arch/arm/mach-rpc/irq.c @@ -163,6 +163,6 @@ void __init rpc_init_irq(void) } } - init_FIQ(); + init_FIQ(FIQ_START); } diff --git a/trunk/arch/arm/plat-mxc/avic.c b/trunk/arch/arm/plat-mxc/avic.c index e612cc1edede..f3d671ff7f1b 100644 --- a/trunk/arch/arm/plat-mxc/avic.c +++ b/trunk/arch/arm/plat-mxc/avic.c @@ -217,7 +217,7 @@ void __init mxc_init_irq(void __iomem *irqbase) #ifdef CONFIG_FIQ /* Initialize FIQ */ - init_FIQ(); + init_FIQ(FIQ_START); #endif printk(KERN_INFO "MXC IRQ initialized\n"); diff --git a/trunk/arch/arm/plat-mxc/tzic.c b/trunk/arch/arm/plat-mxc/tzic.c index abc90e4116f5..c60a7e416385 100644 --- a/trunk/arch/arm/plat-mxc/tzic.c +++ b/trunk/arch/arm/plat-mxc/tzic.c @@ -192,7 +192,7 @@ void __init tzic_init_irq(void __iomem *irqbase) #ifdef CONFIG_FIQ /* Initialize FIQ */ - init_FIQ(); + init_FIQ(FIQ_START); #endif pr_info("TrustZone Interrupt Controller (TZIC) initialized\n"); diff --git a/trunk/arch/arm/plat-s3c24xx/irq.c b/trunk/arch/arm/plat-s3c24xx/irq.c index bc42c04091fd..fe57bbbf166b 100644 --- a/trunk/arch/arm/plat-s3c24xx/irq.c +++ b/trunk/arch/arm/plat-s3c24xx/irq.c @@ -533,7 +533,7 @@ void __init s3c24xx_init_irq(void) int i; #ifdef CONFIG_FIQ - init_FIQ(); + init_FIQ(FIQ_START); #endif irqdbf("s3c2410_init_irq: clearing interrupt status flags\n");