[PATCH] usb: dwc3-generic: fix CONFIG_DM_REGULATOR-off case

Jan Kiszka jan.kiszka at siemens.com
Thu Oct 10 07:36:39 CEST 2024


On 30.09.24 06:54, Jan Kiszka wrote:
> On 09.08.24 17:19, Caleb Connolly wrote:
>>
>>
>> On 09/08/2024 07:19, Jan Kiszka wrote:
>>> On 08.08.24 16:27, Caleb Connolly wrote:
>>>> Hi Jan,
>>>>
>>>> On 08/08/2024 10:51, Jan Kiszka wrote:
>>>>> From: Jan Kiszka <jan.kiszka at siemens.com>
>>>>>
>>>>> When DM_REGULATOR is disabled, all calls will return -ENOSYS. Account
>>>>> for that so that targets like the IOT2050 will work again.
>>>>>
>>>>> Fixes: de451d5d5b6f ("usb: dwc3-generic: support external vbus
>>>>> regulator")
>>>>> Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
>>>>> ---
>>>>>    drivers/usb/dwc3/dwc3-generic.c | 6 +++---
>>>>>    1 file changed, 3 insertions(+), 3 deletions(-)
>>>>>
>>>>> diff --git a/drivers/usb/dwc3/dwc3-generic.c
>>>>> b/drivers/usb/dwc3/dwc3-generic.c
>>>>> index a9ba315463c..2ab41cbae45 100644
>>>>> --- a/drivers/usb/dwc3/dwc3-generic.c
>>>>> +++ b/drivers/usb/dwc3/dwc3-generic.c
>>>>> @@ -246,12 +246,12 @@ static int dwc3_generic_host_probe(struct
>>>>> udevice *dev)
>>>>>            return rc;
>>>>>          rc = device_get_supply_regulator(dev, "vbus-supply",
>>>>> &priv->vbus_supply);
>>>>> -    if (rc)
>>>>> +    if (rc && rc != -ENOSYS)
>>>>>            debug("%s: No vbus regulator found: %d\n", dev->name, rc);
>>>>>    -    /* Only returns an error if regulator is valid and failed to
>>>>> enable due to a driver issue */
>>>>> +    /* Does not return an error if regulator is invalid - but does so
>>>>> when DM_REGULATOR is disabled */
>>>>>        rc = regulator_set_enable_if_allowed(priv->vbus_supply, true);
>>>>> -    if (rc)
>>>>> +    if (rc && rc != -ENOSYS)
>>>>
>>>> regulator_set_enable_if_allowed() will return 0 if the call to
>>>> regulator_set_enable() returns -ENOSYS
>>>>
>>>> Maybe it would make sense to have the stub implementation of
>>>> regulator_set_enable_if_allowed() return 0?
>>>>
>>>
>>> Possible. Would that be the only case where a stub should not return
>>> ENOSYS? All do so far.
>>>
>>>> Somewhat confusing to check for -ENOSYS here imo, since it isn't really
>>>> obvious when that would be the case.
>>>
>>> But that would still leave is a with a misleading message, even if it is
>>> just a debug output. The absence of a regulator is not per se a bug to
>>> my understanding.
>>
>> Ah good point.
>>
>> Alternatively, maybe it would be easier to gate this code block with if
>> (CONFIG_IS_ENABLED(DM_REGULATOR)?
>>
>> But yeah maybe fine as is.
>>
>> Reviewed-by: Caleb Connolly <caleb.connolly at linaro.org>
> 
> Can this regression fix be merged now, or should I add that gating?
> 

This now also missed the v2024.10 release - can we please merge it now?

Jan

-- 
Siemens AG, Technology
Linux Expert Center


More information about the U-Boot mailing list