[Letux-kernel] [PATCH v3] extcon: palmas: hide error messages if gpio returns -EPROBE_DEFER

Chanwoo Choi cw00.choi at samsung.com
Tue Feb 18 12:09:16 CET 2020


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 at 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


More information about the Letux-kernel mailing list