rtc: lpc32xx: remove irq > NR_IRQS check from probe()
authorVladimir Zapolskiy <vz@mleia.com>
Wed, 2 Dec 2015 06:10:28 +0000 (08:10 +0200)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Mon, 11 Jan 2016 19:19:59 +0000 (20:19 +0100)
If the driver is used on an ARM platform with SPARSE_IRQ defined,
semantics of NR_IRQS is different (minimal value of virtual irqs)
and by default it is set to 16, see arch/arm/include/asm/irq.h.

This value may be less than the actual number of virtual irqs, which
may break the driver initialization. The check removal allows to use
the driver on such a platform, and, if irq controller driver works
correctly, the check is not needed on legacy platforms.

Fixes a runtime problem:

  rtc-lpc32xx 40024000.rtc: Can't get interrupt resource

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
drivers/rtc/rtc-lpc32xx.c

index f923f73..887871c 100644 (file)
@@ -205,7 +205,7 @@ static int lpc32xx_rtc_probe(struct platform_device *pdev)
        u32 tmp;
 
        rtcirq = platform_get_irq(pdev, 0);
-       if (rtcirq < 0 || rtcirq >= NR_IRQS) {
+       if (rtcirq < 0) {
                dev_warn(&pdev->dev, "Can't get interrupt resource\n");
                rtcirq = -1;
        }