[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <0f695009-6785-6576-3882-8e1cf69fe13d@xilinx.com>
Date: Thu, 26 Sep 2019 12:09:50 +0200
From: Michal Simek <michal.simek@...inx.com>
To: Jolly Shah <jolly.shah@...inx.com>, matthias.bgg@...il.com,
andy.gross@...aro.org, shawnguo@...nel.org,
geert+renesas@...der.be, bjorn.andersson@...aro.org,
sean.wang@...iatek.com, m.szyprowski@...sung.com,
michal.simek@...inx.com
Cc: rajanv@...inx.com, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, Tejas Patel <tejas.patel@...inx.com>
Subject: Re: [PATCH v2] soc: xilinx: Set CAP_UNUSABLE requirement for versal
while powering down domain
On 26. 08. 19 22:30, Jolly Shah wrote:
> From: Tejas Patel <tejas.patel@...inx.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@...inx.com>
> Signed-off-by: Jolly Shah <jolly.shah@...inx.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@...ios.com>
> * Jolly Shah <jollys@...inx.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
Powered by blists - more mailing lists