2021-07-07 14:07:42

by Alexandru Ardelean

[permalink] [raw]
Subject: [PATCH] gpio: viperboard: remove platform_set_drvdata() call in probe

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.

This change removes it.

Signed-off-by: Alexandru Ardelean <[email protected]>
---
drivers/gpio/gpio-viperboard.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/gpio/gpio-viperboard.c b/drivers/gpio/gpio-viperboard.c
index c301c1d56dd2..98ddd6590362 100644
--- a/drivers/gpio/gpio-viperboard.c
+++ b/drivers/gpio/gpio-viperboard.c
@@ -422,12 +422,8 @@ static int vprbrd_gpio_probe(struct platform_device *pdev)
vb_gpio->gpiob.direction_input = vprbrd_gpiob_direction_input;
vb_gpio->gpiob.direction_output = vprbrd_gpiob_direction_output;
ret = devm_gpiochip_add_data(&pdev->dev, &vb_gpio->gpiob, vb_gpio);
- if (ret < 0) {
+ if (ret < 0)
dev_err(vb_gpio->gpiob.parent, "could not add gpio b");
- return ret;
- }
-
- platform_set_drvdata(pdev, vb_gpio);

return ret;
}
--
2.31.1


2021-07-21 18:21:23

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH] gpio: viperboard: remove platform_set_drvdata() call in probe

On Wed, Jul 7, 2021 at 3:51 PM Alexandru Ardelean <[email protected]> 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.
>
> This change removes it.
>
> Signed-off-by: Alexandru Ardelean <[email protected]>
> ---
> drivers/gpio/gpio-viperboard.c | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/drivers/gpio/gpio-viperboard.c b/drivers/gpio/gpio-viperboard.c
> index c301c1d56dd2..98ddd6590362 100644
> --- a/drivers/gpio/gpio-viperboard.c
> +++ b/drivers/gpio/gpio-viperboard.c
> @@ -422,12 +422,8 @@ static int vprbrd_gpio_probe(struct platform_device *pdev)
> vb_gpio->gpiob.direction_input = vprbrd_gpiob_direction_input;
> vb_gpio->gpiob.direction_output = vprbrd_gpiob_direction_output;
> ret = devm_gpiochip_add_data(&pdev->dev, &vb_gpio->gpiob, vb_gpio);
> - if (ret < 0) {
> + if (ret < 0)
> dev_err(vb_gpio->gpiob.parent, "could not add gpio b");
> - return ret;
> - }
> -
> - platform_set_drvdata(pdev, vb_gpio);
>
> return ret;
> }
> --
> 2.31.1
>

The log is not really needed, we'll get an error message from gpiolib
core. Can you remove it while you're at it and just return the result
of devm_gpiochip_add_data()?

Bart

2021-07-21 18:47:14

by Alexandru Ardelean

[permalink] [raw]
Subject: Re: [PATCH] gpio: viperboard: remove platform_set_drvdata() call in probe

On Wed, 21 Jul 2021 at 16:16, Bartosz Golaszewski
<[email protected]> wrote:
>
> On Wed, Jul 7, 2021 at 3:51 PM Alexandru Ardelean <[email protected]> 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.
> >
> > This change removes it.
> >
> > Signed-off-by: Alexandru Ardelean <[email protected]>
> > ---
> > drivers/gpio/gpio-viperboard.c | 6 +-----
> > 1 file changed, 1 insertion(+), 5 deletions(-)
> >
> > diff --git a/drivers/gpio/gpio-viperboard.c b/drivers/gpio/gpio-viperboard.c
> > index c301c1d56dd2..98ddd6590362 100644
> > --- a/drivers/gpio/gpio-viperboard.c
> > +++ b/drivers/gpio/gpio-viperboard.c
> > @@ -422,12 +422,8 @@ static int vprbrd_gpio_probe(struct platform_device *pdev)
> > vb_gpio->gpiob.direction_input = vprbrd_gpiob_direction_input;
> > vb_gpio->gpiob.direction_output = vprbrd_gpiob_direction_output;
> > ret = devm_gpiochip_add_data(&pdev->dev, &vb_gpio->gpiob, vb_gpio);
> > - if (ret < 0) {
> > + if (ret < 0)
> > dev_err(vb_gpio->gpiob.parent, "could not add gpio b");
> > - return ret;
> > - }
> > -
> > - platform_set_drvdata(pdev, vb_gpio);
> >
> > return ret;
> > }
> > --
> > 2.31.1
> >
>
> The log is not really needed, we'll get an error message from gpiolib
> core. Can you remove it while you're at it and just return the result
> of devm_gpiochip_add_data()?

I thought about removing it, but in this driver there are 2
devm_gpiochip_add_data() calls.
It registers 2 GPIOchip instances.
Which is not so easy to see in this patch.

First one says "could not add gpio a" and this one says "could not add gpio b".
I hesitated to remove either of these.

In this case, it may be a little helpful to know which GPIOchip failed
to be registered.

But I don't mind removing them both.
Whatever you prefer. I'm undecided.

>
> Bart

2021-07-27 13:34:45

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH] gpio: viperboard: remove platform_set_drvdata() call in probe

On Wed, Jul 21, 2021 at 4:13 PM Alexandru Ardelean
<[email protected]> wrote:
>
> On Wed, 21 Jul 2021 at 16:16, Bartosz Golaszewski
> <[email protected]> wrote:
> >
> > On Wed, Jul 7, 2021 at 3:51 PM Alexandru Ardelean <[email protected]> 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.
> > >
> > > This change removes it.
> > >
> > > Signed-off-by: Alexandru Ardelean <[email protected]>
> > > ---
> > > drivers/gpio/gpio-viperboard.c | 6 +-----
> > > 1 file changed, 1 insertion(+), 5 deletions(-)
> > >
> > > diff --git a/drivers/gpio/gpio-viperboard.c b/drivers/gpio/gpio-viperboard.c
> > > index c301c1d56dd2..98ddd6590362 100644
> > > --- a/drivers/gpio/gpio-viperboard.c
> > > +++ b/drivers/gpio/gpio-viperboard.c
> > > @@ -422,12 +422,8 @@ static int vprbrd_gpio_probe(struct platform_device *pdev)
> > > vb_gpio->gpiob.direction_input = vprbrd_gpiob_direction_input;
> > > vb_gpio->gpiob.direction_output = vprbrd_gpiob_direction_output;
> > > ret = devm_gpiochip_add_data(&pdev->dev, &vb_gpio->gpiob, vb_gpio);
> > > - if (ret < 0) {
> > > + if (ret < 0)
> > > dev_err(vb_gpio->gpiob.parent, "could not add gpio b");
> > > - return ret;
> > > - }
> > > -
> > > - platform_set_drvdata(pdev, vb_gpio);
> > >
> > > return ret;
> > > }
> > > --
> > > 2.31.1
> > >
> >
> > The log is not really needed, we'll get an error message from gpiolib
> > core. Can you remove it while you're at it and just return the result
> > of devm_gpiochip_add_data()?
>
> I thought about removing it, but in this driver there are 2
> devm_gpiochip_add_data() calls.
> It registers 2 GPIOchip instances.
> Which is not so easy to see in this patch.
>
> First one says "could not add gpio a" and this one says "could not add gpio b".
> I hesitated to remove either of these.
>
> In this case, it may be a little helpful to know which GPIOchip failed
> to be registered.
>
> But I don't mind removing them both.
> Whatever you prefer. I'm undecided.
>

The core code will still use the label for the error message which
says 'a' or 'b' already. I think we can remove it.

2021-08-25 07:04:21

by Alexandru Ardelean

[permalink] [raw]
Subject: [PATCH v2] gpio: viperboard: remove platform_set_drvdata() call in probe

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.

This change removes it.
Also removing with this change is some logging about the failure to init
the gpio chip data. There are other logging methods to view that this
failed.

Signed-off-by: Alexandru Ardelean <[email protected]>
---

Changelog v1 -> v2:
* remove dev_err() prints
* [styling] added empty line before first devm_gpiochip_add_data()

drivers/gpio/gpio-viperboard.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/drivers/gpio/gpio-viperboard.c b/drivers/gpio/gpio-viperboard.c
index c301c1d56dd2..e55d28a8a66f 100644
--- a/drivers/gpio/gpio-viperboard.c
+++ b/drivers/gpio/gpio-viperboard.c
@@ -404,11 +404,10 @@ static int vprbrd_gpio_probe(struct platform_device *pdev)
vb_gpio->gpioa.get = vprbrd_gpioa_get;
vb_gpio->gpioa.direction_input = vprbrd_gpioa_direction_input;
vb_gpio->gpioa.direction_output = vprbrd_gpioa_direction_output;
+
ret = devm_gpiochip_add_data(&pdev->dev, &vb_gpio->gpioa, vb_gpio);
- if (ret < 0) {
- dev_err(vb_gpio->gpioa.parent, "could not add gpio a");
+ if (ret < 0)
return ret;
- }

/* registering gpio b */
vb_gpio->gpiob.label = "viperboard gpio b";
@@ -421,15 +420,8 @@ static int vprbrd_gpio_probe(struct platform_device *pdev)
vb_gpio->gpiob.get = vprbrd_gpiob_get;
vb_gpio->gpiob.direction_input = vprbrd_gpiob_direction_input;
vb_gpio->gpiob.direction_output = vprbrd_gpiob_direction_output;
- ret = devm_gpiochip_add_data(&pdev->dev, &vb_gpio->gpiob, vb_gpio);
- if (ret < 0) {
- dev_err(vb_gpio->gpiob.parent, "could not add gpio b");
- return ret;
- }
-
- platform_set_drvdata(pdev, vb_gpio);

- return ret;
+ return devm_gpiochip_add_data(&pdev->dev, &vb_gpio->gpiob, vb_gpio);
}

static struct platform_driver vprbrd_gpio_driver = {
--
2.31.1

2021-08-31 09:31:52

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH v2] gpio: viperboard: remove platform_set_drvdata() call in probe

On Wed, Aug 25, 2021 at 9:02 AM Alexandru Ardelean
<[email protected]> 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.
>
> This change removes it.
> Also removing with this change is some logging about the failure to init
> the gpio chip data. There are other logging methods to view that this
> failed.
>
> Signed-off-by: Alexandru Ardelean <[email protected]>
> ---
>
> Changelog v1 -> v2:
> * remove dev_err() prints
> * [styling] added empty line before first devm_gpiochip_add_data()
>
> drivers/gpio/gpio-viperboard.c | 14 +++-----------
> 1 file changed, 3 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpio/gpio-viperboard.c b/drivers/gpio/gpio-viperboard.c
> index c301c1d56dd2..e55d28a8a66f 100644
> --- a/drivers/gpio/gpio-viperboard.c
> +++ b/drivers/gpio/gpio-viperboard.c
> @@ -404,11 +404,10 @@ static int vprbrd_gpio_probe(struct platform_device *pdev)
> vb_gpio->gpioa.get = vprbrd_gpioa_get;
> vb_gpio->gpioa.direction_input = vprbrd_gpioa_direction_input;
> vb_gpio->gpioa.direction_output = vprbrd_gpioa_direction_output;
> +
> ret = devm_gpiochip_add_data(&pdev->dev, &vb_gpio->gpioa, vb_gpio);
> - if (ret < 0) {
> - dev_err(vb_gpio->gpioa.parent, "could not add gpio a");
> + if (ret < 0)
> return ret;
> - }
>
> /* registering gpio b */
> vb_gpio->gpiob.label = "viperboard gpio b";
> @@ -421,15 +420,8 @@ static int vprbrd_gpio_probe(struct platform_device *pdev)
> vb_gpio->gpiob.get = vprbrd_gpiob_get;
> vb_gpio->gpiob.direction_input = vprbrd_gpiob_direction_input;
> vb_gpio->gpiob.direction_output = vprbrd_gpiob_direction_output;
> - ret = devm_gpiochip_add_data(&pdev->dev, &vb_gpio->gpiob, vb_gpio);
> - if (ret < 0) {
> - dev_err(vb_gpio->gpiob.parent, "could not add gpio b");
> - return ret;
> - }
> -
> - platform_set_drvdata(pdev, vb_gpio);
>
> - return ret;
> + return devm_gpiochip_add_data(&pdev->dev, &vb_gpio->gpiob, vb_gpio);
> }
>
> static struct platform_driver vprbrd_gpio_driver = {
> --
> 2.31.1
>

Applied, thanks!

Bart