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

From: Konrad Dybcio
Date: Wed May 17 2023 - 17:24:04 EST




On 16.05.2023 23:01, Bjorn Andersson wrote:
> 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)
Let's just require it then.

Konrad
>
>> 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";