2021-05-16 10:23:09

by Alexandru Ardelean

[permalink] [raw]
Subject: [PATCH] gpio: gpio-spear-spics: remove platform_set_drvdata() + cleanup 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.

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.

This change isn't removing the 'DT probe failed' message, as some may find
it useful as a reason for the failed probe. But that can be part of another
change if needed.

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

diff --git a/drivers/gpio/gpio-spear-spics.c b/drivers/gpio/gpio-spear-spics.c
index 6eca531b7d96..49aac2bb8d2c 100644
--- a/drivers/gpio/gpio-spear-spics.c
+++ b/drivers/gpio/gpio-spear-spics.c
@@ -122,7 +122,6 @@ static int spics_gpio_probe(struct platform_device *pdev)
{
struct device_node *np = pdev->dev.of_node;
struct spear_spics *spics;
- int ret;

spics = devm_kzalloc(&pdev->dev, sizeof(*spics), GFP_KERNEL);
if (!spics)
@@ -148,8 +147,6 @@ static int spics_gpio_probe(struct platform_device *pdev)
&spics->cs_enable_shift))
goto err_dt_data;

- platform_set_drvdata(pdev, spics);
-
spics->chip.ngpio = NUM_OF_GPIO;
spics->chip.base = -1;
spics->chip.request = spics_request;
@@ -163,14 +160,7 @@ static int spics_gpio_probe(struct platform_device *pdev)
spics->chip.owner = THIS_MODULE;
spics->last_off = -1;

- ret = devm_gpiochip_add_data(&pdev->dev, &spics->chip, spics);
- if (ret) {
- dev_err(&pdev->dev, "unable to add gpio chip\n");
- return ret;
- }
-
- dev_info(&pdev->dev, "spear spics registered\n");
- return 0;
+ return devm_gpiochip_add_data(&pdev->dev, &spics->chip, spics);

err_dt_data:
dev_err(&pdev->dev, "DT probe failed\n");
--
2.31.1



2021-05-25 14:39:36

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH] gpio: gpio-spear-spics: remove platform_set_drvdata() + cleanup probe

On Sun, May 16, 2021 at 9:43 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.
>
> 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.
>
> This change isn't removing the 'DT probe failed' message, as some may find
> it useful as a reason for the failed probe. But that can be part of another
> change if needed.
>
> Signed-off-by: Alexandru Ardelean <[email protected]>
> ---
> drivers/gpio/gpio-spear-spics.c | 12 +-----------
> 1 file changed, 1 insertion(+), 11 deletions(-)
>
> diff --git a/drivers/gpio/gpio-spear-spics.c b/drivers/gpio/gpio-spear-spics.c
> index 6eca531b7d96..49aac2bb8d2c 100644
> --- a/drivers/gpio/gpio-spear-spics.c
> +++ b/drivers/gpio/gpio-spear-spics.c
> @@ -122,7 +122,6 @@ static int spics_gpio_probe(struct platform_device *pdev)
> {
> struct device_node *np = pdev->dev.of_node;
> struct spear_spics *spics;
> - int ret;
>
> spics = devm_kzalloc(&pdev->dev, sizeof(*spics), GFP_KERNEL);
> if (!spics)
> @@ -148,8 +147,6 @@ static int spics_gpio_probe(struct platform_device *pdev)
> &spics->cs_enable_shift))
> goto err_dt_data;
>
> - platform_set_drvdata(pdev, spics);
> -
> spics->chip.ngpio = NUM_OF_GPIO;
> spics->chip.base = -1;
> spics->chip.request = spics_request;
> @@ -163,14 +160,7 @@ static int spics_gpio_probe(struct platform_device *pdev)
> spics->chip.owner = THIS_MODULE;
> spics->last_off = -1;
>
> - ret = devm_gpiochip_add_data(&pdev->dev, &spics->chip, spics);
> - if (ret) {
> - dev_err(&pdev->dev, "unable to add gpio chip\n");
> - return ret;
> - }
> -
> - dev_info(&pdev->dev, "spear spics registered\n");
> - return 0;
> + return devm_gpiochip_add_data(&pdev->dev, &spics->chip, spics);
>
> err_dt_data:
> dev_err(&pdev->dev, "DT probe failed\n");
> --
> 2.31.1
>

Applied, thanks!

Bart