[PATCH] usb: onboard-hub: Don't disable regulator in remove() callback

Patrice CHOTARD patrice.chotard at foss.st.com
Tue Apr 18 11:14:35 CEST 2023


Hi Marek

On 4/18/23 10:25, Marek Vasut wrote:
> On 4/18/23 09:21, Patrice CHOTARD wrote:
>> Hi Marek
> 
> Hello Patrice,
> 
>> On 4/17/23 19:00, Marek Vasut wrote:
>>> On 4/17/23 18:56, Patrice Chotard wrote:
>>>> In case USB hub regulator is shared, unexpected behavior occurs.
>>>> On stm32mp135f-dk, stm32mp157c-ev1 and stm32mp157x-dkx, regulator
>>>> v3v3 is shared between several IP/devices (USB, panel, ethernet phy,
>>>> camera, ...).
>>>> Running command "usb stop", v3v3 regulator is switched off and
>>>> the splashscreen content disappear.
>>>>
>>>> v3v3 shouldn't be disabled on usb_onboard_hub_remove() callback.
>>>
>>> Isn't the regulator enable/disable refcounted ?
>>
>> There is no refcount on regulator that's why we let regulator enable.
> 
> Can we add that, instead of hacking around the missing refcount in every driver ?

I agree, it should a nice solution but, there is a but ;-)
 _ it's the same situation for clocks and resets, there is no ref counter.
 _ what about side effects by adding ref counter where some platforms does 
   several enable on the same regulator (or even clock or reset) and only one
   disable on it thinking that it's off ? or introduce new regulator_shared_xxx() API 
   to avoid side-effect with existing code.
 _ unfortunately, currently, i didn't get enough bandwidth to address these points :-(.

Patrice


More information about the U-Boot mailing list