Messages in this thread | | | Subject | Re: [PATCH v2] soc: xilinx: Set CAP_UNUSABLE requirement for versal while powering down domain | From | Michal Simek <> | Date | Thu, 26 Sep 2019 12:09:50 +0200 |
| |
On 26. 08. 19 22:30, Jolly Shah wrote: > From: Tejas Patel <tejas.patel@xilinx.com> > > For "0" requirement which is used to inform firmware that device is > not required currently by master, Versal PLM (Platform Loader and > Manager) which runs on Platform Management Controller and is responsible > platform management of devices that disables clock, power it down > and reset the device. genpd_power_off() is being called during runtime > suspend also. So, if any device goes to runtime suspend state during > resumes it needs to be re-initialized again. It is possible that > drivers do not reinitialize device upon resume from runtime suspend > every time ans so dont want it to be powered down or get reset > during runtime suspend. > > In Versal PLM new PM_CAP_UNUSABLE capability is added, which disables > clock only and avoids power down and reset during runtime suspend. Power > and reset will be gated with core suspend.So, this patch sets > CAPABILITY_UNUSABLE requirement during gpd_power_off() > if platform is other than zynqmp. > > Signed-off-by: Tejas Patel <tejas.patel@xilinx.com> > Signed-off-by: Jolly Shah <jolly.shah@xilinx.com> > ---
Where is the version log?
> drivers/soc/xilinx/zynqmp_pm_domains.c | 10 ++++++++-- > include/linux/firmware/xlnx-zynqmp.h | 3 ++- > 2 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/drivers/soc/xilinx/zynqmp_pm_domains.c b/drivers/soc/xilinx/zynqmp_pm_domains.c > index 600f57c..23d90cb 100644 > --- a/drivers/soc/xilinx/zynqmp_pm_domains.c > +++ b/drivers/soc/xilinx/zynqmp_pm_domains.c > @@ -2,7 +2,7 @@ > /* > * ZynqMP Generic PM domain support > * > - * Copyright (C) 2015-2018 Xilinx, Inc. > + * Copyright (C) 2015-2019 Xilinx, Inc. > * > * Davorin Mista <davorin.mista@aggios.com> > * Jolly Shah <jollys@xilinx.com> > @@ -25,6 +25,8 @@ > > static const struct zynqmp_eemi_ops *eemi_ops; > > +static int min_capability; > + > /** > * struct zynqmp_pm_domain - Wrapper around struct generic_pm_domain > * @gpd: Generic power domain > @@ -106,7 +108,7 @@ static int zynqmp_gpd_power_off(struct generic_pm_domain *domain) > int ret; > struct pm_domain_data *pdd, *tmp; > struct zynqmp_pm_domain *pd; > - u32 capabilities = 0; > + u32 capabilities = min_capability; > bool may_wakeup; > > if (!eemi_ops->set_requirement) > @@ -283,6 +285,10 @@ static int zynqmp_gpd_probe(struct platform_device *pdev) > if (!domains) > return -ENOMEM; > > + if (!of_device_is_compatible(dev->parent->of_node, > + "xlnx,zynqmp-firmware")) > + min_capability = ZYNQMP_PM_CAPABILITY_UNUSABLE;
I have not a problem with this patch but versal firmware is not wired in firmware yet that's why this code shouldn't be called at all.
Can you please wire it?
Thanks, Michal
| |