ARM: irq: add a mach/fiq.h inclusion for SPARSE_IRQ build
PATCH 1/1 ARM: irq: add a mach/fiq.h inclusion for SPARSE_IRQ build
The commit a2be01b (ARM: only include mach/irqs.h for !SPARSE_IRQ) makes mach/irqs.h only be included for !SPARSE_IRQ build. There are a nubmer of platforms have FIQ_START defined in mach/irqs.h.
arch/arm/mach-at91/include/mach/irqs.h:#define FIQ_START AT91_ID_FIQ
arch/arm/mach-rpc/include/mach/irqs.h:#define FIQ_START 64
arch/arm/mach-s3c24xx/include/mach/irqs.h:#define FIQ_START IRQ_EINT0
arch/arm/plat-mxc/include/mach/irqs.h:#define FIQ_START 0
arch/arm/plat-omap/include/plat/irqs.h:#define FIQ_START 1024
If SPARSE_IRQ is enabled for any of these platforms, the following compile error will be seen.
arch/arm/kernel/fiq.c: In function ?enable_fiq?:
arch/arm/kernel/fiq.c:127:19: error: ?FIQ_START? undeclared (first use in this function) arch/arm/kernel/fiq.c:127:19: note: each undeclared identifier is reported only once for each function it appears in arch/arm/kernel/fiq.c: In function ?disable_fiq?:
arch/arm/kernel/fiq.c:132:20: error: ?FIQ_START? undeclared (first use in this function)
So before we can remove the reference to FIQ_START in fiq.c, we need a way out. The patch adds a mach/fiq.h inclusion for SPARSE_IRQ build in asm/irq.h, so that platform can have a chance to provide FIQ_START.
--- arch/arm/include/asm/irq.h | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
arch/arm/include/asm/irq.h +1 -0
@@ -7,6 +7,7 @@#include <mach/irqs.h> #else #define NR_IRQS NR_IRQS_LEGACY +#include <mach/fiq.h> #endif #ifndef irq_canonicalize
Signature · 1 line
1.7.5.4
PATCH 1/1 ARM: irq: add a mach/fiq.h inclusion for SPARSE_IRQ build
Quoted 33 lines · Shawn Guo
The commit a2be01b (ARM: only include
mach/irqs.hfor !SPARSE_IRQ) makesmach/irqs.honly be included for !SPARSE_IRQ build. There are a nubmer of platforms haveFIQ_STARTdefined inmach/irqs.h.arch/arm/mach-at91/include/mach/irqs.h:#define
FIQ_STARTAT91_ID_FIQ
arch/arm/mach-rpc/include/mach/irqs.h:#defineFIQ_START64
arch/arm/mach-s3c24xx/include/mach/irqs.h:#defineFIQ_STARTIRQ_EINT0
arch/arm/plat-mxc/include/mach/irqs.h:#defineFIQ_START0
arch/arm/plat-omap/include/plat/irqs.h:#defineFIQ_START1024If
SPARSE_IRQis enabled for any of these platforms, the following compile error will be seen.
arch/arm/kernel/fiq.c: In function ?enable_fiq?:
arch/arm/kernel/fiq.c:127:19: error: ?FIQ_START? undeclared (first use in this function)arch/arm/kernel/fiq.c:127:19: note: each undeclared identifier is reported only once for each function it appears inarch/arm/kernel/fiq.c: In function ?disable_fiq?:
arch/arm/kernel/fiq.c:132:20: error: ?FIQ_START? undeclared (first use in this function)So before we can remove the reference to
FIQ_STARTinfiq.c, we need a way out. The patch adds amach/fiq.hinclusion forSPARSE_IRQbuild inasm/irq.h, so that platform can have a chance to provideFIQ_START.Signed-off-by Shawn Guo <[email protected]>--- arch/arm/include/asm/irq.h | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)arch/arm/include/asm/irq.h +0
-0
arch/arm/include/asm/irq.h line 12
Quoted 6 lines
arch/arm/include/asm/irq.h +1
-0@@ -7,6 +7,7 @@#include <mach/irqs.h> #else #define NR_IRQS NR_IRQS_LEGACY +#include <mach/fiq.h> #endif
Damned. Just realized that this will break those platforms with SPARSE_IRQ enabled but no mach/fiq.h provided.
Any sensible solution there?
Signature · 2 lines
Regards, Shawn
PATCH 1/1 ARM: irq: add a mach/fiq.h inclusion for SPARSE_IRQ build
Quoted 3 lines · Shawn Guo
Damned. Just realized that this will break those platforms with
SPARSE_IRQenabled but nomach/fiq.hprovided.
What about adding #ifdef CONFIG_FIQ check for the inclusion?
--8<---
arch/arm/include/asm/irq.h +3 -0
@@ -7,6 +7,9 @@#include <mach/irqs.h> #else #define NR_IRQS NR_IRQS_LEGACY +#ifdef CONFIG_FIQ +#include <mach/fiq.h> +#endif #endif #ifndef irq_canonicalize
--->8--
Regards,
Shawn
PATCH 1/1 ARM: irq: add a mach/fiq.h inclusion for SPARSE_IRQ build
In reply to Shawn GuoQuoted 19 lines · Shawn Guo
The commit a2be01b (ARM: only include
mach/irqs.hfor !SPARSE_IRQ) makesmach/irqs.honly be included for !SPARSE_IRQ build. There are a nubmer of platforms haveFIQ_STARTdefined inmach/irqs.h.arch/arm/mach-at91/include/mach/irqs.h:#define
FIQ_STARTAT91_ID_FIQ
arch/arm/mach-rpc/include/mach/irqs.h:#defineFIQ_START64
arch/arm/mach-s3c24xx/include/mach/irqs.h:#defineFIQ_STARTIRQ_EINT0
arch/arm/plat-mxc/include/mach/irqs.h:#defineFIQ_START0
arch/arm/plat-omap/include/plat/irqs.h:#defineFIQ_START1024If
SPARSE_IRQis enabled for any of these platforms, the following compile error will be seen.
arch/arm/kernel/fiq.c: In function ?enable_fiq?:
arch/arm/kernel/fiq.c:127:19: error: ?FIQ_START? undeclared (first use in this function)arch/arm/kernel/fiq.c:127:19: note: each undeclared identifier is reported only once for each function it appears inarch/arm/kernel/fiq.c: In function ?disable_fiq?:
arch/arm/kernel/fiq.c:132:20: error: ?FIQ_START? undeclared (first use in this function)
Quoted 3 lines
So before we can remove the reference to
FIQ_STARTinfiq.c, we need a way out. The patch adds amach/fiq.hinclusion forSPARSE_IRQbuild inasm/irq.h, so that platform can have a chance to provideFIQ_START.
This is a step backward. Please let's get rid of FIQ_START instead. This should be removed from enable_fiq() and disable_fiq(), and the arguments to those functions should use the absolute IRQ number instead. for instance, there is FIQ_FLOPPYDATA in mach-rpc/include/mach/irqs.h which could be defined as 64 instead of 0, etc.
Nicolas
PATCH 1/1 ARM: irq: add a mach/fiq.h inclusion for SPARSE_IRQ build
In reply to Shawn GuoQuoted 5 lines · Shawn Guo
The commit a2be01b (ARM: only include
mach/irqs.hfor !SPARSE_IRQ) makesmach/irqs.honly be included for !SPARSE_IRQ build. There are a nubmer of platforms haveFIQ_STARTdefined inmach/irqs.h.arch/arm/mach-at91/include/mach/irqs.h:#define
FIQ_STARTAT91_ID_FIQ
This one doesn't appear to actually be used anywhere.
Quoted 14 lines
arch/arm/mach-rpc/include/mach/irqs.h:#define
FIQ_START64
arch/arm/mach-s3c24xx/include/mach/irqs.h:#defineFIQ_STARTIRQ_EINT0
arch/arm/plat-mxc/include/mach/irqs.h:#defineFIQ_START0
arch/arm/plat-omap/include/plat/irqs.h:#defineFIQ_START1024If
SPARSE_IRQis enabled for any of these platforms, the following compile error will be seen.
arch/arm/kernel/fiq.c: In function ?enable_fiq?:
arch/arm/kernel/fiq.c:127:19: error: ?FIQ_START? undeclared (first use in this function)arch/arm/kernel/fiq.c:127:19: note: each undeclared identifier is reported only once for each function it appears inarch/arm/kernel/fiq.c: In function ?disable_fiq?:
arch/arm/kernel/fiq.c:132:20: error: ?FIQ_START? undeclared (first use in this function)
Quoted 3 lines
So before we can remove the reference to
FIQ_STARTinfiq.c, we need a way out. The patch adds amach/fiq.hinclusion forSPARSE_IRQbuild inasm/irq.h, so that platform can have a chance to provideFIQ_START.
The whole point of enabling SPARSE_IRQ was to eliminate a mach include and now this adds a new one. This is not the right solution.
I think we need to remove FIQ_START from enable_fiq/disable_fiq and make the platforms add any private offset they need. Only rpc and imx call enable_fiq/disable_fiq. imx offset is 0, so that leaves only rpc.
The other simple solution is make fiq_start a variable.
Rob
Quoted 17 lines
Signed-off-by Shawn Guo <[email protected]>--- arch/arm/include/asm/irq.h | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)arch/arm/include/asm/irq.h +1
-0@@ -7,6 +7,7 @@#include <mach/irqs.h> #else #define NR_IRQS NR_IRQS_LEGACY +#include <mach/fiq.h> #endif #ifndef irq_canonicalize