[PATCH 1/3] ARM: Samsung: Move timer irq numbers to end of linux irq space
Thomas Abraham
thomas.abraham at linaro.org
Fri Oct 21 12:54:11 EDT 2011
Hi Changhwan,
On 18 October 2011 13:40, Changhwan Youn <chaos.youn at samsung.com> wrote:
> Hi Thomas,
>
> All UART_IRQ_RXD, TXD, ERR of Samsung's platforms are also statically
> mapped to linux irq numbers 16 to 31. These interrupts also need proper handling.
A patchset has been submitted to consolidate the uart interrupt
handling for Samsung platforms. The following is the link submitted
for this patch series.
http://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg06035.html
With this patchset, the linux irq space of 16 to 31 is freed. This
patchset has been queued for merge for the 3.2 merge window.
Thanks,
Thomas.
>
> Best regards,
> Changhwan Youn
>
> On 10/10/2011 03:11 AM, Thomas Abraham wrote:
>> All of Samsung's s5p platforms have timer irqs statically mapped from linux
>> irq numbers 11 to 15. These timer irqs are moved to end of the statically
>> mapped linux irq space and the hardware irqs, which were statically mapped
>> starting from 32 is moved to start from 0. The NR_IRQS macro is consolidated
>> for all the s5p platforms in this process.
>>
>> Signed-off-by: Thomas Abraham <thomas.abraham at linaro.org>
>> ---
>> arch/arm/mach-exynos4/include/mach/entry-macro.S | 1 -
>> arch/arm/mach-exynos4/include/mach/irqs.h | 3 +--
>> arch/arm/mach-s5p64x0/include/mach/irqs.h | 4 +---
>> arch/arm/mach-s5pc100/include/mach/irqs.h | 3 +--
>> arch/arm/mach-s5pv210/include/mach/irqs.h | 3 +--
>> arch/arm/plat-samsung/include/plat/irqs.h | 7 +++++--
>> 6 files changed, 9 insertions(+), 12 deletions(-)
>>
>> diff --git a/arch/arm/mach-exynos4/include/mach/entry-macro.S b/arch/arm/mach-
>> exynos4/include/mach/entry-macro.S
>> index 4c9adbd..5c4fbcc 100644
>> --- a/arch/arm/mach-exynos4/include/mach/entry-macro.S
>> +++ b/arch/arm/mach-exynos4/include/mach/entry-macro.S
>> @@ -72,7 +72,6 @@
>> cmpcc \irqnr, \irqnr
>> cmpne \irqnr, \tmp
>> cmpcs \irqnr, \irqnr
>> - addne \irqnr, \irqnr, #32
>>
>> .endm
>>
>> diff --git a/arch/arm/mach-exynos4/include/mach/irqs.h b/arch/arm/mach-exynos4/include/mach/irqs.h
>> index dfd4b7e..43087c3 100644
>> --- a/arch/arm/mach-exynos4/include/mach/irqs.h
>> +++ b/arch/arm/mach-exynos4/include/mach/irqs.h
>> @@ -163,7 +163,6 @@
>> #define IRQ_GPIO2_NR_GROUPS 9
>> #define IRQ_GPIO_END (S5P_GPIOINT_BASE + S5P_GPIOINT_COUNT)
>>
>> -/* Set the default NR_IRQS */
>> -#define NR_IRQS (IRQ_GPIO_END + 64)
>> +#define IRQ_TIMER_BASE (IRQ_GPIO_END + 64)
>>
>> #endif /* __ASM_ARCH_IRQS_H */
>> diff --git a/arch/arm/mach-s5p64x0/include/mach/irqs.h b/arch/arm/mach-s5p64x0/include/mach/irqs.h
>> index 53982db..bea73cc 100644
>> --- a/arch/arm/mach-s5p64x0/include/mach/irqs.h
>> +++ b/arch/arm/mach-s5p64x0/include/mach/irqs.h
>> @@ -141,8 +141,6 @@
>>
>> #define IRQ_EINT_GROUP(grp, x) (IRQ_EINT_GROUP##grp##_BASE + (x))
>>
>> -/* Set the default NR_IRQS */
>> -
>> -#define NR_IRQS (IRQ_EINT_GROUP8_BASE + IRQ_EINT_GROUP8_NR + 1)
>> +#define IRQ_TIMER_BASE (IRQ_EINT_GROUP8_BASE + IRQ_EINT_GROUP8_NR + 1)
>>
>> #endif /* __ASM_ARCH_IRQS_H */
>> diff --git a/arch/arm/mach-s5pc100/include/mach/irqs.h b/arch/arm/mach-s5pc100/include/mach/irqs.h
>> index d2eb475..3a9d300 100644
>> --- a/arch/arm/mach-s5pc100/include/mach/irqs.h
>> +++ b/arch/arm/mach-s5pc100/include/mach/irqs.h
>> @@ -104,8 +104,7 @@
>> #define S5P_GPIOINT_BASE (IRQ_EINT(31) + 1)
>> #define S5P_GPIOINT_GROUP_MAXNR 21
>>
>> -/* Set the default NR_IRQS */
>> -#define NR_IRQS (IRQ_EINT(31) + S5P_GPIOINT_COUNT + 1)
>> +#define IRQ_TIMER_BASE (IRQ_EINT(31) + S5P_GPIOINT_COUNT + 1)
>>
>> /* Compatibility */
>> #define IRQ_LCD_FIFO IRQ_LCD0
>> diff --git a/arch/arm/mach-s5pv210/include/mach/irqs.h b/arch/arm/mach-s5pv210/include/mach/irqs.h
>> index 5e0de3a..df3173a 100644
>> --- a/arch/arm/mach-s5pv210/include/mach/irqs.h
>> +++ b/arch/arm/mach-s5pv210/include/mach/irqs.h
>> @@ -125,8 +125,7 @@
>> #define S5P_GPIOINT_BASE (IRQ_EINT(31) + 1)
>> #define S5P_GPIOINT_GROUP_MAXNR 22
>>
>> -/* Set the default NR_IRQS */
>> -#define NR_IRQS (IRQ_EINT(31) + S5P_GPIOINT_COUNT + 1)
>> +#define IRQ_TIMER_BASE (IRQ_EINT(31) + S5P_GPIOINT_COUNT + 1)
>>
>> /* Compatibility */
>> #define IRQ_LCD_FIFO IRQ_LCD0
>> diff --git a/arch/arm/plat-samsung/include/plat/irqs.h b/arch/arm/plat-samsung/include/plat/irqs.h
>> index 08d1a7e..b8918b3 100644
>> --- a/arch/arm/plat-samsung/include/plat/irqs.h
>> +++ b/arch/arm/plat-samsung/include/plat/irqs.h
>> @@ -22,7 +22,7 @@
>> * mulitple of 32 to allow the common code to work
>> */
>>
>> -#define S5P_IRQ_OFFSET (32)
>> +#define S5P_IRQ_OFFSET (0)
>>
>> #define S5P_IRQ(x) ((x) + S5P_IRQ_OFFSET)
>>
>> @@ -44,13 +44,14 @@
>> #define S5P_IRQ_VIC2(x) (S5P_VIC2_BASE + (x))
>> #define S5P_IRQ_VIC3(x) (S5P_VIC3_BASE + (x))
>>
>> -#define S5P_TIMER_IRQ(x) (11 + (x))
>> +#define S5P_TIMER_IRQ(x) (IRQ_TIMER_BASE + (x))
>>
>> #define IRQ_TIMER0 S5P_TIMER_IRQ(0)
>> #define IRQ_TIMER1 S5P_TIMER_IRQ(1)
>> #define IRQ_TIMER2 S5P_TIMER_IRQ(2)
>> #define IRQ_TIMER3 S5P_TIMER_IRQ(3)
>> #define IRQ_TIMER4 S5P_TIMER_IRQ(4)
>> +#define IRQ_TIMER_COUNT (5)
>>
>> #define IRQ_EINT(x) ((x) < 16 ? ((x) + S5P_EINT_BASE1) \
>> : ((x) - 16 + S5P_EINT_BASE2))
>> @@ -77,4 +78,6 @@
>> #define S5P_IRQ_TYPE_EDGE_RISING (0x03)
>> #define S5P_IRQ_TYPE_EDGE_BOTH (0x04)
>>
>> +#define NR_IRQS (IRQ_TIMER_BASE + IRQ_TIMER_COUNT)
>> +
>> #endif /* __PLAT_SAMSUNG_IRQS_H */
>> --
>> 1.6.6.rc2
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
>
More information about the linux-arm-kernel
mailing list