Patchwork ARM: S3C24XX: Correct NR_IRQS definition for s3c2440

login
register
mail settings
Submitter Sylwester Nawrocki
Date April 7, 2013, 8:22 p.m.
Message ID <1365366170-9682-1-git-send-email-s.nawrocki@samsung.com>
Download mbox | patch
Permalink /patch/234542/
State New
Headers show

Comments

Sylwester Nawrocki - April 7, 2013, 8:22 p.m.
Due to NR_IRQS being incorrectly defined not all IRQ domains can
be registered for S3C2440. It causes following errors on a s3c2440
SoC based board:

NR_IRQS:89
S3C2440: IRQ Support
irq: clearing pending status 00000002
------------[ cut here ]------------
WARNING: at kernel/irq/irqdomain.c:234 0xc0056ed0()
...
irq: could not create irq-domain
...
s3c2410-wdt s3c2410-wdt: failed to install irq (-22)
s3c2410-wdt: probe of s3c2410-wdt failed with error -22
...
samsung-uart s3c2440-uart.0: cannot get irq 74

Fix this by increasing NR_IRQS to at least (IRQ_S3C2443_AC97 + 1)
if CPU_S3C2440 is selected, so the subintc IRQ domain gets properly
registered.

Cc: Heiko Stübner <heiko@sntech.de>
Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
---
 arch/arm/mach-s3c24xx/include/mach/irqs.h |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)
Sylwester Nawrocki - April 7, 2013, 9:42 p.m.
On 04/07/2013 10:35 PM, Heiko Stübner wrote:
> Am Sonntag, 7. April 2013, 22:22:50 schrieb Sylwester Nawrocki:
[...]
> Thanks for testing the irq changes on another subarchitecture and fixing the
> glitch.

And thanks for your effort in adding DT support for s3c24xx!

I'm still debugging one more issue, which prevents the ethernet controller
from working properly. I.e. currently booting stops on starting network 
interfaces.
There is some problem with the external interrupts handling on s3c2440. 
In my
case EINT7 does not trigger any interrupts, even though gpcon_reg and 
extint_reg
seem to be configured properly.


Regards,
Sylwester
Kukjin Kim - April 8, 2013, 9:45 a.m.
Heiko Stübner wrote:
> 
> Am Sonntag, 7. April 2013, 22:22:50 schrieb Sylwester Nawrocki:
> > Due to NR_IRQS being incorrectly defined not all IRQ domains can
> > be registered for S3C2440. It causes following errors on a s3c2440
> > SoC based board:
> >
> > NR_IRQS:89
> > S3C2440: IRQ Support
> > irq: clearing pending status 00000002
> > ------------[ cut here ]------------
> > WARNING: at kernel/irq/irqdomain.c:234 0xc0056ed0()
> > ...
> > irq: could not create irq-domain
> > ...
> > s3c2410-wdt s3c2410-wdt: failed to install irq (-22)
> > s3c2410-wdt: probe of s3c2410-wdt failed with error -22
> > ...
> > samsung-uart s3c2440-uart.0: cannot get irq 74
> >
> > Fix this by increasing NR_IRQS to at least (IRQ_S3C2443_AC97 + 1)
> > if CPU_S3C2440 is selected, so the subintc IRQ domain gets properly
> > registered.
> >
> > Cc: Heiko Stübner <heiko@sntech.de>
> > Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
> > Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> 
> Thanks for testing the irq changes on another subarchitecture and fixing
> the
> glitch.
> 
> Acked-by: Heiko Stuebner <heiko@sntech.de>
> 
> 
Thanks for you guys' effort.

Applied.

- Kukjin

Patch

diff --git a/arch/arm/mach-s3c24xx/include/mach/irqs.h b/arch/arm/mach-s3c24xx/include/mach/irqs.h
index 43cada8..b6dd4cb 100644
--- a/arch/arm/mach-s3c24xx/include/mach/irqs.h
+++ b/arch/arm/mach-s3c24xx/include/mach/irqs.h
@@ -192,10 +192,8 @@ 
 
 #if defined(CONFIG_CPU_S3C2416)
 #define NR_IRQS (IRQ_S3C2416_I2S1 + 1)
-#elif defined(CONFIG_CPU_S3C2443)
-#define NR_IRQS (IRQ_S3C2443_AC97+1)
 #else
-#define NR_IRQS (IRQ_S3C2440_AC97+1)
+#define NR_IRQS (IRQ_S3C2443_AC97 + 1)
 #endif
 
 /* compatibility define. */