diff mbox series

[PATCHv2,3/4] Input: rotary-encoder - Use dev_err_probe

Message ID 20200907204045.95530-4-sebastian.reichel@collabora.com
State New
Headers show
Series Rotary Encoder Push Button Support | expand

Commit Message

Sebastian Reichel Sept. 7, 2020, 8:40 p.m. UTC
Simplify driver a bit by making use of dev_err_probe.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
 drivers/input/misc/rotary_encoder.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

Comments

Rob Herring Sept. 9, 2020, 7:48 p.m. UTC | #1
On Mon, Sep 7, 2020 at 2:40 PM Sebastian Reichel
<sebastian.reichel@collabora.com> wrote:
>
> Simplify driver a bit by making use of dev_err_probe.
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
>  drivers/input/misc/rotary_encoder.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/input/misc/rotary_encoder.c b/drivers/input/misc/rotary_encoder.c
> index e9a5dbb10513..16ad86fad7cb 100644
> --- a/drivers/input/misc/rotary_encoder.c
> +++ b/drivers/input/misc/rotary_encoder.c
> @@ -241,12 +241,8 @@ static int rotary_encoder_probe(struct platform_device *pdev)
>                 device_property_read_bool(dev, "rotary-encoder,relative-axis");
>
>         encoder->gpios = devm_gpiod_get_array(dev, NULL, GPIOD_IN);
> -       if (IS_ERR(encoder->gpios)) {
> -               err = PTR_ERR(encoder->gpios);
> -               if (err != -EPROBE_DEFER)
> -                       dev_err(dev, "unable to get gpios: %d\n", err);
> -               return err;
> -       }
> +       if (IS_ERR(encoder->gpios))
> +               return dev_err_probe(dev, PTR_ERR(encoder->gpios), "unable to get gpios\n");

I hadn't seen dev_err_probe...

Just FYI, I'm working on a different fix here which is to print errors
in the subsystems instead. We already do this for IRQs, so why not
everything else? The original reason was no resource is sometimes not
an error, but now we have *_optional calls to handle this case for
most all subsystems. It's a coccinelle script (hacked up from
platform_get_irq.cocci) to convert all the drivers.

Rob
Sebastian Reichel Sept. 10, 2020, 8:58 p.m. UTC | #2
Hi Rob,

On Wed, Sep 09, 2020 at 01:48:49PM -0600, Rob Herring wrote:
> On Mon, Sep 7, 2020 at 2:40 PM Sebastian Reichel
> <sebastian.reichel@collabora.com> wrote:
> >
> > Simplify driver a bit by making use of dev_err_probe.
> >
> > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> > ---
> >  drivers/input/misc/rotary_encoder.c | 8 ++------
> >  1 file changed, 2 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/input/misc/rotary_encoder.c b/drivers/input/misc/rotary_encoder.c
> > index e9a5dbb10513..16ad86fad7cb 100644
> > --- a/drivers/input/misc/rotary_encoder.c
> > +++ b/drivers/input/misc/rotary_encoder.c
> > @@ -241,12 +241,8 @@ static int rotary_encoder_probe(struct platform_device *pdev)
> >                 device_property_read_bool(dev, "rotary-encoder,relative-axis");
> >
> >         encoder->gpios = devm_gpiod_get_array(dev, NULL, GPIOD_IN);
> > -       if (IS_ERR(encoder->gpios)) {
> > -               err = PTR_ERR(encoder->gpios);
> > -               if (err != -EPROBE_DEFER)
> > -                       dev_err(dev, "unable to get gpios: %d\n", err);
> > -               return err;
> > -       }
> > +       if (IS_ERR(encoder->gpios))
> > +               return dev_err_probe(dev, PTR_ERR(encoder->gpios), "unable to get gpios\n");
> 
> I hadn't seen dev_err_probe...

It got added in 5.8.

> Just FYI, I'm working on a different fix here which is to print errors
> in the subsystems instead. We already do this for IRQs, so why not
> everything else? The original reason was no resource is sometimes not
> an error, but now we have *_optional calls to handle this case for
> most all subsystems. It's a coccinelle script (hacked up from
> platform_get_irq.cocci) to convert all the drivers.

Makes sense. I suppose dev_err_probe could be used within the
framework(s) and is still useful for those resource frameworks not
having _optional variants.

FYI: There is a bunch of dev_err_probe for all kind of drivers
being send out at the moment. I already received quite a few
for the power-supply subsystem. Be prepared for conflicts.

If this is about this specific instance: No hard feelings, I
only cleaned up the driver a bit while adding new features
and being able to easily test the cleanups on real HW. With
some luck patch 4/4 applies without this one.

-- Sebastian
diff mbox series

Patch

diff --git a/drivers/input/misc/rotary_encoder.c b/drivers/input/misc/rotary_encoder.c
index e9a5dbb10513..16ad86fad7cb 100644
--- a/drivers/input/misc/rotary_encoder.c
+++ b/drivers/input/misc/rotary_encoder.c
@@ -241,12 +241,8 @@  static int rotary_encoder_probe(struct platform_device *pdev)
 		device_property_read_bool(dev, "rotary-encoder,relative-axis");
 
 	encoder->gpios = devm_gpiod_get_array(dev, NULL, GPIOD_IN);
-	if (IS_ERR(encoder->gpios)) {
-		err = PTR_ERR(encoder->gpios);
-		if (err != -EPROBE_DEFER)
-			dev_err(dev, "unable to get gpios: %d\n", err);
-		return err;
-	}
+	if (IS_ERR(encoder->gpios))
+		return dev_err_probe(dev, PTR_ERR(encoder->gpios), "unable to get gpios\n");
 	if (encoder->gpios->ndescs < 2) {
 		dev_err(dev, "not enough gpios found\n");
 		return -EINVAL;