[PATCH v3 04/11] imx8mp: power-domain: Don't power off pd_bus

Marek Vasut marex at denx.de
Fri Mar 15 10:13:40 CET 2024


On 3/15/24 6:31 AM, Sumit Garg wrote:
> On Thu, 14 Mar 2024 at 09:45, Marek Vasut <marex at denx.de> wrote:
>>
>> On 3/12/24 8:03 AM, Sumit Garg wrote:
>>> power_domain_on/off() isn't refcounted and power domain bus shouldn't be
>>> turned off for a single peripheral domain as it would negatively affect
>>> other peripheral domains. So lets just skip turning off bus power
>>> domain.
>>
>> What exactly is the issue and how did you trigger it ?
>>
>> Details please.
> 
> I suppose the issue can be triggered via the "=> usb start => usb
> stop" sequence where one of the USB controllers is configured in
> peripheral mode.

'usb start ; usb stop' causes no problems on MX8MP , maybe the test case 
is more extensive ?

Please, write down the necessary steps to reproduce this problem, and 
what happens when that problem occurs.

>>> Fixes: 898e7610c62a ("imx: power-domain: Add i.MX8MP HSIOMIX driver")
>>> Signed-off-by: Sumit Garg <sumit.garg at linaro.org>
>>> ---
>>>    drivers/power/domain/imx8mp-hsiomix.c | 6 +-----
>>>    1 file changed, 1 insertion(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/power/domain/imx8mp-hsiomix.c b/drivers/power/domain/imx8mp-hsiomix.c
>>> index e2d772c5ec7..448746432a2 100644
>>> --- a/drivers/power/domain/imx8mp-hsiomix.c
>>> +++ b/drivers/power/domain/imx8mp-hsiomix.c
>>> @@ -50,7 +50,7 @@ static int imx8mp_hsiomix_on(struct power_domain *power_domain)
>>>
>>>        ret = power_domain_on(domain);
>>>        if (ret)
>>> -             goto err_pd;
>>> +             return ret;
>>>
>>>        ret = clk_enable(&priv->clk_usb);
>>>        if (ret)
>>> @@ -63,8 +63,6 @@ static int imx8mp_hsiomix_on(struct power_domain *power_domain)
>>>
>>>    err_clk:
>>>        power_domain_off(domain);
>>> -err_pd:
>>> -     power_domain_off(&priv->pd_bus);
>>>        return ret;
>>
>> Why not add counter into imx8mp_hsiomix_priv structure in this driver ?
> 
> Sure I can do that but do you think the current approach can have any
> side effects?

Bus domain not getting cycled (which can leave it in some odd state), 
and increased power consumption if the next stage doesn't turn the 
domain off.


More information about the U-Boot mailing list