]> Pileus Git - ~andy/linux/blobdiff - drivers/rtc/rtc-starfire.c
drivers/rtc/rtc-pcf2123.c: fix error return code in pcf2123_probe()
[~andy/linux] / drivers / rtc / rtc-starfire.c
index 5be98bfd7ed3ec6149b89bd6df1a268d52748776..987b5ec0ae56b76fbfa727a2ece3c120e5bdb58c 100644 (file)
@@ -39,8 +39,10 @@ static const struct rtc_class_ops starfire_rtc_ops = {
 
 static int __init starfire_rtc_probe(struct platform_device *pdev)
 {
-       struct rtc_device *rtc = rtc_device_register("starfire", &pdev->dev,
-                                    &starfire_rtc_ops, THIS_MODULE);
+       struct rtc_device *rtc;
+
+       rtc = devm_rtc_device_register(&pdev->dev, "starfire",
+                               &starfire_rtc_ops, THIS_MODULE);
        if (IS_ERR(rtc))
                return PTR_ERR(rtc);
 
@@ -51,10 +53,6 @@ static int __init starfire_rtc_probe(struct platform_device *pdev)
 
 static int __exit starfire_rtc_remove(struct platform_device *pdev)
 {
-       struct rtc_device *rtc = platform_get_drvdata(pdev);
-
-       rtc_device_unregister(rtc);
-
        return 0;
 }
 
@@ -66,15 +64,4 @@ static struct platform_driver starfire_rtc_driver = {
        .remove         = __exit_p(starfire_rtc_remove),
 };
 
-static int __init starfire_rtc_init(void)
-{
-       return platform_driver_probe(&starfire_rtc_driver, starfire_rtc_probe);
-}
-
-static void __exit starfire_rtc_exit(void)
-{
-       platform_driver_unregister(&starfire_rtc_driver);
-}
-
-module_init(starfire_rtc_init);
-module_exit(starfire_rtc_exit);
+module_platform_driver_probe(starfire_rtc_driver, starfire_rtc_probe);