OSDN Git Service

mtd: gpmi-nand: Convert to module_platform_driver()
authorFabio Estevam <fabio.estevam@freescale.com>
Wed, 5 Sep 2012 14:35:24 +0000 (11:35 -0300)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Sat, 29 Sep 2012 14:43:01 +0000 (15:43 +0100)
Using module_platform_driver() makes the code smaller and cleaner.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/gpmi-nand/gpmi-nand.c

index 9493507..5999b15 100644 (file)
@@ -1651,6 +1651,8 @@ static int __devinit gpmi_nand_probe(struct platform_device *pdev)
        if (ret)
                goto exit_nfc_init;
 
+       dev_info(this->dev, "driver registered.\n");
+
        return 0;
 
 exit_nfc_init:
@@ -1658,10 +1660,12 @@ exit_nfc_init:
 exit_acquire_resources:
        platform_set_drvdata(pdev, NULL);
        kfree(this);
+       dev_err(this->dev, "driver registration failed: %d\n", ret);
+
        return ret;
 }
 
-static int __exit gpmi_nand_remove(struct platform_device *pdev)
+static int __devexit gpmi_nand_remove(struct platform_device *pdev)
 {
        struct gpmi_nand_data *this = platform_get_drvdata(pdev);
 
@@ -1678,29 +1682,10 @@ static struct platform_driver gpmi_nand_driver = {
                .of_match_table = gpmi_nand_id_table,
        },
        .probe   = gpmi_nand_probe,
-       .remove  = __exit_p(gpmi_nand_remove),
+       .remove  = __devexit_p(gpmi_nand_remove),
        .id_table = gpmi_ids,
 };
-
-static int __init gpmi_nand_init(void)
-{
-       int err;
-
-       err = platform_driver_register(&gpmi_nand_driver);
-       if (err == 0)
-               pr_info("driver registered.\n");
-       else
-               pr_err("driver registration failed.\n");
-       return err;
-}
-
-static void __exit gpmi_nand_exit(void)
-{
-       platform_driver_unregister(&gpmi_nand_driver);
-}
-
-module_init(gpmi_nand_init);
-module_exit(gpmi_nand_exit);
+module_platform_driver(gpmi_nand_driver);
 
 MODULE_AUTHOR("Freescale Semiconductor, Inc.");
 MODULE_DESCRIPTION("i.MX GPMI NAND Flash Controller Driver");