diff mbox series

gpiolib: do not print err message for EPROBE_DEFER

Message ID 20201118142917.25752-1-grygorii.strashko@ti.com
State New
Headers show
Series gpiolib: do not print err message for EPROBE_DEFER | expand

Commit Message

Grygorii Strashko Nov. 18, 2020, 2:29 p.m. UTC
The gpiochip may have dependencies from pinmux and so got deferred. Now it
will print error message every time -EPROBE_DEFER is returned which is
unnecessary:

"gpiochip_add_data_with_key: GPIOs 0..31 (gpio-0-31) failed to register, -517"

Hence, do suppress error message for -EPROBE_DEFER case.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
---
 drivers/gpio/gpiolib.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

Grygorii Strashko Dec. 1, 2020, 5:16 p.m. UTC | #1
hi Bartosz, All,

On 18/11/2020 16:29, Grygorii Strashko wrote:
> The gpiochip may have dependencies from pinmux and so got deferred. Now it
> will print error message every time -EPROBE_DEFER is returned which is
> unnecessary:
> 
> "gpiochip_add_data_with_key: GPIOs 0..31 (gpio-0-31) failed to register, -517"
> 
> Hence, do suppress error message for -EPROBE_DEFER case.
> 
> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
> ---
>   drivers/gpio/gpiolib.c | 8 +++++---
>   1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> index 089ddcaa9bc6..fd2c503a6aab 100644
> --- a/drivers/gpio/gpiolib.c
> +++ b/drivers/gpio/gpiolib.c
> @@ -771,9 +771,11 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
>   	ida_free(&gpio_ida, gdev->id);
>   err_free_gdev:
>   	/* failures here can mean systems won't boot... */
> -	pr_err("%s: GPIOs %d..%d (%s) failed to register, %d\n", __func__,
> -	       gdev->base, gdev->base + gdev->ngpio - 1,
> -	       gc->label ? : "generic", ret);
> +	if (ret != -EPROBE_DEFER) {
> +		pr_err("%s: GPIOs %d..%d (%s) failed to register, %d\n", __func__,
> +		       gdev->base, gdev->base + gdev->ngpio - 1,
> +		       gc->label ? : "generic", ret);
> +	}
>   	kfree(gdev);
>   	return ret;
>   }
> 

Any comments for this patch?

Note. Modern dev_err_probe() seems can't be used as gpio_chip->parent is not guaranteed to be set and
it's not clear if chip_err() still can be used at this stage.
Bartosz Golaszewski Dec. 1, 2020, 6:03 p.m. UTC | #2
On Tue, Dec 1, 2020 at 6:16 PM Grygorii Strashko
<grygorii.strashko@ti.com> wrote:
>
> hi Bartosz, All,
>
> On 18/11/2020 16:29, Grygorii Strashko wrote:
> > The gpiochip may have dependencies from pinmux and so got deferred. Now it
> > will print error message every time -EPROBE_DEFER is returned which is
> > unnecessary:
> >
> > "gpiochip_add_data_with_key: GPIOs 0..31 (gpio-0-31) failed to register, -517"
> >
> > Hence, do suppress error message for -EPROBE_DEFER case.
> >
> > Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
> > ---
> >   drivers/gpio/gpiolib.c | 8 +++++---
> >   1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> > index 089ddcaa9bc6..fd2c503a6aab 100644
> > --- a/drivers/gpio/gpiolib.c
> > +++ b/drivers/gpio/gpiolib.c
> > @@ -771,9 +771,11 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
> >       ida_free(&gpio_ida, gdev->id);
> >   err_free_gdev:
> >       /* failures here can mean systems won't boot... */
> > -     pr_err("%s: GPIOs %d..%d (%s) failed to register, %d\n", __func__,
> > -            gdev->base, gdev->base + gdev->ngpio - 1,
> > -            gc->label ? : "generic", ret);
> > +     if (ret != -EPROBE_DEFER) {
> > +             pr_err("%s: GPIOs %d..%d (%s) failed to register, %d\n", __func__,
> > +                    gdev->base, gdev->base + gdev->ngpio - 1,
> > +                    gc->label ? : "generic", ret);
> > +     }
> >       kfree(gdev);
> >       return ret;
> >   }
> >
>
> Any comments for this patch?
>
> Note. Modern dev_err_probe() seems can't be used as gpio_chip->parent is not guaranteed to be set and
> it's not clear if chip_err() still can be used at this stage.
>
> --
> Best regards,
> grygorii

I applied this patch now. We seem to have a patch congestion on the
list - I'm trying to get through unread email but more is coming
everyday. :(

Bartosz
diff mbox series

Patch

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 089ddcaa9bc6..fd2c503a6aab 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -771,9 +771,11 @@  int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
 	ida_free(&gpio_ida, gdev->id);
 err_free_gdev:
 	/* failures here can mean systems won't boot... */
-	pr_err("%s: GPIOs %d..%d (%s) failed to register, %d\n", __func__,
-	       gdev->base, gdev->base + gdev->ngpio - 1,
-	       gc->label ? : "generic", ret);
+	if (ret != -EPROBE_DEFER) {
+		pr_err("%s: GPIOs %d..%d (%s) failed to register, %d\n", __func__,
+		       gdev->base, gdev->base + gdev->ngpio - 1,
+		       gc->label ? : "generic", ret);
+	}
 	kfree(gdev);
 	return ret;
 }