diff options
Diffstat (limited to 'drivers/rtc/rtc-ds1553.c')
-rw-r--r-- | drivers/rtc/rtc-ds1553.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/rtc/rtc-ds1553.c b/drivers/rtc/rtc-ds1553.c index 25ce0621ade9..8c6c952e90b1 100644 --- a/drivers/rtc/rtc-ds1553.c +++ b/drivers/rtc/rtc-ds1553.c | |||
@@ -326,15 +326,14 @@ static int ds1553_rtc_probe(struct platform_device *pdev) | |||
326 | } | 326 | } |
327 | } | 327 | } |
328 | 328 | ||
329 | rtc = rtc_device_register(pdev->name, &pdev->dev, | 329 | rtc = devm_rtc_device_register(&pdev->dev, pdev->name, |
330 | &ds1553_rtc_ops, THIS_MODULE); | 330 | &ds1553_rtc_ops, THIS_MODULE); |
331 | if (IS_ERR(rtc)) | 331 | if (IS_ERR(rtc)) |
332 | return PTR_ERR(rtc); | 332 | return PTR_ERR(rtc); |
333 | pdata->rtc = rtc; | 333 | pdata->rtc = rtc; |
334 | 334 | ||
335 | ret = sysfs_create_bin_file(&pdev->dev.kobj, &ds1553_nvram_attr); | 335 | ret = sysfs_create_bin_file(&pdev->dev.kobj, &ds1553_nvram_attr); |
336 | if (ret) | 336 | |
337 | rtc_device_unregister(rtc); | ||
338 | return ret; | 337 | return ret; |
339 | } | 338 | } |
340 | 339 | ||
@@ -343,7 +342,6 @@ static int ds1553_rtc_remove(struct platform_device *pdev) | |||
343 | struct rtc_plat_data *pdata = platform_get_drvdata(pdev); | 342 | struct rtc_plat_data *pdata = platform_get_drvdata(pdev); |
344 | 343 | ||
345 | sysfs_remove_bin_file(&pdev->dev.kobj, &ds1553_nvram_attr); | 344 | sysfs_remove_bin_file(&pdev->dev.kobj, &ds1553_nvram_attr); |
346 | rtc_device_unregister(pdata->rtc); | ||
347 | if (pdata->irq > 0) | 345 | if (pdata->irq > 0) |
348 | writeb(0, pdata->ioaddr + RTC_INTERRUPTS); | 346 | writeb(0, pdata->ioaddr + RTC_INTERRUPTS); |
349 | return 0; | 347 | return 0; |