diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-02-23 08:29:33 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-03-25 18:57:22 -0400 |
commit | 375dec92777c96015a13a23eaeb4f23281fb8662 (patch) | |
tree | 74164b30e8aa689c51ccb552c06aedc86219539d | |
parent | f314f33be77d6a48ae19748e3dc4a6657042b525 (diff) |
ARM: 7343/1: sa11x0: convert to sparse IRQ
Now that Neponset, UCB1x00 and SA1111 are all converted to use the IRQ
allocation interfaces, we can enable sparse IRQ support for SA11x0
platforms.
-rw-r--r-- | arch/arm/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/badge4.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/include/mach/irqs.h | 21 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/jornada720.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/neponset.c | 1 |
5 files changed, 13 insertions, 12 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a48aecc17eac..34aed718faed 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -760,6 +760,7 @@ config ARCH_SA1100 | |||
760 | select ARCH_REQUIRE_GPIOLIB | 760 | select ARCH_REQUIRE_GPIOLIB |
761 | select HAVE_IDE | 761 | select HAVE_IDE |
762 | select NEED_MACH_MEMORY_H | 762 | select NEED_MACH_MEMORY_H |
763 | select SPARSE_IRQ | ||
763 | help | 764 | help |
764 | Support for StrongARM 11x0 based boards. | 765 | Support for StrongARM 11x0 based boards. |
765 | 766 | ||
diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c index 8c805425b684..e0f0c030258c 100644 --- a/arch/arm/mach-sa1100/badge4.c +++ b/arch/arm/mach-sa1100/badge4.c | |||
@@ -57,7 +57,6 @@ static void badge4_sa1111_disable(void *data, unsigned devid) | |||
57 | } | 57 | } |
58 | 58 | ||
59 | static struct sa1111_platform_data sa1111_info = { | 59 | static struct sa1111_platform_data sa1111_info = { |
60 | .irq_base = IRQ_BOARD_END, | ||
61 | .disable_devs = SA1111_DEVID_PS2_MSE, | 60 | .disable_devs = SA1111_DEVID_PS2_MSE, |
62 | .enable = badge4_sa1111_enable, | 61 | .enable = badge4_sa1111_enable, |
63 | .disable = badge4_sa1111_disable, | 62 | .disable = badge4_sa1111_disable, |
diff --git a/arch/arm/mach-sa1100/include/mach/irqs.h b/arch/arm/mach-sa1100/include/mach/irqs.h index 0ad78218c9f3..3790298b7142 100644 --- a/arch/arm/mach-sa1100/include/mach/irqs.h +++ b/arch/arm/mach-sa1100/include/mach/irqs.h | |||
@@ -71,16 +71,19 @@ | |||
71 | /* | 71 | /* |
72 | * Figure out the MAX IRQ number. | 72 | * Figure out the MAX IRQ number. |
73 | * | 73 | * |
74 | * If we have an SA1111, the max IRQ is S1_BVD1_STSCHG+1. | 74 | * Neponset, SA1111 and UCB1x00 are sparse IRQ aware, so can dynamically |
75 | * If we have an LoCoMo, the max IRQ is IRQ_BOARD_START + 4 | 75 | * allocate their IRQs above NR_IRQS. |
76 | * Otherwise, we have the standard IRQs only. | 76 | * |
77 | * LoCoMo has 4 additional IRQs, but is not sparse IRQ aware, and so has | ||
78 | * to be included in the NR_IRQS calculation. | ||
77 | */ | 79 | */ |
78 | #ifdef CONFIG_SA1111 | 80 | #ifdef CONFIG_SHARP_LOCOMO |
79 | #define NR_IRQS (IRQ_BOARD_END + 55) | 81 | #define NR_IRQS_LOCOMO 4 |
80 | #elif defined(CONFIG_SHARP_LOCOMO) | ||
81 | #define NR_IRQS (IRQ_BOARD_START + 4) | ||
82 | #else | 82 | #else |
83 | #define NR_IRQS (IRQ_BOARD_START) | 83 | #define NR_IRQS_LOCOMO 0 |
84 | #endif | 84 | #endif |
85 | 85 | ||
86 | #define SA1100_NR_IRQS NR_IRQS | 86 | #ifndef NR_IRQS |
87 | #define NR_IRQS (IRQ_BOARD_START + NR_IRQS_LOCOMO) | ||
88 | #endif | ||
89 | #define SA1100_NR_IRQS (IRQ_BOARD_START + NR_IRQS_LOCOMO) | ||
diff --git a/arch/arm/mach-sa1100/jornada720.c b/arch/arm/mach-sa1100/jornada720.c index b7dcb1887aca..ca7a7e834720 100644 --- a/arch/arm/mach-sa1100/jornada720.c +++ b/arch/arm/mach-sa1100/jornada720.c | |||
@@ -195,7 +195,6 @@ static struct resource sa1111_resources[] = { | |||
195 | }; | 195 | }; |
196 | 196 | ||
197 | static struct sa1111_platform_data sa1111_info = { | 197 | static struct sa1111_platform_data sa1111_info = { |
198 | .irq_base = IRQ_BOARD_END, | ||
199 | .disable_devs = SA1111_DEVID_PS2_MSE, | 198 | .disable_devs = SA1111_DEVID_PS2_MSE, |
200 | }; | 199 | }; |
201 | 200 | ||
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c index b04a8f1928fc..6c58f01b358a 100644 --- a/arch/arm/mach-sa1100/neponset.c +++ b/arch/arm/mach-sa1100/neponset.c | |||
@@ -229,7 +229,6 @@ static struct irq_chip nochip = { | |||
229 | }; | 229 | }; |
230 | 230 | ||
231 | static struct sa1111_platform_data sa1111_info = { | 231 | static struct sa1111_platform_data sa1111_info = { |
232 | .irq_base = IRQ_BOARD_END, | ||
233 | .disable_devs = SA1111_DEVID_PS2_MSE, | 232 | .disable_devs = SA1111_DEVID_PS2_MSE, |
234 | }; | 233 | }; |
235 | 234 | ||