linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
@ 2020-02-17 13:38 ` H. Nikolaus Schaller
  2020-02-17 13:58   ` H. Nikolaus Schaller
  2020-02-18  3:28   ` Chanwoo Choi
  0 siblings, 2 replies; 18+ messages in thread
From: H. Nikolaus Schaller @ 2020-02-17 13:38 UTC (permalink / raw)
  To: MyungJoo Ham, Chanwoo Choi
  Cc: linux-kernel, letux-kernel, kernel, linux-omap, H. Nikolaus Schaller

If the gpios are probed after this driver (e.g. if they
come from an i2c expander) there is no need to print an
error message.

Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
 drivers/extcon/extcon-palmas.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
index edc5016f46f1..cea58d0cb457 100644
--- a/drivers/extcon/extcon-palmas.c
+++ b/drivers/extcon/extcon-palmas.c
@@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
 
 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
 							GPIOD_IN);
-	if (IS_ERR(palmas_usb->id_gpiod)) {
+	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
+		return -EPROBE_DEFER;
+	} else if (IS_ERR(palmas_usb->id_gpiod)) {
 		dev_err(&pdev->dev, "failed to get id gpio\n");
 		return PTR_ERR(palmas_usb->id_gpiod);
 	}
 
 	palmas_usb->vbus_gpiod = devm_gpiod_get_optional(&pdev->dev, "vbus",
 							GPIOD_IN);
-	if (IS_ERR(palmas_usb->vbus_gpiod)) {
+	if (PTR_ERR(palmas_usb->vbus_gpiod) == -EPROBE_DEFER) {
+		return -EPROBE_DEFER;
+	} else if (IS_ERR(palmas_usb->vbus_gpiod)) {
 		dev_err(&pdev->dev, "failed to get vbus gpio\n");
 		return PTR_ERR(palmas_usb->vbus_gpiod);
 	}
-- 
2.23.0


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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-17 13:38 ` [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER H. Nikolaus Schaller
@ 2020-02-17 13:58   ` H. Nikolaus Schaller
  2020-02-17 18:29     ` Ladislav Michl
  2020-02-18 11:13     ` Chanwoo Choi
  2020-02-18  3:28   ` Chanwoo Choi
  1 sibling, 2 replies; 18+ messages in thread
From: H. Nikolaus Schaller @ 2020-02-17 13:58 UTC (permalink / raw)
  To: MyungJoo Ham, Chanwoo Choi; +Cc: linux-kernel, letux-kernel, kernel, linux-omap


> Am 17.02.2020 um 14:38 schrieb H. Nikolaus Schaller <hns@goldelico.com>:
> 
> If the gpios are probed after this driver (e.g. if they
> come from an i2c expander) there is no need to print an
> error message.
> 
> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> ---
> drivers/extcon/extcon-palmas.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> index edc5016f46f1..cea58d0cb457 100644
> --- a/drivers/extcon/extcon-palmas.c
> +++ b/drivers/extcon/extcon-palmas.c
> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
> 
> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> 							GPIOD_IN);
> -	if (IS_ERR(palmas_usb->id_gpiod)) {
> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
> +		return -EPROBE_DEFER;
> +	} else if (IS_ERR(palmas_usb->id_gpiod)) {

Hm.

While looking again at that: why do we need the "{" and "} else "?

It should be sufficient to have

> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> 							GPIOD_IN);
> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER)
> +		return -EPROBE_DEFER;
> 	if (IS_ERR(palmas_usb->id_gpiod)) {

What do you think is better coding style here?

BR,
Nikolaus Schaller

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-17 13:58   ` H. Nikolaus Schaller
@ 2020-02-17 18:29     ` Ladislav Michl
  2020-02-17 18:38       ` H. Nikolaus Schaller
  2020-02-18 11:13     ` Chanwoo Choi
  1 sibling, 1 reply; 18+ messages in thread
From: Ladislav Michl @ 2020-02-17 18:29 UTC (permalink / raw)
  To: H. Nikolaus Schaller
  Cc: MyungJoo Ham, Chanwoo Choi, linux-kernel, letux-kernel, kernel,
	linux-omap

On Mon, Feb 17, 2020 at 02:58:14PM +0100, H. Nikolaus Schaller wrote:
> 
> > Am 17.02.2020 um 14:38 schrieb H. Nikolaus Schaller <hns@goldelico.com>:
> > 
> > If the gpios are probed after this driver (e.g. if they
> > come from an i2c expander) there is no need to print an
> > error message.
> > 
> > Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> > ---
> > drivers/extcon/extcon-palmas.c | 8 ++++++--
> > 1 file changed, 6 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> > index edc5016f46f1..cea58d0cb457 100644
> > --- a/drivers/extcon/extcon-palmas.c
> > +++ b/drivers/extcon/extcon-palmas.c
> > @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
> > 
> > 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> > 							GPIOD_IN);
> > -	if (IS_ERR(palmas_usb->id_gpiod)) {
> > +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
> > +		return -EPROBE_DEFER;
> > +	} else if (IS_ERR(palmas_usb->id_gpiod)) {
> 
> Hm.
> 
> While looking again at that: why do we need the "{" and "} else "?
> 
> It should be sufficient to have
> 
> > 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> > 							GPIOD_IN);
> > +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER)
> > +		return -EPROBE_DEFER;
> > 	if (IS_ERR(palmas_usb->id_gpiod)) {
> 
> What do you think is better coding style here?

How about something like this? (just an idea with some work left for you ;-))

--- a/drivers/extcon/extcon-palmas.c
+++ b/drivers/extcon/extcon-palmas.c
@@ -206,8 +206,10 @@ static int palmas_usb_probe(struct platform_device *pdev)
 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
 							GPIOD_IN);
 	if (IS_ERR(palmas_usb->id_gpiod)) {
-		dev_err(&pdev->dev, "failed to get id gpio\n");
-		return PTR_ERR(palmas_usb->id_gpiod);
+		status = PTR_ERR(palmas_usb->id_gpiod);
+		if (status != -EPROBE_DEFER)
+			dev_err(&pdev->dev, "failed to get id gpio: %d\n", status);
+		return status;
 	}
 
 	palmas_usb->vbus_gpiod = devm_gpiod_get_optional(&pdev->dev, "vbus",

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-17 18:29     ` Ladislav Michl
@ 2020-02-17 18:38       ` H. Nikolaus Schaller
  2020-02-17 19:07         ` Ladislav Michl
  0 siblings, 1 reply; 18+ messages in thread
From: H. Nikolaus Schaller @ 2020-02-17 18:38 UTC (permalink / raw)
  To: Ladislav Michl
  Cc: MyungJoo Ham, Chanwoo Choi, linux-kernel, letux-kernel, kernel,
	linux-omap

Hi,

> Am 17.02.2020 um 19:29 schrieb Ladislav Michl <ladis@linux-mips.org>:
> 
> On Mon, Feb 17, 2020 at 02:58:14PM +0100, H. Nikolaus Schaller wrote:
>> 
>>> Am 17.02.2020 um 14:38 schrieb H. Nikolaus Schaller <hns@goldelico.com>:
>>> 
>>> If the gpios are probed after this driver (e.g. if they
>>> come from an i2c expander) there is no need to print an
>>> error message.
>>> 
>>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
>>> ---
>>> drivers/extcon/extcon-palmas.c | 8 ++++++--
>>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>> 
>>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
>>> index edc5016f46f1..cea58d0cb457 100644
>>> --- a/drivers/extcon/extcon-palmas.c
>>> +++ b/drivers/extcon/extcon-palmas.c
>>> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
>>> 
>>> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>>> 							GPIOD_IN);
>>> -	if (IS_ERR(palmas_usb->id_gpiod)) {
>>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
>>> +		return -EPROBE_DEFER;
>>> +	} else if (IS_ERR(palmas_usb->id_gpiod)) {
>> 
>> Hm.
>> 
>> While looking again at that: why do we need the "{" and "} else "?
>> 
>> It should be sufficient to have
>> 
>>> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>>> 							GPIOD_IN);
>>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER)
>>> +		return -EPROBE_DEFER;
>>> 	if (IS_ERR(palmas_usb->id_gpiod)) {
>> 
>> What do you think is better coding style here?
> 
> How about something like this? (just an idea with some work left for you ;-))
> 
> --- a/drivers/extcon/extcon-palmas.c
> +++ b/drivers/extcon/extcon-palmas.c
> @@ -206,8 +206,10 @@ static int palmas_usb_probe(struct platform_device *pdev)
> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> 							GPIOD_IN);
> 	if (IS_ERR(palmas_usb->id_gpiod)) {
> -		dev_err(&pdev->dev, "failed to get id gpio\n");
> -		return PTR_ERR(palmas_usb->id_gpiod);
> +		status = PTR_ERR(palmas_usb->id_gpiod);
> +		if (status != -EPROBE_DEFER)
> +			dev_err(&pdev->dev, "failed to get id gpio: %d\n", status);
> +		return status;
> 	}

Well, what would be the improvement?
It needs an additional variable and makes the change more complex.

The main suggestion by Chanwoo Choi was to move the check for EPROBE_DEFER
outside of the IS_ERR() because checking this first and then for EPROBE_DEFER
is not necessary.

If acceptable I'd prefer my last proposal. It just adds 2 LOC before
and without touching the existing if (IS_ERR(...)).

If the compiler is clever it can cache palmas_usb->id_gpiod in a register
which serves the same purpose as the status variable.

> 
> 	palmas_usb->vbus_gpiod = devm_gpiod_get_optional(&pdev->dev, "vbus",

BR and thanks,
Nikolaus

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-17 18:38       ` H. Nikolaus Schaller
@ 2020-02-17 19:07         ` Ladislav Michl
  2020-02-17 19:33           ` H. Nikolaus Schaller
  0 siblings, 1 reply; 18+ messages in thread
From: Ladislav Michl @ 2020-02-17 19:07 UTC (permalink / raw)
  To: H. Nikolaus Schaller
  Cc: MyungJoo Ham, Chanwoo Choi, linux-kernel, letux-kernel, kernel,
	linux-omap

On Mon, Feb 17, 2020 at 07:38:16PM +0100, H. Nikolaus Schaller wrote:
> Hi,
> 
> > Am 17.02.2020 um 19:29 schrieb Ladislav Michl <ladis@linux-mips.org>:
> > 
> > On Mon, Feb 17, 2020 at 02:58:14PM +0100, H. Nikolaus Schaller wrote:
> >> 
> >>> Am 17.02.2020 um 14:38 schrieb H. Nikolaus Schaller <hns@goldelico.com>:
> >>> 
> >>> If the gpios are probed after this driver (e.g. if they
> >>> come from an i2c expander) there is no need to print an
> >>> error message.
> >>> 
> >>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> >>> ---
> >>> drivers/extcon/extcon-palmas.c | 8 ++++++--
> >>> 1 file changed, 6 insertions(+), 2 deletions(-)
> >>> 
> >>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> >>> index edc5016f46f1..cea58d0cb457 100644
> >>> --- a/drivers/extcon/extcon-palmas.c
> >>> +++ b/drivers/extcon/extcon-palmas.c
> >>> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
> >>> 
> >>> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> >>> 							GPIOD_IN);
> >>> -	if (IS_ERR(palmas_usb->id_gpiod)) {
> >>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
> >>> +		return -EPROBE_DEFER;
> >>> +	} else if (IS_ERR(palmas_usb->id_gpiod)) {
> >> 
> >> Hm.
> >> 
> >> While looking again at that: why do we need the "{" and "} else "?
> >> 
> >> It should be sufficient to have
> >> 
> >>> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> >>> 							GPIOD_IN);
> >>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER)
> >>> +		return -EPROBE_DEFER;
> >>> 	if (IS_ERR(palmas_usb->id_gpiod)) {
> >> 
> >> What do you think is better coding style here?
> > 
> > How about something like this? (just an idea with some work left for you ;-))
> > 
> > --- a/drivers/extcon/extcon-palmas.c
> > +++ b/drivers/extcon/extcon-palmas.c
> > @@ -206,8 +206,10 @@ static int palmas_usb_probe(struct platform_device *pdev)
> > 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> > 							GPIOD_IN);
> > 	if (IS_ERR(palmas_usb->id_gpiod)) {
> > -		dev_err(&pdev->dev, "failed to get id gpio\n");
> > -		return PTR_ERR(palmas_usb->id_gpiod);
> > +		status = PTR_ERR(palmas_usb->id_gpiod);
> > +		if (status != -EPROBE_DEFER)
> > +			dev_err(&pdev->dev, "failed to get id gpio: %d\n", status);
> > +		return status;
> > 	}
> 
> Well, what would be the improvement?

Linux kernel prints so many lines on bootup and only few of them are
valuable. Lets improve it by printing error value to give a clue
why it failed.

> It needs an additional variable and makes the change more complex.

That additional variable is already there...

> The main suggestion by Chanwoo Choi was to move the check for EPROBE_DEFER
> outside of the IS_ERR() because checking this first and then for EPROBE_DEFER
> is not necessary.

True, but there are two checks either way and this is slow path.

> If acceptable I'd prefer my last proposal. It just adds 2 LOC before
> and without touching the existing if (IS_ERR(...)).

I have no strong opinion. I was just waiting for project to compile
so, consider my reply as product of boredom :)
(However, I do not like "let's touch only minimal number of lines"
argument. End result should still matter more)

> If the compiler is clever it can cache palmas_usb->id_gpiod in a register
> which serves the same purpose as the status variable.

I'm not trying to outsmart compiler, but note status variable is needed
three times.

> > 
> > 	palmas_usb->vbus_gpiod = devm_gpiod_get_optional(&pdev->dev, "vbus",
> 
> BR and thanks,
> Nikolaus

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-17 19:07         ` Ladislav Michl
@ 2020-02-17 19:33           ` H. Nikolaus Schaller
  2020-02-17 20:19             ` Ladislav Michl
  0 siblings, 1 reply; 18+ messages in thread
From: H. Nikolaus Schaller @ 2020-02-17 19:33 UTC (permalink / raw)
  To: Ladislav Michl
  Cc: MyungJoo Ham, Chanwoo Choi, linux-kernel, letux-kernel, kernel,
	linux-omap

Hi Ladis,

> Am 17.02.2020 um 20:07 schrieb Ladislav Michl <ladis@linux-mips.org>:
> 
> On Mon, Feb 17, 2020 at 07:38:16PM +0100, H. Nikolaus Schaller wrote:
>> Hi,
>> 
>>> Am 17.02.2020 um 19:29 schrieb Ladislav Michl <ladis@linux-mips.org>:
>>> 
>>> On Mon, Feb 17, 2020 at 02:58:14PM +0100, H. Nikolaus Schaller wrote:
>>>> 
>>>>> Am 17.02.2020 um 14:38 schrieb H. Nikolaus Schaller <hns@goldelico.com>:
>>>>> 
>>>>> If the gpios are probed after this driver (e.g. if they
>>>>> come from an i2c expander) there is no need to print an
>>>>> error message.
>>>>> 
>>>>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
>>>>> ---
>>>>> drivers/extcon/extcon-palmas.c | 8 ++++++--
>>>>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>>>> 
>>>>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
>>>>> index edc5016f46f1..cea58d0cb457 100644
>>>>> --- a/drivers/extcon/extcon-palmas.c
>>>>> +++ b/drivers/extcon/extcon-palmas.c
>>>>> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
>>>>> 
>>>>> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>>>>> 							GPIOD_IN);
>>>>> -	if (IS_ERR(palmas_usb->id_gpiod)) {
>>>>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
>>>>> +		return -EPROBE_DEFER;
>>>>> +	} else if (IS_ERR(palmas_usb->id_gpiod)) {
>>>> 
>>>> Hm.
>>>> 
>>>> While looking again at that: why do we need the "{" and "} else "?
>>>> 
>>>> It should be sufficient to have
>>>> 
>>>>> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>>>>> 							GPIOD_IN);
>>>>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER)
>>>>> +		return -EPROBE_DEFER;
>>>>> 	if (IS_ERR(palmas_usb->id_gpiod)) {
>>>> 
>>>> What do you think is better coding style here?
>>> 
>>> How about something like this? (just an idea with some work left for you ;-))
>>> 
>>> --- a/drivers/extcon/extcon-palmas.c
>>> +++ b/drivers/extcon/extcon-palmas.c
>>> @@ -206,8 +206,10 @@ static int palmas_usb_probe(struct platform_device *pdev)
>>> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>>> 							GPIOD_IN);
>>> 	if (IS_ERR(palmas_usb->id_gpiod)) {
>>> -		dev_err(&pdev->dev, "failed to get id gpio\n");
>>> -		return PTR_ERR(palmas_usb->id_gpiod);
>>> +		status = PTR_ERR(palmas_usb->id_gpiod);
>>> +		if (status != -EPROBE_DEFER)
>>> +			dev_err(&pdev->dev, "failed to get id gpio: %d\n", status);
>>> +		return status;
>>> 	}
>> 
>> Well, what would be the improvement?
> 
> Linux kernel prints so many lines on bootup and only few of them are
> valuable. Lets improve it by printing error value to give a clue
> why it failed.

Hm. The upstream code does already print the error. This feature is not removed.
But it is also printing an error in the EPROBE_DEFER case as well, where it is
not needed or not an error.

And that is the whole purpose of this patch to get rid of it in the EPROBE_DEFER
case.

My question meant: what your proposal does improve over previous versions of
this patch. My first one was:

https://lkml.org/lkml/2020/2/17/220

which is very similar except not using an explicit temporary variable (which I
think is something every modern compiler will introduce). So the assembler
code is likely the same.

> 
>> It needs an additional variable and makes the change more complex.
> 
> That additional variable is already there...

Or a register assigned by the compiler.

> 
>> The main suggestion by Chanwoo Choi was to move the check for EPROBE_DEFER
>> outside of the IS_ERR() because checking this first and then for EPROBE_DEFER
>> is not necessary.
> 
> True, but there are two checks either way and this is slow path.

Well, it depends on likelihood of each code path... That is quite
difficult to assess.

> 
>> If acceptable I'd prefer my last proposal. It just adds 2 LOC before
>> and without touching the existing if (IS_ERR(...)).
> 
> I have no strong opinion. I was just waiting for project to compile
> so, consider my reply as product of boredom :)

Yes, compile times have increased significantly over the years :)

> (However, I do not like "let's touch only minimal number of lines"
> argument. End result should still matter more)

I would have been happy with my first proposal, but review suggested
to change it.

There is also some discussion for using IS_ERR() and PTR_ERR() == -Esomething
first or second: https://lore.kernel.org/patchwork/patch/999602/

Well, about the end-result: this code path is run only once during
probe time. And that makes a difference in the sub-µs range. So I don't
mind about the likelyhood. More concern is to have the code correct
and not introduce regressions.

And there the lines of code rule comes in: the less I change the less
I can break.

(Yes my compiler is also busy making me wait for result... so that
I can formulate such fundamental statements :).

> 
>> If the compiler is clever it can cache palmas_usb->id_gpiod in a register
>> which serves the same purpose as the status variable.
> 
> I'm not trying to outsmart compiler, but note status variable is needed
> three times.

BR and thanks,
Nikolaus


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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-17 19:33           ` H. Nikolaus Schaller
@ 2020-02-17 20:19             ` Ladislav Michl
  2020-02-17 20:25               ` H. Nikolaus Schaller
  0 siblings, 1 reply; 18+ messages in thread
From: Ladislav Michl @ 2020-02-17 20:19 UTC (permalink / raw)
  To: H. Nikolaus Schaller
  Cc: MyungJoo Ham, Chanwoo Choi, linux-kernel, letux-kernel, kernel,
	linux-omap

Hi Nikolaus,

On Mon, Feb 17, 2020 at 08:33:52PM +0100, H. Nikolaus Schaller wrote:
> Hi Ladis,
> 
> > Am 17.02.2020 um 20:07 schrieb Ladislav Michl <ladis@linux-mips.org>:
> > Linux kernel prints so many lines on bootup and only few of them are
> > valuable. Lets improve it by printing error value to give a clue
> > why it failed.
> 
> Hm. The upstream code does already print the error. This feature is not removed.
> But it is also printing an error in the EPROBE_DEFER case as well, where it is
> not needed or not an error.

It seems you missed I'm printing also error _value_. The rest of discussion
would need disassembly and I'll do it once I'll be waiting for yet another
long run recompile.

	ladis

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-17 20:19             ` Ladislav Michl
@ 2020-02-17 20:25               ` H. Nikolaus Schaller
  2020-02-18 11:49                 ` Ladislav Michl
  0 siblings, 1 reply; 18+ messages in thread
From: H. Nikolaus Schaller @ 2020-02-17 20:25 UTC (permalink / raw)
  To: Ladislav Michl
  Cc: MyungJoo Ham, Chanwoo Choi, linux-kernel, letux-kernel, kernel,
	linux-omap

Hi Ladis,

> Am 17.02.2020 um 21:19 schrieb Ladislav Michl <ladis@linux-mips.org>:
> 
> Hi Nikolaus,
> 
> On Mon, Feb 17, 2020 at 08:33:52PM +0100, H. Nikolaus Schaller wrote:
>> Hi Ladis,
>> 
>>> Am 17.02.2020 um 20:07 schrieb Ladislav Michl <ladis@linux-mips.org>:
>>> Linux kernel prints so many lines on bootup and only few of them are
>>> valuable. Lets improve it by printing error value to give a clue
>>> why it failed.
>> 
>> Hm. The upstream code does already print the error. This feature is not removed.
>> But it is also printing an error in the EPROBE_DEFER case as well, where it is
>> not needed or not an error.
> 
> It seems you missed I'm printing also error _value_.

Indeed.

Well, usually there is no error so adding the error number is not of much
use (except for debugging)... The most likely one seems to be -EPROBE_DEFER.

On the omap5 boards where I have seen the error message being printed they were
EPROBE_DEFER.

So your proposal changes the subject (which has a very small focus).

> The rest of discussion
> would need disassembly and I'll do it once I'll be waiting for yet another
> long run recompile.

:)

BR and thanks,
Nikolaus


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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-17 13:38 ` [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER H. Nikolaus Schaller
  2020-02-17 13:58   ` H. Nikolaus Schaller
@ 2020-02-18  3:28   ` Chanwoo Choi
  2020-02-18 10:21     ` Ladislav Michl
  1 sibling, 1 reply; 18+ messages in thread
From: Chanwoo Choi @ 2020-02-18  3:28 UTC (permalink / raw)
  To: H. Nikolaus Schaller, MyungJoo Ham
  Cc: linux-kernel, letux-kernel, kernel, linux-omap

On 2/17/20 10:38 PM, H. Nikolaus Schaller wrote:
> If the gpios are probed after this driver (e.g. if they
> come from an i2c expander) there is no need to print an
> error message.
> 
> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> ---
>  drivers/extcon/extcon-palmas.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> index edc5016f46f1..cea58d0cb457 100644
> --- a/drivers/extcon/extcon-palmas.c
> +++ b/drivers/extcon/extcon-palmas.c
> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
>  
>  	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>  							GPIOD_IN);
> -	if (IS_ERR(palmas_usb->id_gpiod)) {
> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
> +		return -EPROBE_DEFER;
> +	} else if (IS_ERR(palmas_usb->id_gpiod)) {
>  		dev_err(&pdev->dev, "failed to get id gpio\n");
>  		return PTR_ERR(palmas_usb->id_gpiod);
>  	}
>  
>  	palmas_usb->vbus_gpiod = devm_gpiod_get_optional(&pdev->dev, "vbus",
>  							GPIOD_IN);
> -	if (IS_ERR(palmas_usb->vbus_gpiod)) {
> +	if (PTR_ERR(palmas_usb->vbus_gpiod) == -EPROBE_DEFER) {
> +		return -EPROBE_DEFER;
> +	} else if (IS_ERR(palmas_usb->vbus_gpiod)) {
>  		dev_err(&pdev->dev, "failed to get vbus gpio\n");
>  		return PTR_ERR(palmas_usb->vbus_gpiod);
>  	}
> 

I think that it is enough to handle the -EPROBE_DEFER.
Also, I prefer to use single if/else statement 
instead of the nested if/else statement.

Applied it.

-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-18  3:28   ` Chanwoo Choi
@ 2020-02-18 10:21     ` Ladislav Michl
  2020-02-18 10:35       ` Chanwoo Choi
  0 siblings, 1 reply; 18+ messages in thread
From: Ladislav Michl @ 2020-02-18 10:21 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: H. Nikolaus Schaller, MyungJoo Ham, linux-kernel, letux-kernel,
	kernel, linux-omap

On Tue, Feb 18, 2020 at 12:28:25PM +0900, Chanwoo Choi wrote:
> On 2/17/20 10:38 PM, H. Nikolaus Schaller wrote:
> > If the gpios are probed after this driver (e.g. if they
> > come from an i2c expander) there is no need to print an
> > error message.
> > 
> > Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> > ---
> >  drivers/extcon/extcon-palmas.c | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> > index edc5016f46f1..cea58d0cb457 100644
> > --- a/drivers/extcon/extcon-palmas.c
> > +++ b/drivers/extcon/extcon-palmas.c
> > @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
> >  
> >  	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> >  							GPIOD_IN);
> > -	if (IS_ERR(palmas_usb->id_gpiod)) {
> > +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
> > +		return -EPROBE_DEFER;
> > +	} else if (IS_ERR(palmas_usb->id_gpiod)) {
> >  		dev_err(&pdev->dev, "failed to get id gpio\n");
> >  		return PTR_ERR(palmas_usb->id_gpiod);
> >  	}
> >  
> >  	palmas_usb->vbus_gpiod = devm_gpiod_get_optional(&pdev->dev, "vbus",
> >  							GPIOD_IN);
> > -	if (IS_ERR(palmas_usb->vbus_gpiod)) {
> > +	if (PTR_ERR(palmas_usb->vbus_gpiod) == -EPROBE_DEFER) {
> > +		return -EPROBE_DEFER;
> > +	} else if (IS_ERR(palmas_usb->vbus_gpiod)) {
> >  		dev_err(&pdev->dev, "failed to get vbus gpio\n");
> >  		return PTR_ERR(palmas_usb->vbus_gpiod);
> >  	}
> > 
> 
> I think that it is enough to handle the -EPROBE_DEFER.
> Also, I prefer to use single if/else statement 
> instead of the nested if/else statement.
> 
> Applied it.

Uh... As it is? Then it is matter of time it triggers someones cocci
script pointing to else after return. Could you at least fix this?

Thanks,
	ladis

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-18 10:21     ` Ladislav Michl
@ 2020-02-18 10:35       ` Chanwoo Choi
  2020-02-18 10:48         ` Ladislav Michl
  0 siblings, 1 reply; 18+ messages in thread
From: Chanwoo Choi @ 2020-02-18 10:35 UTC (permalink / raw)
  To: Ladislav Michl
  Cc: H. Nikolaus Schaller, MyungJoo Ham, linux-kernel, letux-kernel,
	kernel, linux-omap

On 2/18/20 7:21 PM, Ladislav Michl wrote:
> On Tue, Feb 18, 2020 at 12:28:25PM +0900, Chanwoo Choi wrote:
>> On 2/17/20 10:38 PM, H. Nikolaus Schaller wrote:
>>> If the gpios are probed after this driver (e.g. if they
>>> come from an i2c expander) there is no need to print an
>>> error message.
>>>
>>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
>>> ---
>>>  drivers/extcon/extcon-palmas.c | 8 ++++++--
>>>  1 file changed, 6 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
>>> index edc5016f46f1..cea58d0cb457 100644
>>> --- a/drivers/extcon/extcon-palmas.c
>>> +++ b/drivers/extcon/extcon-palmas.c
>>> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
>>>  
>>>  	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>>>  							GPIOD_IN);
>>> -	if (IS_ERR(palmas_usb->id_gpiod)) {
>>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
>>> +		return -EPROBE_DEFER;
>>> +	} else if (IS_ERR(palmas_usb->id_gpiod)) {
>>>  		dev_err(&pdev->dev, "failed to get id gpio\n");
>>>  		return PTR_ERR(palmas_usb->id_gpiod);
>>>  	}
>>>  
>>>  	palmas_usb->vbus_gpiod = devm_gpiod_get_optional(&pdev->dev, "vbus",
>>>  							GPIOD_IN);
>>> -	if (IS_ERR(palmas_usb->vbus_gpiod)) {
>>> +	if (PTR_ERR(palmas_usb->vbus_gpiod) == -EPROBE_DEFER) {
>>> +		return -EPROBE_DEFER;
>>> +	} else if (IS_ERR(palmas_usb->vbus_gpiod)) {
>>>  		dev_err(&pdev->dev, "failed to get vbus gpio\n");
>>>  		return PTR_ERR(palmas_usb->vbus_gpiod);
>>>  	}
>>>
>>
>> I think that it is enough to handle the -EPROBE_DEFER.
>> Also, I prefer to use single if/else statement 
>> instead of the nested if/else statement.
>>
>> Applied it.
> 
> Uh... As it is? Then it is matter of time it triggers someones cocci
> script pointing to else after return. Could you at least fix this?

Sorry. I don't understand. Do you mean that this patch has the
some issue of cocci script?

I think that it fixes the probe sequence issue
between extcon-palmas and gpio driver. It is not related to
any result from cocci script. If the extcon-palmas.c has
the issue by cocci or checkpatch, anyone can send the other patch
for fixup.

I think that it is enough to fix the issue which is only
related to the probe sequence between gpio and extcon-palmas.c

> 
> Thanks,
> 	ladis
> 
> 


-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-18 10:35       ` Chanwoo Choi
@ 2020-02-18 10:48         ` Ladislav Michl
  2020-02-18 11:09           ` Chanwoo Choi
  0 siblings, 1 reply; 18+ messages in thread
From: Ladislav Michl @ 2020-02-18 10:48 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: H. Nikolaus Schaller, MyungJoo Ham, linux-kernel, letux-kernel,
	kernel, linux-omap

On Tue, Feb 18, 2020 at 07:35:47PM +0900, Chanwoo Choi wrote:
> On 2/18/20 7:21 PM, Ladislav Michl wrote:
> > On Tue, Feb 18, 2020 at 12:28:25PM +0900, Chanwoo Choi wrote:
> >> On 2/17/20 10:38 PM, H. Nikolaus Schaller wrote:
> >>> If the gpios are probed after this driver (e.g. if they
> >>> come from an i2c expander) there is no need to print an
> >>> error message.
> >>>
> >>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> >>> ---
> >>>  drivers/extcon/extcon-palmas.c | 8 ++++++--
> >>>  1 file changed, 6 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> >>> index edc5016f46f1..cea58d0cb457 100644
> >>> --- a/drivers/extcon/extcon-palmas.c
> >>> +++ b/drivers/extcon/extcon-palmas.c
> >>> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
> >>>  
> >>>  	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> >>>  							GPIOD_IN);
> >>> -	if (IS_ERR(palmas_usb->id_gpiod)) {
> >>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
> >>> +		return -EPROBE_DEFER;

Here we returned...

> >>> +	} else if (IS_ERR(palmas_usb->id_gpiod)) {

How could this else get triggered?

> >>>  		dev_err(&pdev->dev, "failed to get id gpio\n");
> >>>  		return PTR_ERR(palmas_usb->id_gpiod);
> >>>  	}
> >>>  
> >>>  	palmas_usb->vbus_gpiod = devm_gpiod_get_optional(&pdev->dev, "vbus",
> >>>  							GPIOD_IN);
> >>> -	if (IS_ERR(palmas_usb->vbus_gpiod)) {
> >>> +	if (PTR_ERR(palmas_usb->vbus_gpiod) == -EPROBE_DEFER) {
> >>> +		return -EPROBE_DEFER;
> >>> +	} else if (IS_ERR(palmas_usb->vbus_gpiod)) {
> >>>  		dev_err(&pdev->dev, "failed to get vbus gpio\n");
> >>>  		return PTR_ERR(palmas_usb->vbus_gpiod);
> >>>  	}
> >>>
> >>
> >> I think that it is enough to handle the -EPROBE_DEFER.
> >> Also, I prefer to use single if/else statement 
> >> instead of the nested if/else statement.
> >>
> >> Applied it.
> > 
> > Uh... As it is? Then it is matter of time it triggers someones cocci
> > script pointing to else after return. Could you at least fix this?
> 
> Sorry. I don't understand. Do you mean that this patch has the
> some issue of cocci script?

Yes.

> I think that it fixes the probe sequence issue
> between extcon-palmas and gpio driver. It is not related to
> any result from cocci script. If the extcon-palmas.c has
> the issue by cocci or checkpatch, anyone can send the other patch
> for fixup.

Do you mean to send fixup to what you just applied? What happened
to review process? Nikolaus himself told you patch could be better
and we were just waiting which solution you choose to send final patch.

> I think that it is enough to fix the issue which is only
> related to the probe sequence between gpio and extcon-palmas.c

Agree, but look again at the patch.

	ladis

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-18 10:48         ` Ladislav Michl
@ 2020-02-18 11:09           ` Chanwoo Choi
  2020-02-21  7:47             ` Ladislav Michl
  0 siblings, 1 reply; 18+ messages in thread
From: Chanwoo Choi @ 2020-02-18 11:09 UTC (permalink / raw)
  To: Ladislav Michl
  Cc: H. Nikolaus Schaller, MyungJoo Ham, linux-kernel, letux-kernel,
	kernel, linux-omap

On 2/18/20 7:48 PM, Ladislav Michl wrote:
> On Tue, Feb 18, 2020 at 07:35:47PM +0900, Chanwoo Choi wrote:
>> On 2/18/20 7:21 PM, Ladislav Michl wrote:
>>> On Tue, Feb 18, 2020 at 12:28:25PM +0900, Chanwoo Choi wrote:
>>>> On 2/17/20 10:38 PM, H. Nikolaus Schaller wrote:
>>>>> If the gpios are probed after this driver (e.g. if they
>>>>> come from an i2c expander) there is no need to print an
>>>>> error message.
>>>>>
>>>>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
>>>>> ---
>>>>>  drivers/extcon/extcon-palmas.c | 8 ++++++--
>>>>>  1 file changed, 6 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
>>>>> index edc5016f46f1..cea58d0cb457 100644
>>>>> --- a/drivers/extcon/extcon-palmas.c
>>>>> +++ b/drivers/extcon/extcon-palmas.c
>>>>> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
>>>>>  
>>>>>  	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>>>>>  							GPIOD_IN);
>>>>> -	if (IS_ERR(palmas_usb->id_gpiod)) {
>>>>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
>>>>> +		return -EPROBE_DEFER;
> 
> Here we returned...

hmm. you better to suggest the result of cocci script
to understand why it is matter.

> 
>>>>> +	} else if (IS_ERR(palmas_usb->id_gpiod)) {
> 
> How could this else get triggered?

I don't understand your intention. 
If devm_gpiod_get_optional return the error except of -EPROBE_DEFER,
it is triggered. Is it wrong?

> 
>>>>>  		dev_err(&pdev->dev, "failed to get id gpio\n");
>>>>>  		return PTR_ERR(palmas_usb->id_gpiod);
>>>>>  	}
>>>>>  
>>>>>  	palmas_usb->vbus_gpiod = devm_gpiod_get_optional(&pdev->dev, "vbus",
>>>>>  							GPIOD_IN);
>>>>> -	if (IS_ERR(palmas_usb->vbus_gpiod)) {
>>>>> +	if (PTR_ERR(palmas_usb->vbus_gpiod) == -EPROBE_DEFER) {
>>>>> +		return -EPROBE_DEFER;
>>>>> +	} else if (IS_ERR(palmas_usb->vbus_gpiod)) {
>>>>>  		dev_err(&pdev->dev, "failed to get vbus gpio\n");
>>>>>  		return PTR_ERR(palmas_usb->vbus_gpiod);
>>>>>  	}
>>>>>
>>>>
>>>> I think that it is enough to handle the -EPROBE_DEFER.
>>>> Also, I prefer to use single if/else statement 
>>>> instead of the nested if/else statement.
>>>>
>>>> Applied it.
>>>
>>> Uh... As it is? Then it is matter of time it triggers someones cocci
>>> script pointing to else after return. Could you at least fix this?
>>
>> Sorry. I don't understand. Do you mean that this patch has the
>> some issue of cocci script?
> 
> Yes.

As I said, you better to suggest the result of cocci script.

> 
>> I think that it fixes the probe sequence issue
>> between extcon-palmas and gpio driver. It is not related to
>> any result from cocci script. If the extcon-palmas.c has
>> the issue by cocci or checkpatch, anyone can send the other patch
>> for fixup.
> 
> Do you mean to send fixup to what you just applied? What happened
> to review process? Nikolaus himself told you patch could be better
> and we were just waiting which solution you choose to send final patch.

I has not thought that Nikolaus will send next patch
when I read this thread.

> 
>> I think that it is enough to fix the issue which is only
>> related to the probe sequence between gpio and extcon-palmas.c
> 
> Agree, but look again at the patch.
> 
> 	ladis
> 
> 


-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-17 13:58   ` H. Nikolaus Schaller
  2020-02-17 18:29     ` Ladislav Michl
@ 2020-02-18 11:13     ` Chanwoo Choi
  1 sibling, 0 replies; 18+ messages in thread
From: Chanwoo Choi @ 2020-02-18 11:13 UTC (permalink / raw)
  To: H. Nikolaus Schaller, MyungJoo Ham
  Cc: linux-kernel, letux-kernel, kernel, linux-omap

On 2/17/20 10:58 PM, H. Nikolaus Schaller wrote:
> 
>> Am 17.02.2020 um 14:38 schrieb H. Nikolaus Schaller <hns@goldelico.com>:
>>
>> If the gpios are probed after this driver (e.g. if they
>> come from an i2c expander) there is no need to print an
>> error message.
>>
>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
>> ---
>> drivers/extcon/extcon-palmas.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
>> index edc5016f46f1..cea58d0cb457 100644
>> --- a/drivers/extcon/extcon-palmas.c
>> +++ b/drivers/extcon/extcon-palmas.c
>> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
>>
>> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>> 							GPIOD_IN);
>> -	if (IS_ERR(palmas_usb->id_gpiod)) {
>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
>> +		return -EPROBE_DEFER;
>> +	} else if (IS_ERR(palmas_usb->id_gpiod)) {
> 
> Hm.
> 
> While looking again at that: why do we need the "{" and "} else "?
> 
> It should be sufficient to have
> 
>> 	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>> 							GPIOD_IN);
>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER)
>> +		return -EPROBE_DEFER;
>> 	if (IS_ERR(palmas_usb->id_gpiod)) {
> 
> What do you think is better coding style here?

I think that my suggestion is better because 'if' and 'else if'
check the error state of same 'palmas_usb->id_gpiod' variable.

If 'if' and 'else if' checks the different variable,
your suggestion is better.


-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-17 20:25               ` H. Nikolaus Schaller
@ 2020-02-18 11:49                 ` Ladislav Michl
  0 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2020-02-18 11:49 UTC (permalink / raw)
  To: H. Nikolaus Schaller
  Cc: MyungJoo Ham, Chanwoo Choi, linux-kernel, letux-kernel, kernel,
	linux-omap

Hi Nikolaus,

On Mon, Feb 17, 2020 at 09:25:32PM +0100, H. Nikolaus Schaller wrote:
> > The rest of discussion
> > would need disassembly and I'll do it once I'll be waiting for yet another
> > long run recompile.
> 
> :)

Just FYI, original compiled with gcc-8.2.1:
   text    data     bss     dec     hex filename
   4358     104       0    4462    116e drivers/extcon/extcon-palmas.o

Your patch:
   text    data     bss     dec     hex filename
   4382     104       0    4486    1186 drivers/extcon/extcon-palmas.o

My patch with printing error value:
   text	   data	    bss	    dec	    hex	filename
   4406	    104	      0	   4510	   119e	drivers/extcon/extcon-palmas.o

So even without disassembling numbers speak for themselves :)

	l.

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-18 11:09           ` Chanwoo Choi
@ 2020-02-21  7:47             ` Ladislav Michl
  2020-02-24  2:12               ` Chanwoo Choi
  0 siblings, 1 reply; 18+ messages in thread
From: Ladislav Michl @ 2020-02-21  7:47 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: H. Nikolaus Schaller, MyungJoo Ham, linux-kernel, letux-kernel,
	kernel, linux-omap

On Tue, Feb 18, 2020 at 08:09:16PM +0900, Chanwoo Choi wrote:
> On 2/18/20 7:48 PM, Ladislav Michl wrote:
> > On Tue, Feb 18, 2020 at 07:35:47PM +0900, Chanwoo Choi wrote:
> >> On 2/18/20 7:21 PM, Ladislav Michl wrote:
> >>> On Tue, Feb 18, 2020 at 12:28:25PM +0900, Chanwoo Choi wrote:
> >>>> On 2/17/20 10:38 PM, H. Nikolaus Schaller wrote:
> >>>>> If the gpios are probed after this driver (e.g. if they
> >>>>> come from an i2c expander) there is no need to print an
> >>>>> error message.
> >>>>>
> >>>>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> >>>>> ---
> >>>>>  drivers/extcon/extcon-palmas.c | 8 ++++++--
> >>>>>  1 file changed, 6 insertions(+), 2 deletions(-)
> >>>>>
> >>>>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> >>>>> index edc5016f46f1..cea58d0cb457 100644
> >>>>> --- a/drivers/extcon/extcon-palmas.c
> >>>>> +++ b/drivers/extcon/extcon-palmas.c
> >>>>> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
> >>>>>  
> >>>>>  	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> >>>>>  							GPIOD_IN);
> >>>>> -	if (IS_ERR(palmas_usb->id_gpiod)) {
> >>>>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
> >>>>> +		return -EPROBE_DEFER;
> > 
> > Here we returned...
> 
> hmm. you better to suggest the result of cocci script
> to understand why it is matter.

You can browse similar fixes online :)
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=grep&q=else+after+return

Best regards,
	ladis

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-21  7:47             ` Ladislav Michl
@ 2020-02-24  2:12               ` Chanwoo Choi
  2020-02-24  7:31                 ` Ladislav Michl
  0 siblings, 1 reply; 18+ messages in thread
From: Chanwoo Choi @ 2020-02-24  2:12 UTC (permalink / raw)
  To: Ladislav Michl
  Cc: H. Nikolaus Schaller, MyungJoo Ham, linux-kernel, letux-kernel,
	kernel, linux-omap

On 2/21/20 4:47 PM, Ladislav Michl wrote:
> On Tue, Feb 18, 2020 at 08:09:16PM +0900, Chanwoo Choi wrote:
>> On 2/18/20 7:48 PM, Ladislav Michl wrote:
>>> On Tue, Feb 18, 2020 at 07:35:47PM +0900, Chanwoo Choi wrote:
>>>> On 2/18/20 7:21 PM, Ladislav Michl wrote:
>>>>> On Tue, Feb 18, 2020 at 12:28:25PM +0900, Chanwoo Choi wrote:
>>>>>> On 2/17/20 10:38 PM, H. Nikolaus Schaller wrote:
>>>>>>> If the gpios are probed after this driver (e.g. if they
>>>>>>> come from an i2c expander) there is no need to print an
>>>>>>> error message.
>>>>>>>
>>>>>>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
>>>>>>> ---
>>>>>>>  drivers/extcon/extcon-palmas.c | 8 ++++++--
>>>>>>>  1 file changed, 6 insertions(+), 2 deletions(-)
>>>>>>>
>>>>>>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
>>>>>>> index edc5016f46f1..cea58d0cb457 100644
>>>>>>> --- a/drivers/extcon/extcon-palmas.c
>>>>>>> +++ b/drivers/extcon/extcon-palmas.c
>>>>>>> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
>>>>>>>  
>>>>>>>  	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
>>>>>>>  							GPIOD_IN);
>>>>>>> -	if (IS_ERR(palmas_usb->id_gpiod)) {
>>>>>>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
>>>>>>> +		return -EPROBE_DEFER;
>>>
>>> Here we returned...
>>
>> hmm. you better to suggest the result of cocci script
>> to understand why it is matter.
> 
> You can browse similar fixes online :)
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=grep&q=else+after+return
> 

As you commented, please share the result
of cocci or checkpatch warning. It is simple to finish
this discussion. 

As I commented on other reply,
"I think that my suggestion is better because 'if' and 'else if'
check the error state of same 'palmas_usb->id_gpiod' variable.

If 'if' and 'else if' checks the different variable,
your suggestion is better."


-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

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

* Re: [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER
  2020-02-24  2:12               ` Chanwoo Choi
@ 2020-02-24  7:31                 ` Ladislav Michl
  0 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2020-02-24  7:31 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: H. Nikolaus Schaller, MyungJoo Ham, linux-kernel, letux-kernel,
	kernel, linux-omap

On Mon, Feb 24, 2020 at 11:12:08AM +0900, Chanwoo Choi wrote:
> On 2/21/20 4:47 PM, Ladislav Michl wrote:
> > On Tue, Feb 18, 2020 at 08:09:16PM +0900, Chanwoo Choi wrote:
> >> On 2/18/20 7:48 PM, Ladislav Michl wrote:
> >>> On Tue, Feb 18, 2020 at 07:35:47PM +0900, Chanwoo Choi wrote:
> >>>> On 2/18/20 7:21 PM, Ladislav Michl wrote:
> >>>>> On Tue, Feb 18, 2020 at 12:28:25PM +0900, Chanwoo Choi wrote:
> >>>>>> On 2/17/20 10:38 PM, H. Nikolaus Schaller wrote:
> >>>>>>> If the gpios are probed after this driver (e.g. if they
> >>>>>>> come from an i2c expander) there is no need to print an
> >>>>>>> error message.
> >>>>>>>
> >>>>>>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> >>>>>>> ---
> >>>>>>>  drivers/extcon/extcon-palmas.c | 8 ++++++--
> >>>>>>>  1 file changed, 6 insertions(+), 2 deletions(-)
> >>>>>>>
> >>>>>>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> >>>>>>> index edc5016f46f1..cea58d0cb457 100644
> >>>>>>> --- a/drivers/extcon/extcon-palmas.c
> >>>>>>> +++ b/drivers/extcon/extcon-palmas.c
> >>>>>>> @@ -205,14 +205,18 @@ static int palmas_usb_probe(struct platform_device *pdev)
> >>>>>>>  
> >>>>>>>  	palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id",
> >>>>>>>  							GPIOD_IN);
> >>>>>>> -	if (IS_ERR(palmas_usb->id_gpiod)) {
> >>>>>>> +	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
> >>>>>>> +		return -EPROBE_DEFER;
> >>>
> >>> Here we returned...
> >>
> >> hmm. you better to suggest the result of cocci script
> >> to understand why it is matter.
> > 
> > You can browse similar fixes online :)
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=grep&q=else+after+return
> > 
> 
> As you commented, please share the result
> of cocci or checkpatch warning. It is simple to finish
> this discussion. 

What is happening here? Do we really need tools to see the obvious?
See for example commit 09971adc33b ("staging: iio: addac: Remove unnecessary
else after return"). Running script mentioned in above commit with
"[PATCH v3] extcon: palmas: hide error messages if gpio returns"
applied gives:
~/src/linux$ spatch -sp_file s.cocci -in_place drivers/extcon/extcon-palmas.c
init_defs_builtins: /usr/lib/coccinelle/standard.h
HANDLING: drivers/extcon/extcon-palmas.c
diff = 
--- drivers/extcon/extcon-palmas.c
+++ /tmp/cocci-output-67907-55371b-extcon-palmas.c
@@ -207,7 +207,7 @@ static int palmas_usb_probe(struct platf
 							GPIOD_IN);
 	if (PTR_ERR(palmas_usb->id_gpiod) == -EPROBE_DEFER) {
 		return -EPROBE_DEFER;
-	} else if (IS_ERR(palmas_usb->id_gpiod)) {
+	} if (IS_ERR(palmas_usb->id_gpiod)) {
 		dev_err(&pdev->dev, "failed to get id gpio\n");
 		return PTR_ERR(palmas_usb->id_gpiod);
 	}
@@ -216,7 +216,7 @@ static int palmas_usb_probe(struct platf
 							GPIOD_IN);
 	if (PTR_ERR(palmas_usb->vbus_gpiod) == -EPROBE_DEFER) {
 		return -EPROBE_DEFER;
-	} else if (IS_ERR(palmas_usb->vbus_gpiod)) {
+	} if (IS_ERR(palmas_usb->vbus_gpiod)) {
 		dev_err(&pdev->dev, "failed to get vbus gpio\n");
 		return PTR_ERR(palmas_usb->vbus_gpiod);
 	}

That's why I wrote previously: "Then it is matter of time it triggers
someones cocci script pointing to else after return."
Linux git history proves there are people running such a scripts
and results of such a scripts gets applied.

I do not care too much, you are the one adding more work for
yourself ;-)

	ladis

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

end of thread, other threads:[~2020-02-24  7:31 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20200217133832epcas1p329af393e88fa76189ca141d2534f9ad2@epcas1p3.samsung.com>
2020-02-17 13:38 ` [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER H. Nikolaus Schaller
2020-02-17 13:58   ` H. Nikolaus Schaller
2020-02-17 18:29     ` Ladislav Michl
2020-02-17 18:38       ` H. Nikolaus Schaller
2020-02-17 19:07         ` Ladislav Michl
2020-02-17 19:33           ` H. Nikolaus Schaller
2020-02-17 20:19             ` Ladislav Michl
2020-02-17 20:25               ` H. Nikolaus Schaller
2020-02-18 11:49                 ` Ladislav Michl
2020-02-18 11:13     ` Chanwoo Choi
2020-02-18  3:28   ` Chanwoo Choi
2020-02-18 10:21     ` Ladislav Michl
2020-02-18 10:35       ` Chanwoo Choi
2020-02-18 10:48         ` Ladislav Michl
2020-02-18 11:09           ` Chanwoo Choi
2020-02-21  7:47             ` Ladislav Michl
2020-02-24  2:12               ` Chanwoo Choi
2020-02-24  7:31                 ` Ladislav Michl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).