Re: [PATCH v2 0/5] PM: domains: Add helpers for multi PM domains to avoid open-coding

From: Ulf Hansson
Date: Fri Jan 26 2024 - 11:13:01 EST


On Fri, 5 Jan 2024 at 17:01, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote:
>
> Updates in v2:
> - Ccing Daniel Baluta and Iuliana Prodan the NXP remoteproc patches to
> requests help with testing.
> - Fixed NULL pointer bug in patch1, pointed out by Nikunj.
> - Added some tested/reviewed-by tags.
>
>
> Attaching/detaching of a device to multiple PM domains has started to become a
> common operation for many drivers, typically during ->probe() and ->remove().
> In most cases, this has lead to lots of boilerplate code in the drivers.
>
> This series adds a pair of helper functions to manage the attach/detach of a
> device to its multiple PM domains. Moreover, a couple of drivers have been
> converted to use the new helpers as a proof of concept.
>
> Note 1)
> The changes in the drivers have only been compile tested, while the helpers
> have been tested along with a couple of local dummy drivers that I have hacked
> up to model both genpd providers and genpd consumers.
>
> Note 2)
> I was struggling to make up mind if we should have a separate helper to attach
> all available power-domains described in DT, rather than providing "NULL" to the
> dev_pm_domain_attach_list(). I decided not to, but please let me know if you
> prefer the other option.
>
> Note 3)
> For OPP integration, as a follow up I am striving to make the
> dev_pm_opp_attach_genpd() redundant. Instead I think we should move towards
> using dev_pm_opp_set_config()->_opp_set_required_devs(), which would allow us to
> use the helpers that $subject series is adding.
>
> Kind regards
> Ulf Hansson

Rafael, Greg, do have any objections to this series or would you be
okay that I queue this up via my pmdomain tree?

Kind regards
Uffe

>
>
> Ulf Hansson (5):
> PM: domains: Add helper functions to attach/detach multiple PM domains
> remoteproc: imx_dsp_rproc: Convert to
> dev_pm_domain_attach|detach_list()
> remoteproc: imx_rproc: Convert to dev_pm_domain_attach|detach_list()
> remoteproc: qcom_q6v5_adsp: Convert to
> dev_pm_domain_attach|detach_list()
> media: venus: Convert to dev_pm_domain_attach|detach_list() for vcodec
>
> drivers/base/power/common.c | 134 +++++++++++++++
> drivers/media/platform/qcom/venus/core.c | 12 +-
> drivers/media/platform/qcom/venus/core.h | 7 +-
> .../media/platform/qcom/venus/pm_helpers.c | 48 ++----
> drivers/remoteproc/imx_dsp_rproc.c | 82 +--------
> drivers/remoteproc/imx_rproc.c | 73 +-------
> drivers/remoteproc/qcom_q6v5_adsp.c | 160 ++++++++----------
> include/linux/pm_domain.h | 38 +++++
> 8 files changed, 289 insertions(+), 265 deletions(-)
>
> --
> 2.34.1