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 | ||
