]> err.no Git - linux-2.6/blobdiff - drivers/char/vr41xx_rtc.c
[PATCH] rioboot: post-Lindent
[linux-2.6] / drivers / char / vr41xx_rtc.c
index 435b30748e231807df780458e47cac52eb700e64..b109d9a502d63dfde26ba6c04a2083ed2bdd4b3d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for NEC VR4100 series  Real Time Clock unit.
  *
- *  Copyright (C) 2003-2005  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *  Copyright (C) 2003-2005  Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -37,7 +37,7 @@
 #include <asm/uaccess.h>
 #include <asm/vr41xx/vr41xx.h>
 
-MODULE_AUTHOR("Yoichi Yuasa <yuasa@hh.iij4u.or.jp>");
+MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>");
 MODULE_DESCRIPTION("NEC VR4100 series RTC driver");
 MODULE_LICENSE("GPL");
 
@@ -127,8 +127,6 @@ struct resource rtc_resource[2] = {
                .flags  = IORESOURCE_MEM,       },
 };
 
-#define RTC_NUM_RESOURCES      sizeof(rtc_resource) / sizeof(struct resource)
-
 static inline unsigned long read_elapsed_second(void)
 {
        unsigned long first_low, first_mid, first_high;
@@ -560,7 +558,7 @@ static struct miscdevice rtc_miscdevice = {
        .fops   = &rtc_fops,
 };
 
-static int rtc_probe(struct platform_device *pdev)
+static int __devinit rtc_probe(struct platform_device *pdev)
 {
        unsigned int irq;
        int retval;
@@ -633,7 +631,7 @@ static int rtc_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int rtc_remove(struct platform_device *dev)
+static int __devexit rtc_remove(struct platform_device *dev)
 {
        int retval;
 
@@ -655,13 +653,14 @@ static struct platform_device *rtc_platform_device;
 
 static struct platform_driver rtc_device_driver = {
        .probe          = rtc_probe,
-       .remove         = rtc_remove,
+       .remove         = __devexit_p(rtc_remove),
        .driver         = {
                .name   = rtc_name,
+               .owner  = THIS_MODULE,
        },
 };
 
-static int __devinit vr41xx_rtc_init(void)
+static int __init vr41xx_rtc_init(void)
 {
        int retval;
 
@@ -686,9 +685,20 @@ static int __devinit vr41xx_rtc_init(void)
                break;
        }
 
-       rtc_platform_device = platform_device_register_simple("RTC", -1, rtc_resource, RTC_NUM_RESOURCES);
-       if (IS_ERR(rtc_platform_device))
-               return PTR_ERR(rtc_platform_device);
+       rtc_platform_device = platform_device_alloc("RTC", -1);
+       if (!rtc_platform_device)
+               return -ENOMEM;
+
+       retval = platform_device_add_resources(rtc_platform_device,
+                               rtc_resource, ARRAY_SIZE(rtc_resource));
+
+       if (retval == 0)
+               retval = platform_device_add(rtc_platform_device);
+
+       if (retval < 0) {
+               platform_device_put(rtc_platform_device);
+               return retval;
+       }
 
        retval = platform_driver_register(&rtc_device_driver);
        if (retval < 0)
@@ -697,10 +707,9 @@ static int __devinit vr41xx_rtc_init(void)
        return retval;
 }
 
-static void __devexit vr41xx_rtc_exit(void)
+static void __exit vr41xx_rtc_exit(void)
 {
        platform_driver_unregister(&rtc_device_driver);
-
        platform_device_unregister(rtc_platform_device);
 }