Quoting Bjorn Andersson (2021-10-04 20:37:32) > The general expectation is that powering on a power-domain should make > the power domain deliver some power, and if a specific performance state > is needed further requests has to be made. > > But in contrast with other power-domain implementations (e.g. rpmpd) the > RPMh does not have an interface to enable the power, so the driver has > to vote for a particular corner (performance level) in rpmh_power_on(). > > But the corner is never initialized, so a typical request to simply > enable the power domain would not actually turn on the hardware. Further > more, when no more clients vote for a performance state (i.e. the > aggregated vote is 0) the power domain would be turned off. > > Fix both of these issues by always voting for a corner with non-zero > value, when the power domain is enabled. > > The tracking of the lowest non-zero corner is performed to handle the > corner case if there's ever a domain with a non-zero lowest corner, in > which case both rpmh_power_on() and rpmh_rpmhpd_set_performance_state() > would be allowed to use this lowest corner. > > Fixes: 279b7e8a62cc ("soc: qcom: rpmhpd: Add RPMh power domain driver") > Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> > --- Looks ok to me. Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx>