[RFC PATCH 0/3] opp: required_opps: Power on genpd, scale down in reverse order

From: Stephan Gerhold
Date: Thu Jul 30 2020 - 04:05:16 EST


I'm trying to get CPR (Core Power Reduction, AVS) working for MSM8916 on mainline.
Shortly said there are two power domains that must be scaled with the CPU OPP table:

- (VDD)MX
- CPR

My idea for this was to add both as "required-opps" to the CPR OPP table
and let the OPP core take care of all the scaling.

There are two remaining problems that need to be addressed for that to work:

1. The power domains should be scaled down in reverse order
(MX, CPR when scaling up, CPR, MX when scaling down).
2. Something has to enable the virtual genpd devices to make the rpmpd driver
actually respect the performance states we vote for.

Both issues were briefly discussed before (see links in the patches),
but I think we did not agree on an exact solution yet. After some consideration,
I thought it would be best to address these directly in the OPP core.

However, note that this patch is RFC because it is just supposed to initiate
discussion if alternative solutions would be better. :)

Stephan Gerhold (3):
opp: Reduce code duplication in _set_required_opps()
opp: Set required OPPs in reverse order when scaling down
opp: Power on (virtual) power domains managed by the OPP core

drivers/opp/core.c | 115 ++++++++++++++++++++++++++++++++++++---------
drivers/opp/opp.h | 1 +
2 files changed, 93 insertions(+), 23 deletions(-)

--
2.27.0