Patchwork mtd: nand: use platform_{get,set}_drvdata()

login
register
mail settings
Submitter Jingoo Han
Date May 23, 2013, 10:31 a.m.
Message ID <002b01ce57a0$a29c4fe0$e7d4efa0$@samsung.com>
Download mbox | patch
Permalink /patch/245875/
State New
Headers show

Comments

Jingoo Han - May 23, 2013, 10:31 a.m.
Use the wrapper functions for getting and setting the driver data using
platform_device instead of using dev_{get,set}_drvdata() with &pdev->dev,
so we can directly pass a struct platform_device.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/mtd/nand/fsl_elbc_nand.c |    2 +-
 drivers/mtd/nand/fsl_ifc_nand.c  |    2 +-
 drivers/mtd/nand/fsl_upm.c       |    4 ++--
 drivers/mtd/nand/ndfc.c          |    4 ++--
 drivers/mtd/nand/socrates_nand.c |    6 ++----
 5 files changed, 8 insertions(+), 10 deletions(-)
Brian Norris - May 27, 2013, 7:11 p.m.
On Thu, May 23, 2013 at 3:31 AM, Jingoo Han <jg1.han@samsung.com> wrote:
> Use the wrapper functions for getting and setting the driver data using
> platform_device instead of using dev_{get,set}_drvdata() with &pdev->dev,
> so we can directly pass a struct platform_device.

This patch also removes a "dev_set_drvdata(dev, NULL)". Is this no
longer necessary during device removal? Otherwise:

Acked-by: Brian Norris <computersforpeace@gmail.com>

> Signed-off-by: Jingoo Han <jg1.han@samsung.com>
> ---
>  drivers/mtd/nand/fsl_elbc_nand.c |    2 +-
>  drivers/mtd/nand/fsl_ifc_nand.c  |    2 +-
>  drivers/mtd/nand/fsl_upm.c       |    4 ++--
>  drivers/mtd/nand/ndfc.c          |    4 ++--
>  drivers/mtd/nand/socrates_nand.c |    6 ++----
>  5 files changed, 8 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c
> index 2065720..44d2073 100644
> --- a/drivers/mtd/nand/fsl_elbc_nand.c
> +++ b/drivers/mtd/nand/fsl_elbc_nand.c
> @@ -915,7 +915,7 @@ err:
>  static int fsl_elbc_nand_remove(struct platform_device *pdev)
>  {
>         struct fsl_elbc_fcm_ctrl *elbc_fcm_ctrl = fsl_lbc_ctrl_dev->nand;
> -       struct fsl_elbc_mtd *priv = dev_get_drvdata(&pdev->dev);
> +       struct fsl_elbc_mtd *priv = platform_get_drvdata(pdev);
>
>         fsl_elbc_chip_remove(priv);
>
> diff --git a/drivers/mtd/nand/fsl_ifc_nand.c b/drivers/mtd/nand/fsl_ifc_nand.c
> index 317a771..f20986b 100644
> --- a/drivers/mtd/nand/fsl_ifc_nand.c
> +++ b/drivers/mtd/nand/fsl_ifc_nand.c
> @@ -1050,7 +1050,7 @@ err:
>
>  static int fsl_ifc_nand_remove(struct platform_device *dev)
>  {
> -       struct fsl_ifc_mtd *priv = dev_get_drvdata(&dev->dev);
> +       struct fsl_ifc_mtd *priv = platform_get_drvdata(dev);
>
>         fsl_ifc_chip_remove(priv);
>
> diff --git a/drivers/mtd/nand/fsl_upm.c b/drivers/mtd/nand/fsl_upm.c
> index 04e0725..e5b7597 100644
> --- a/drivers/mtd/nand/fsl_upm.c
> +++ b/drivers/mtd/nand/fsl_upm.c
> @@ -303,7 +303,7 @@ static int fun_probe(struct platform_device *ofdev)
>         if (ret)
>                 goto err2;
>
> -       dev_set_drvdata(&ofdev->dev, fun);
> +       platform_set_drvdata(ofdev, fun);
>
>         return 0;
>  err2:
> @@ -320,7 +320,7 @@ err1:
>
>  static int fun_remove(struct platform_device *ofdev)
>  {
> -       struct fsl_upm_nand *fun = dev_get_drvdata(&ofdev->dev);
> +       struct fsl_upm_nand *fun = platform_get_drvdata(ofdev);
>         int i;
>
>         nand_release(&fun->mtd);
> diff --git a/drivers/mtd/nand/ndfc.c b/drivers/mtd/nand/ndfc.c
> index 8e148f1..fa65c1b 100644
> --- a/drivers/mtd/nand/ndfc.c
> +++ b/drivers/mtd/nand/ndfc.c
> @@ -223,7 +223,7 @@ static int ndfc_probe(struct platform_device *ofdev)
>         spin_lock_init(&ndfc->ndfc_control.lock);
>         init_waitqueue_head(&ndfc->ndfc_control.wq);
>         ndfc->ofdev = ofdev;
> -       dev_set_drvdata(&ofdev->dev, ndfc);
> +       platform_set_drvdata(ofdev, ndfc);
>
>         ndfc->ndfcbase = of_iomap(ofdev->dev.of_node, 0);
>         if (!ndfc->ndfcbase) {
> @@ -258,7 +258,7 @@ static int ndfc_probe(struct platform_device *ofdev)
>
>  static int ndfc_remove(struct platform_device *ofdev)
>  {
> -       struct ndfc_controller *ndfc = dev_get_drvdata(&ofdev->dev);
> +       struct ndfc_controller *ndfc = platform_get_drvdata(ofdev);
>
>         nand_release(&ndfc->mtd);
>         kfree(ndfc->mtd.name);
> diff --git a/drivers/mtd/nand/socrates_nand.c b/drivers/mtd/nand/socrates_nand.c
> index 09dde7d..5090c8c 100644
> --- a/drivers/mtd/nand/socrates_nand.c
> +++ b/drivers/mtd/nand/socrates_nand.c
> @@ -190,7 +190,7 @@ static int socrates_nand_probe(struct platform_device *ofdev)
>         /* TODO: I have no idea what real delay is. */
>         nand_chip->chip_delay = 20;             /* 20us command delay time */
>
> -       dev_set_drvdata(&ofdev->dev, host);
> +       platform_set_drvdata(ofdev, host);
>
>         /* first scan to find the device and get the page size */
>         if (nand_scan_ident(mtd, 1, NULL)) {
> @@ -211,7 +211,6 @@ static int socrates_nand_probe(struct platform_device *ofdev)
>         nand_release(mtd);
>
>  out:
> -       dev_set_drvdata(&ofdev->dev, NULL);
>         iounmap(host->io_base);
>         kfree(host);
>         return res;
> @@ -222,12 +221,11 @@ out:
>   */
>  static int socrates_nand_remove(struct platform_device *ofdev)
>  {
> -       struct socrates_nand_host *host = dev_get_drvdata(&ofdev->dev);
> +       struct socrates_nand_host *host = platform_get_drvdata(ofdev);
>         struct mtd_info *mtd = &host->mtd;
>
>         nand_release(mtd);
>
> -       dev_set_drvdata(&ofdev->dev, NULL);
>         iounmap(host->io_base);
>         kfree(host);
>
> --
> 1.7.10.4
>
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
Jingoo Han - May 28, 2013, 1:01 a.m.
On Tuesday, May 28, 2013 4:12 AM, Brian Norris wrote:
> 
> On Thu, May 23, 2013 at 3:31 AM, Jingoo Han <jg1.han@samsung.com> wrote:
> > Use the wrapper functions for getting and setting the driver data using
> > platform_device instead of using dev_{get,set}_drvdata() with &pdev->dev,
> > so we can directly pass a struct platform_device.
> 
> This patch also removes a "dev_set_drvdata(dev, NULL)". Is this no
> longer necessary during device removal? Otherwise:

Hi Brian,

The "dev_set_drvdata(dev, NULL)" is unnecessary, because
the driver core clears the driver data to NULL after device_release
or on probe failure.

Best regards,
Jingoo Han

> 
> Acked-by: Brian Norris <computersforpeace@gmail.com>
> 
> > Signed-off-by: Jingoo Han <jg1.han@samsung.com>
> > ---

Patch

diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c
index 2065720..44d2073 100644
--- a/drivers/mtd/nand/fsl_elbc_nand.c
+++ b/drivers/mtd/nand/fsl_elbc_nand.c
@@ -915,7 +915,7 @@  err:
 static int fsl_elbc_nand_remove(struct platform_device *pdev)
 {
 	struct fsl_elbc_fcm_ctrl *elbc_fcm_ctrl = fsl_lbc_ctrl_dev->nand;
-	struct fsl_elbc_mtd *priv = dev_get_drvdata(&pdev->dev);
+	struct fsl_elbc_mtd *priv = platform_get_drvdata(pdev);
 
 	fsl_elbc_chip_remove(priv);
 
diff --git a/drivers/mtd/nand/fsl_ifc_nand.c b/drivers/mtd/nand/fsl_ifc_nand.c
index 317a771..f20986b 100644
--- a/drivers/mtd/nand/fsl_ifc_nand.c
+++ b/drivers/mtd/nand/fsl_ifc_nand.c
@@ -1050,7 +1050,7 @@  err:
 
 static int fsl_ifc_nand_remove(struct platform_device *dev)
 {
-	struct fsl_ifc_mtd *priv = dev_get_drvdata(&dev->dev);
+	struct fsl_ifc_mtd *priv = platform_get_drvdata(dev);
 
 	fsl_ifc_chip_remove(priv);
 
diff --git a/drivers/mtd/nand/fsl_upm.c b/drivers/mtd/nand/fsl_upm.c
index 04e0725..e5b7597 100644
--- a/drivers/mtd/nand/fsl_upm.c
+++ b/drivers/mtd/nand/fsl_upm.c
@@ -303,7 +303,7 @@  static int fun_probe(struct platform_device *ofdev)
 	if (ret)
 		goto err2;
 
-	dev_set_drvdata(&ofdev->dev, fun);
+	platform_set_drvdata(ofdev, fun);
 
 	return 0;
 err2:
@@ -320,7 +320,7 @@  err1:
 
 static int fun_remove(struct platform_device *ofdev)
 {
-	struct fsl_upm_nand *fun = dev_get_drvdata(&ofdev->dev);
+	struct fsl_upm_nand *fun = platform_get_drvdata(ofdev);
 	int i;
 
 	nand_release(&fun->mtd);
diff --git a/drivers/mtd/nand/ndfc.c b/drivers/mtd/nand/ndfc.c
index 8e148f1..fa65c1b 100644
--- a/drivers/mtd/nand/ndfc.c
+++ b/drivers/mtd/nand/ndfc.c
@@ -223,7 +223,7 @@  static int ndfc_probe(struct platform_device *ofdev)
 	spin_lock_init(&ndfc->ndfc_control.lock);
 	init_waitqueue_head(&ndfc->ndfc_control.wq);
 	ndfc->ofdev = ofdev;
-	dev_set_drvdata(&ofdev->dev, ndfc);
+	platform_set_drvdata(ofdev, ndfc);
 
 	ndfc->ndfcbase = of_iomap(ofdev->dev.of_node, 0);
 	if (!ndfc->ndfcbase) {
@@ -258,7 +258,7 @@  static int ndfc_probe(struct platform_device *ofdev)
 
 static int ndfc_remove(struct platform_device *ofdev)
 {
-	struct ndfc_controller *ndfc = dev_get_drvdata(&ofdev->dev);
+	struct ndfc_controller *ndfc = platform_get_drvdata(ofdev);
 
 	nand_release(&ndfc->mtd);
 	kfree(ndfc->mtd.name);
diff --git a/drivers/mtd/nand/socrates_nand.c b/drivers/mtd/nand/socrates_nand.c
index 09dde7d..5090c8c 100644
--- a/drivers/mtd/nand/socrates_nand.c
+++ b/drivers/mtd/nand/socrates_nand.c
@@ -190,7 +190,7 @@  static int socrates_nand_probe(struct platform_device *ofdev)
 	/* TODO: I have no idea what real delay is. */
 	nand_chip->chip_delay = 20;		/* 20us command delay time */
 
-	dev_set_drvdata(&ofdev->dev, host);
+	platform_set_drvdata(ofdev, host);
 
 	/* first scan to find the device and get the page size */
 	if (nand_scan_ident(mtd, 1, NULL)) {
@@ -211,7 +211,6 @@  static int socrates_nand_probe(struct platform_device *ofdev)
 	nand_release(mtd);
 
 out:
-	dev_set_drvdata(&ofdev->dev, NULL);
 	iounmap(host->io_base);
 	kfree(host);
 	return res;
@@ -222,12 +221,11 @@  out:
  */
 static int socrates_nand_remove(struct platform_device *ofdev)
 {
-	struct socrates_nand_host *host = dev_get_drvdata(&ofdev->dev);
+	struct socrates_nand_host *host = platform_get_drvdata(ofdev);
 	struct mtd_info *mtd = &host->mtd;
 
 	nand_release(mtd);
 
-	dev_set_drvdata(&ofdev->dev, NULL);
 	iounmap(host->io_base);
 	kfree(host);