drivers/rtc/rtc-omap.c: remove multiple device id checks
authorSekhar Nori <nsekhar@ti.com>
Fri, 6 Jun 2014 21:36:04 +0000 (14:36 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 6 Jun 2014 23:08:08 +0000 (16:08 -0700)
Remove multiple superfluous device id checks.  Since an id_table is
present in the driver probe() should never encounter an empty device id
entry.  In case of OF style match, of_match_device() returns an matching
entry.

For paranoia sake, check for device id entry once and fail probe() if none
is found.  This is much better than checking for it multiple times.

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-omap.c

index 26de5f8c2ae43379811f47cc39dd23d9ed40924d..70f51491809d752c0b1f7dfee9dcba2ee668f005 100644 (file)
@@ -352,6 +352,12 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
        if (of_id)
                pdev->id_entry = of_id->data;
 
+       id_entry = platform_get_device_id(pdev);
+       if (!id_entry) {
+               dev_err(&pdev->dev, "no matching device entry\n");
+               return -ENODEV;
+       }
+
        omap_rtc_timer = platform_get_irq(pdev, 0);
        if (omap_rtc_timer <= 0) {
                pr_debug("%s: no update irq?\n", pdev->name);
@@ -373,8 +379,7 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
        pm_runtime_enable(&pdev->dev);
        pm_runtime_get_sync(&pdev->dev);
 
-       id_entry = platform_get_device_id(pdev);
-       if (id_entry && (id_entry->driver_data & OMAP_RTC_HAS_KICKER)) {
+       if (id_entry->driver_data & OMAP_RTC_HAS_KICKER) {
                rtc_writel(KICK0_VALUE, OMAP_RTC_KICK0_REG);
                rtc_writel(KICK1_VALUE, OMAP_RTC_KICK1_REG);
        }
@@ -452,7 +457,7 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
        return 0;
 
 fail0:
-       if (id_entry && (id_entry->driver_data & OMAP_RTC_HAS_KICKER))
+       if (id_entry->driver_data & OMAP_RTC_HAS_KICKER)
                rtc_writel(0, OMAP_RTC_KICK0_REG);
        pm_runtime_put_sync(&pdev->dev);
        pm_runtime_disable(&pdev->dev);
@@ -469,7 +474,7 @@ static int __exit omap_rtc_remove(struct platform_device *pdev)
        /* leave rtc running, but disable irqs */
        rtc_write(0, OMAP_RTC_INTERRUPTS_REG);
 
-       if (id_entry && (id_entry->driver_data & OMAP_RTC_HAS_KICKER))
+       if (id_entry->driver_data & OMAP_RTC_HAS_KICKER)
                rtc_writel(0, OMAP_RTC_KICK0_REG);
 
        /* Disable the clock/module */