[RFC PATCH 2/2] PM / devfreq: rk3399_dmc: Block PMU during transitions

Heiko Stuebner heiko at sntech.de
Sun May 8 08:07:09 PDT 2022


Am Samstag, 7. Mai 2022, 16:21:59 CEST schrieb Chanwoo Choi:
> On 22. 4. 14. 08:13, Chanwoo Choi wrote:
> > On 22. 4. 14. 07:45, Heiko Stübner wrote:
> >> Hi,
> >>
> >> Am Donnerstag, 14. April 2022, 00:14:40 CEST schrieb Chanwoo Choi:
> >>> On 22. 4. 6. 10:48, Brian Norris wrote:
> >>>> See the previous patch ("soc: rockchip: power-domain: Manage resource
> >>>> conflicts with firmware") for a thorough explanation of the conflicts.
> >>>> While ARM Trusted Firmware may be modifying memory controller and
> >>>> power-domain states, we need to block the kernel's power-domain driver.
> >>>>
> >>>> If the power-domain driver is disabled, there is no resource conflict
> >>>> and this becomes a no-op.
> >>>>
> >>>> Signed-off-by: Brian Norris <briannorris at chromium.org>
> >>>> ---
> >>>>
> >>>>    drivers/devfreq/rk3399_dmc.c | 13 +++++++++++++
> >>>>    1 file changed, 13 insertions(+)
> >>>>
> >>>> diff --git a/drivers/devfreq/rk3399_dmc.c 
> >>>> b/drivers/devfreq/rk3399_dmc.c
> >>>> index e494d1497d60..daff40702615 100644
> >>>> --- a/drivers/devfreq/rk3399_dmc.c
> >>>> +++ b/drivers/devfreq/rk3399_dmc.c
> >>>> @@ -21,6 +21,7 @@
> >>>>    #include <linux/rwsem.h>
> >>>>    #include <linux/suspend.h>
> >>>> +#include <soc/rockchip/pm_domains.h>
> >>>>    #include <soc/rockchip/rk3399_grf.h>
> >>>>    #include <soc/rockchip/rockchip_sip.h>
> >>>> @@ -93,6 +94,16 @@ static int rk3399_dmcfreq_target(struct device 
> >>>> *dev, unsigned long *freq,
> >>>>        mutex_lock(&dmcfreq->lock);
> >>>> +    /*
> >>>> +     * Ensure power-domain transitions don't interfere with ARM 
> >>>> Trusted
> >>>> +     * Firmware power-domain idling.
> >>>> +     */
> >>>> +    err = rockchip_pmu_block();
> >>>> +    if (err) {
> >>>> +        dev_err(dev, "Failed to block PMU: %d\n", err);
> >>>> +        goto out_unlock;
> >>>> +    }
> >>>> +
> >>>>        /*
> >>>>         * Some idle parameters may be based on the DDR controller 
> >>>> clock, which
> >>>>         * is half of the DDR frequency.
> >>>> @@ -198,6 +209,8 @@ static int rk3399_dmcfreq_target(struct device 
> >>>> *dev, unsigned long *freq,
> >>>>        dmcfreq->volt = target_volt;
> >>>>    out:
> >>>> +    rockchip_pmu_unblock();
> >>>> +out_unlock:
> >>>>        mutex_unlock(&dmcfreq->lock);
> >>>>        return err;
> >>>>    }
> >>>
> >>> Acked-by: Chanwoo Choi <cw00.choi at samsung.com>
> >>
> >> so I guess you're ok with me picking up both patches, right?
> >> [Just making sure :-) ]
> > 
> > This patch have the dependency of latest devfreq-next branch.
> > So that need to make the immutable branch between rockchip and devfreq.
> > 
> 
> Hi Heiko and Brian,
> 
> Is there any other progress?
> 
> IMHO, if rockchip maintainer reply the acked-by from patch1
> and then agree these patches to be applied to devfreq.git,
> I can take them.

sounds good to me. Patch1 looks good and correct to me, so
I've added a Reviewed-by for it and it defintily makes sense for
both to go through the devfreq tree then, so we don't need
additional stable-branches :-)

Thanks
Heiko





More information about the Linux-rockchip mailing list