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

From: Ulf Hansson
Date: Wed Feb 07 2024 - 06:40:45 EST


On Tue, 30 Jan 2024 at 13:39, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote:
>
> Rafael, my plan is queue up this series via my pmdomain tree. Please let me know
> if you see any issues with that, especially around patch1.
>
> Updates in v3:
> - Added tested-by, reviewed-by and suggested-by tags. No other changes
> have been made.
>
> 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
>
> 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(-)
>
>

I have now applied this to my next branch to my pmdomain tree, to get
it more tested in linux-next.

Please let me know if there are objections to this or if any of you
want to provide an ack/tested/reviewed-by tag, thanks!

Kind regards
Uffe