watchdog: mpcore_wdt: Allow platform_get_irq() to fail
authorViresh Kumar <viresh.kumar@st.com>
Mon, 12 Mar 2012 04:22:00 +0000 (09:52 +0530)
committerWim Van Sebroeck <wim@iguana.be>
Tue, 27 Mar 2012 18:14:20 +0000 (20:14 +0200)
irq is not necessary for mpcore wdt. Don't return error if it is not passed. But
if it is passed, then request_irq must pass.

Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/mpcore_wdt.c

index 2d8c0a006b87df007d1cfaa17be68945f6a47416..7c741dc987bd5058904dc03502bf169512db4db2 100644 (file)
@@ -347,15 +347,15 @@ static int __devinit mpcore_wdt_probe(struct platform_device *pdev)
 
        wdt->dev = &pdev->dev;
        wdt->irq = platform_get_irq(pdev, 0);
-       if (wdt->irq < 0)
-               return -ENXIO;
-
-       ret = devm_request_irq(wdt->dev, wdt->irq, mpcore_wdt_fire, 0,
-                       "mpcore_wdt", wdt);
-       if (ret) {
-               dev_printk(KERN_ERR, wdt->dev,
-                       "cannot register IRQ%d for watchdog\n", wdt->irq);
-               return ret;
+       if (wdt->irq >= 0) {
+               ret = devm_request_irq(wdt->dev, wdt->irq, mpcore_wdt_fire, 0,
+                               "mpcore_wdt", wdt);
+               if (ret) {
+                       dev_printk(KERN_ERR, wdt->dev,
+                                       "cannot register IRQ%d for watchdog\n",
+                                       wdt->irq);
+                       return ret;
+               }
        }
 
        wdt->base = devm_ioremap(wdt->dev, res->start, resource_size(res));