rtc: lpc32xx: simplify IRQ setup
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 9 Apr 2019 10:16:28 +0000 (12:16 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Fri, 12 Apr 2019 10:23:20 +0000 (12:23 +0200)
Move the optional IRQ setup to a single location.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-lpc32xx.c

index f9e899fc488922defab68e9e7f40b6b5d07c02c9..652b969158d49ddc22fa1853dc800b86dae31c1e 100644 (file)
@@ -199,21 +199,13 @@ static int lpc32xx_rtc_probe(struct platform_device *pdev)
 {
        struct resource *res;
        struct lpc32xx_rtc *rtc;
-       int rtcirq, err;
+       int err;
        u32 tmp;
 
-       rtcirq = platform_get_irq(pdev, 0);
-       if (rtcirq < 0) {
-               dev_warn(&pdev->dev, "Can't get interrupt resource\n");
-               rtcirq = -1;
-       }
-
        rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL);
        if (unlikely(!rtc))
                return -ENOMEM;
 
-       rtc->irq = rtcirq;
-
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        rtc->rtc_base = devm_ioremap_resource(&pdev->dev, res);
        if (IS_ERR(rtc->rtc_base))
@@ -269,7 +261,10 @@ static int lpc32xx_rtc_probe(struct platform_device *pdev)
         * IRQ is enabled after device registration in case alarm IRQ
         * is pending upon suspend exit.
         */
-       if (rtc->irq >= 0) {
+       rtc->irq = platform_get_irq(pdev, 0);
+       if (rtc->irq < 0) {
+               dev_warn(&pdev->dev, "Can't get interrupt resource\n");
+       } else {
                if (devm_request_irq(&pdev->dev, rtc->irq,
                                     lpc32xx_rtc_alarm_interrupt,
                                     0, pdev->name, rtc) < 0) {