From: Felipe Balbi <[email protected]>

trivial patch converting a device_driver into
platform_driver.

Signed-off-by: Felipe Balbi <[email protected]>
---
 drivers/cbus/retu-wdt.c |   77 +++++++++++++++++++++++++----------------------
 1 files changed, 41 insertions(+), 36 deletions(-)

diff --git a/drivers/cbus/retu-wdt.c b/drivers/cbus/retu-wdt.c
index 763b34f..53bec32 100644
--- a/drivers/cbus/retu-wdt.c
+++ b/drivers/cbus/retu-wdt.c
@@ -252,34 +252,38 @@ static const struct file_operations retu_wdt_fops = {
 
 
/*----------------------------------------------------------------------------*/
 
-static int __devinit retu_wdt_probe(struct device *dev)
+static int __devinit retu_wdt_probe(struct platform_device *pdev)
 {
        struct retu_wdt_dev *wdev;
        int ret;
 
+       ret = retu_get_status();
+       if (!ret)
+               return -ENODEV;
+
        wdev = kzalloc(sizeof(struct retu_wdt_dev), GFP_KERNEL);
        if (!wdev)
                return -ENOMEM;
 
        wdev->users = 0;
 
-       ret = device_create_file(dev, &dev_attr_period);
+       ret = device_create_file(&pdev->dev, &dev_attr_period);
        if (ret) {
                printk(KERN_ERR "retu_wdt_probe: Error creating "
                                        "sys device file: period\n");
                goto free1;
        }
 
-       ret = device_create_file(dev, &dev_attr_counter);
+       ret = device_create_file(&pdev->dev, &dev_attr_counter);
        if (ret) {
                printk(KERN_ERR "retu_wdt_probe: Error creating "
                                        "sys device file: counter\n");
                goto free2;
        }
 
-       dev_set_drvdata(dev, wdev);
+       platform_set_drvdata(pdev, wdev);
        retu_wdt = wdev;
-       wdev->retu_wdt_miscdev.parent = dev;
+       wdev->retu_wdt_miscdev.parent = &pdev->dev;
        wdev->retu_wdt_miscdev.minor = WATCHDOG_MINOR;
        wdev->retu_wdt_miscdev.name = "watchdog";
        wdev->retu_wdt_miscdev.fops = &retu_wdt_fops;
@@ -290,68 +294,69 @@ static int __devinit retu_wdt_probe(struct device *dev)
 
        setup_timer(&wdev->ping_timer, retu_wdt_set_ping_timer, 1);
 
+       /* passed as module parameter? */
+       ret = retu_modify_counter(counter_param);
+       if (ret == -EINVAL) {
+               ret = retu_modify_counter(RETU_WDT_DEFAULT_TIMER);
+               printk(KERN_INFO
+                      "retu_wdt_init: Intializing to default value\n");
+       }
+
        /* Kick the watchdog for kernel booting to finish */
        retu_modify_counter(RETU_WDT_MAX_TIMER);
 
+       ret = retu_wdt_ping();
+       if (ret < 0) {
+               printk(KERN_INFO "retu_wdt_init: Failed to ping\n");
+               goto free4;
+       }
+
        return 0;
 
+free4:
+       misc_deregister(&wdev->retu_wdt_miscdev);
+
 free3:
-       device_remove_file(dev, &dev_attr_counter);
+       device_remove_file(&pdev->dev, &dev_attr_counter);
 
 free2:
-       device_remove_file(dev, &dev_attr_period);
+       device_remove_file(&pdev->dev, &dev_attr_period);
+
 free1:
        kfree(wdev);
 
        return ret;
 }
 
-static int __devexit retu_wdt_remove(struct device *dev)
+static int __devexit retu_wdt_remove(struct platform_device *pdev)
 {
        struct retu_wdt_dev *wdev;
 
-       wdev = dev_get_drvdata(dev);
+       wdev = platform_get_drvdata(pdev);
        misc_deregister(&(wdev->retu_wdt_miscdev));
-       device_remove_file(dev, &dev_attr_period);
-       device_remove_file(dev, &dev_attr_counter);
+       device_remove_file(&pdev->dev, &dev_attr_period);
+       device_remove_file(&pdev->dev, &dev_attr_counter);
        kfree(wdev);
 
        return 0;
 }
 
-static struct device_driver retu_wdt_driver = {
-       .name = "retu-wdt",
-       .bus = &platform_bus_type,
-       .probe = retu_wdt_probe,
-       .remove = __devexit_p(retu_wdt_remove),
+static struct platform_driver retu_wdt_driver = {
+       .probe          = retu_wdt_probe,
+       .remove         = __devexit_p(retu_wdt_remove),
+       .driver         = {
+               .name   = "retu-wdt",
+       },
 };
 
 static int __init retu_wdt_init(void)
 {
-       int ret;
-
-       ret = retu_get_status();
-       if (!ret)
-               return -ENODEV;
-
-       ret = driver_register(&retu_wdt_driver);
-       if (ret)
-               return ret;
-
-       /* passed as module parameter? */
-       ret = retu_modify_counter(counter_param);
-       if (ret == -EINVAL) {
-               ret = retu_modify_counter(RETU_WDT_DEFAULT_TIMER);
-               printk(KERN_INFO
-                      "retu_wdt_init: Intializing to default value\n");
-       }
-
-       return retu_wdt_ping();
+       return platform_driver_register(&retu_wdt_driver);
 }
 
 static void __exit retu_wdt_exit(void)
 {
-       driver_unregister(&retu_wdt_driver);
+       platform_driver_unregister(&retu_wdt_driver);
 }
 
 module_init(retu_wdt_init);
-- 
1.7.0.rc0.33.g7c3932

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to