Skip to content

Commit

Permalink
drivers/rtc/rtc-omap.c: remove multiple device id checks
Browse files Browse the repository at this point in the history
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 <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Cc: Lokesh Vutla <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
nsekhar authored and torvalds committed Jun 6, 2014
1 parent c2a5755 commit 337b600
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions drivers/rtc/rtc-omap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
}
Expand Down Expand Up @@ -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);
Expand All @@ -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 */
Expand Down

0 comments on commit 337b600

Please sign in to comment.