All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] gpio: gpio-tps68470: remove platform_set_drvdata() + cleanup probe
@ 2021-05-14  9:41 Alexandru Ardelean
  2021-05-21 13:52 ` Bartosz Golaszewski
  0 siblings, 1 reply; 3+ messages in thread
From: Alexandru Ardelean @ 2021-05-14  9:41 UTC (permalink / raw)
  To: linux-gpio, linux-kernel; +Cc: linus.walleij, bgolaszewski, Alexandru Ardelean

The platform_set_drvdata() call is only useful if we need to retrieve back
the private information.
Since the driver doesn't do that, it's not useful to have it.

If this is removed, we can also just do a direct return on
devm_gpiochip_add_data(). We don't need to print that this call failed as
there are other ways to log/see this during probe.

Signed-off-by: Alexandru Ardelean <aardelean@deviqon.com>
---
 drivers/gpio/gpio-tps68470.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpio/gpio-tps68470.c b/drivers/gpio/gpio-tps68470.c
index f7f5f770e0fb..423b7bc30ae8 100644
--- a/drivers/gpio/gpio-tps68470.c
+++ b/drivers/gpio/gpio-tps68470.c
@@ -125,7 +125,6 @@ static const char *tps68470_names[TPS68470_N_GPIO] = {
 static int tps68470_gpio_probe(struct platform_device *pdev)
 {
 	struct tps68470_gpio_data *tps68470_gpio;
-	int ret;
 
 	tps68470_gpio = devm_kzalloc(&pdev->dev, sizeof(*tps68470_gpio),
 				     GFP_KERNEL);
@@ -146,16 +145,7 @@ static int tps68470_gpio_probe(struct platform_device *pdev)
 	tps68470_gpio->gc.base = -1;
 	tps68470_gpio->gc.parent = &pdev->dev;
 
-	ret = devm_gpiochip_add_data(&pdev->dev, &tps68470_gpio->gc,
-				     tps68470_gpio);
-	if (ret < 0) {
-		dev_err(&pdev->dev, "Failed to register gpio_chip: %d\n", ret);
-		return ret;
-	}
-
-	platform_set_drvdata(pdev, tps68470_gpio);
-
-	return ret;
+	return devm_gpiochip_add_data(&pdev->dev, &tps68470_gpio->gc, tps68470_gpio);
 }
 
 static struct platform_driver tps68470_gpio_driver = {
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] gpio: gpio-tps68470: remove platform_set_drvdata() + cleanup probe
  2021-05-14  9:41 [PATCH] gpio: gpio-tps68470: remove platform_set_drvdata() + cleanup probe Alexandru Ardelean
@ 2021-05-21 13:52 ` Bartosz Golaszewski
  2021-05-21 17:46   ` Alexandru Ardelean
  0 siblings, 1 reply; 3+ messages in thread
From: Bartosz Golaszewski @ 2021-05-21 13:52 UTC (permalink / raw)
  To: Alexandru Ardelean; +Cc: linux-gpio, LKML, Linus Walleij

On Fri, May 14, 2021 at 11:41 AM Alexandru Ardelean
<aardelean@deviqon.com> wrote:
>
> The platform_set_drvdata() call is only useful if we need to retrieve back
> the private information.
> Since the driver doesn't do that, it's not useful to have it.
>
> If this is removed, we can also just do a direct return on
> devm_gpiochip_add_data(). We don't need to print that this call failed as
> there are other ways to log/see this during probe.
>
> Signed-off-by: Alexandru Ardelean <aardelean@deviqon.com>
> ---
>  drivers/gpio/gpio-tps68470.c | 12 +-----------
>  1 file changed, 1 insertion(+), 11 deletions(-)
>
> diff --git a/drivers/gpio/gpio-tps68470.c b/drivers/gpio/gpio-tps68470.c
> index f7f5f770e0fb..423b7bc30ae8 100644
> --- a/drivers/gpio/gpio-tps68470.c
> +++ b/drivers/gpio/gpio-tps68470.c
> @@ -125,7 +125,6 @@ static const char *tps68470_names[TPS68470_N_GPIO] = {
>  static int tps68470_gpio_probe(struct platform_device *pdev)
>  {
>         struct tps68470_gpio_data *tps68470_gpio;
> -       int ret;
>
>         tps68470_gpio = devm_kzalloc(&pdev->dev, sizeof(*tps68470_gpio),
>                                      GFP_KERNEL);
> @@ -146,16 +145,7 @@ static int tps68470_gpio_probe(struct platform_device *pdev)
>         tps68470_gpio->gc.base = -1;
>         tps68470_gpio->gc.parent = &pdev->dev;
>
> -       ret = devm_gpiochip_add_data(&pdev->dev, &tps68470_gpio->gc,
> -                                    tps68470_gpio);
> -       if (ret < 0) {
> -               dev_err(&pdev->dev, "Failed to register gpio_chip: %d\n", ret);
> -               return ret;
> -       }
> -
> -       platform_set_drvdata(pdev, tps68470_gpio);
> -
> -       return ret;
> +       return devm_gpiochip_add_data(&pdev->dev, &tps68470_gpio->gc, tps68470_gpio);
>  }
>
>  static struct platform_driver tps68470_gpio_driver = {
> --
> 2.31.1
>

Applied. I got confused by the dev_get_drvdata() call earlier in probe
but this one's for the parent.

Thanks,
Bart

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] gpio: gpio-tps68470: remove platform_set_drvdata() + cleanup probe
  2021-05-21 13:52 ` Bartosz Golaszewski
@ 2021-05-21 17:46   ` Alexandru Ardelean
  0 siblings, 0 replies; 3+ messages in thread
From: Alexandru Ardelean @ 2021-05-21 17:46 UTC (permalink / raw)
  To: Bartosz Golaszewski; +Cc: linux-gpio, LKML, Linus Walleij

On Fri, 21 May 2021 at 16:52, Bartosz Golaszewski
<bgolaszewski@baylibre.com> wrote:
>
> On Fri, May 14, 2021 at 11:41 AM Alexandru Ardelean
> <aardelean@deviqon.com> wrote:
> >
> > The platform_set_drvdata() call is only useful if we need to retrieve back
> > the private information.
> > Since the driver doesn't do that, it's not useful to have it.
> >
> > If this is removed, we can also just do a direct return on
> > devm_gpiochip_add_data(). We don't need to print that this call failed as
> > there are other ways to log/see this during probe.
> >
> > Signed-off-by: Alexandru Ardelean <aardelean@deviqon.com>
> > ---
> >  drivers/gpio/gpio-tps68470.c | 12 +-----------
> >  1 file changed, 1 insertion(+), 11 deletions(-)
> >
> > diff --git a/drivers/gpio/gpio-tps68470.c b/drivers/gpio/gpio-tps68470.c
> > index f7f5f770e0fb..423b7bc30ae8 100644
> > --- a/drivers/gpio/gpio-tps68470.c
> > +++ b/drivers/gpio/gpio-tps68470.c
> > @@ -125,7 +125,6 @@ static const char *tps68470_names[TPS68470_N_GPIO] = {
> >  static int tps68470_gpio_probe(struct platform_device *pdev)
> >  {
> >         struct tps68470_gpio_data *tps68470_gpio;
> > -       int ret;
> >
> >         tps68470_gpio = devm_kzalloc(&pdev->dev, sizeof(*tps68470_gpio),
> >                                      GFP_KERNEL);
> > @@ -146,16 +145,7 @@ static int tps68470_gpio_probe(struct platform_device *pdev)
> >         tps68470_gpio->gc.base = -1;
> >         tps68470_gpio->gc.parent = &pdev->dev;
> >
> > -       ret = devm_gpiochip_add_data(&pdev->dev, &tps68470_gpio->gc,
> > -                                    tps68470_gpio);
> > -       if (ret < 0) {
> > -               dev_err(&pdev->dev, "Failed to register gpio_chip: %d\n", ret);
> > -               return ret;
> > -       }
> > -
> > -       platform_set_drvdata(pdev, tps68470_gpio);
> > -
> > -       return ret;
> > +       return devm_gpiochip_add_data(&pdev->dev, &tps68470_gpio->gc, tps68470_gpio);
> >  }
> >
> >  static struct platform_driver tps68470_gpio_driver = {
> > --
> > 2.31.1
> >
>
> Applied. I got confused by the dev_get_drvdata() call earlier in probe
> but this one's for the parent.

Yes.
I initially got confused as well about it.

This pattern seems to be similar in other drivers as well; usually MFD devices.

>
> Thanks,
> Bart

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-05-21 17:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-14  9:41 [PATCH] gpio: gpio-tps68470: remove platform_set_drvdata() + cleanup probe Alexandru Ardelean
2021-05-21 13:52 ` Bartosz Golaszewski
2021-05-21 17:46   ` Alexandru Ardelean

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.