[PATCH] usb: ehci-mx6: replace regulator_set_enable with *_if_allowed
Eugen Hristev
eugen.hristev at collabora.com
Thu May 4 13:51:48 CEST 2023
On 5/4/23 14:41, Marek Vasut wrote:
> On 5/4/23 10:12, Eugen Hristev wrote:
>> On 5/4/23 00:52, Marek Vasut wrote:
>>> On 5/2/23 18:13, Tim Harvey wrote:
>>>> On Mon, May 1, 2023 at 11:51 PM Eugen Hristev
>>>> <eugen.hristev at collabora.com> wrote:
>>>>>
>>>>> regulator_set_enable_if_allowed already handles cases when the
>>>>> regulator is already enabled, or already disabled, and does not
>>>>> treat these as errors.
>>>>> With this change, the driver can work correctly even if the regulator
>>>>> is already taken or already disabled by another consumer.
>>>>>
>>>>> Signed-off-by: Eugen Hristev <eugen.hristev at collabora.com>
>>>>> ---
>>>>> Hi Tim,
>>>>>
>>>>> I have not tested this as I do not have a mx6 board. can you please
>>>>> try it ?
>>>>>
>>>>> Thanks,
>>>>> Eugen
>>>>
>>>> Eugen,
>>>>
>>>> This does resolve the issue that occurs after your refcount series [1].
>>>>
>>>> However after thinking about this more and seeing Marek's responses
>>>> this wasn't an issue of multiple consumers sharing the same regulator.
>>>> Instead this particular issue was that the vbus regulator is getting
>>>> enabled twice without being disabled.
>>
>> This kind of issues can be uncovered when we add the refcounter :)
>
> Yeah, and that's a good thing. The refcounter is much appreciated (am I
> repeating myself?)
>
>> On one hand I am happy to uncover such bugs.
>> However, this leads me to wonder, even without a refcount, even
>> without my series, enabling a regulator that is already enabled should
>> return -EALREADY
>
> I don't that so, you can have regulators which supply multiple things
> and which are claimed by multiple driver instances, at which point they
> will each enable the regulator (refcount++) and that shouldn't end up
> returning -EALREADY . Right ?
That was my thought. And I was returning success if regulator was
already enabled.
Then Simon asked me to return error codes on each path (review on the v2
of the patches):
https://marc.info/?l=u-boot&m=168012024923488&w=2
>
> One such example is buck regulator supplying e.g. SD and eMMC Vcc .
>
>> On the other hand, it appears it will take longer to get the refcount
>> applied though.
>
> I think we need to sort out the fallout, but that's probably still fine.
More information about the U-Boot
mailing list