Re: [PATCH] arm64: dts: qcom: sc8280xp: Flush RSC sleep & wake votes

From: Bjorn Andersson
Date: Tue May 16 2023 - 17:01:53 EST


On Mon, May 15, 2023 at 11:34:45AM +0200, Konrad Dybcio wrote:
>
>
> On 15.05.2023 04:38, Bjorn Andersson wrote:
> > On Sat, May 13, 2023 at 11:09:07AM +0200, Konrad Dybcio wrote:
> >>
> >>
> >> On 12.05.2023 17:04, Bjorn Andersson wrote:
> >>> The rpmh driver will cache sleep and wake votes until the cluster
> >>> power-domain is about to enter idle, to avoid unnecessary writes. So
> >>> associate the apps_rsc with the cluster pd, so that it can be notified
> >>> about this event.
> >>>
> >>> Without this, only AMC votes are being commited.
> >> Ouch.
> >>
> >> Should we make this required: in bindings and add it to all
> >> platforms?
> >>
> >
> > I though this was an optimization and in the absence of this callback
> > the driver would just write out wake and sleep sets as well. But per the
> > current implementation (and perhaps some underlying cause?) it is indeed
> > required, if you care about power consumption.
> Hm.. since it's not strictly required for operation, would something
> like this be fitting?:
>

I don't think it's required for operation, but the current
implementation does require it.

So I think we should either require it in the binding to mimic the
implementation, or the implementation should handle either case (only
with a performance impact)

> oneOf:
> - required:
> [...]
> - power-domains
>
> - required:
> [...]
> deprecated: true
>
> (if it even works this way)

I don't think it's worth supporting the combinations.

Regards,
Bjorn

>
> Konrad
> >
> >>>
> >>> Signed-off-by: Bjorn Andersson <quic_bjorande@xxxxxxxxxxx>
> >>> ---
> >> Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
> >> Fixes: 152d1faf1e2f ("arm64: dts: qcom: add SC8280XP platform")
> >>
> >
> > The Fixes sounds reasonable.
> >
> > Thanks,
> > Bjorn
> >
> >> Konrad
> >>> arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 1 +
> >>> 1 file changed, 1 insertion(+)
> >>>
> >>> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> >>> index 8fa9fbfe5d00..5c68f2182c2f 100644
> >>> --- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> >>> +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> >>> @@ -3982,6 +3982,7 @@ apps_rsc: rsc@18200000 {
> >>> qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>,
> >>> <WAKE_TCS 3>, <CONTROL_TCS 1>;
> >>> label = "apps_rsc";
> >>> + power-domains = <&CLUSTER_PD>;
> >>>
> >>> apps_bcm_voter: bcm-voter {
> >>> compatible = "qcom,bcm-voter";