Message ID | 20230512150425.3171122-1-quic_bjorande@quicinc.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp5189297vqo; Fri, 12 May 2023 08:22:14 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7iVA83i5g/Dg4VBQdkK5SyYhZfmZ9cfJT+kNinIODtFbw6kSuwnIRSpgCYqs776nnQM6Ex X-Received: by 2002:a17:903:2448:b0:1ac:3642:bff3 with SMTP id l8-20020a170903244800b001ac3642bff3mr32193638pls.38.1683904933759; Fri, 12 May 2023 08:22:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683904933; cv=none; d=google.com; s=arc-20160816; b=nYqDSqclXo1ic06neSGXncYpF9wCx59pJC6pubwe5ksFtSMxDWTFXYHRG2Rm3HZkm8 aKX2gSVdSUm5xIT67COCEbARYJxdGJWYg2XrR5U+AIj2fEpRMwF8KBnapbHPV0r3Xtw6 8GvBKO3H02deHY5L87NxnWiwjHhaLHAEuiV6oWXD//R0kYu8jnopj9Khxf7MG9PDcb9Y telQNx6XRkmWmHKtfIXwfMwrTn3AIfngQv5e+85GwmCekbC/55NuIq9Zyr4vrpvtdELU nIuUO1H1FO7O8hOt8EDyPfjTWv4Y5AIN9Mabw/Yt7XhEtV9QTvcc1gXxqxOqquBxKSec pESw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=NCeAupFipwrt8mD4aFJWb678AM5yOEw1p39DaJCb9g4=; b=AB6gcqlBDf8feS9wURCyBK7W1DEFdnO15r2QZDPYxV/bg2Hw9+7GdOTpvOHG59ZDRO 30/PDMBzvcfQTdYljnROj220WaHpWX5vYYpx4e8OmFmhay3eP4WhozMtksQLnas35huF 2qE/LdxO6UtGhqurPl91UlZKpdtNg3J/kqFX4F+1ECGxD9Bt3AHyqWoJlyd5wBlNhXuu 6VFoWE6ENZT3pXKVqZ0WUZ2mVVGcuphlvLA7bV76c2AB8pcJruHCigchcsHwO/V9I3hB p+ALWq0K1I/7Cx5l2Qu1cBJHsSkG6JwxLqK0pn24ysSg5T8bIrNQ0RHrazTAlqathwpr cv/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=EdTDwTx6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n13-20020a170903110d00b001ab0acfc1edsi10112046plh.262.2023.05.12.08.22.01; Fri, 12 May 2023 08:22:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=EdTDwTx6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241699AbjELPFE (ORCPT <rfc822;peekingduck44@gmail.com> + 99 others); Fri, 12 May 2023 11:05:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52768 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241696AbjELPEr (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 12 May 2023 11:04:47 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E16676A6; Fri, 12 May 2023 08:04:41 -0700 (PDT) Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34CDJomA006467; Fri, 12 May 2023 15:04:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding : content-type; s=qcppdkim1; bh=NCeAupFipwrt8mD4aFJWb678AM5yOEw1p39DaJCb9g4=; b=EdTDwTx6jaBZSROgztMHfMydriRyo6Utb90xO8qtlGBHP39uvjd4TT2QJ/FV/Cz2bbD7 B/8M97whEL/SPEGywDZbkmwZCSvIIB6tyFzHTRuylVlPKuYPEf0LFSDW8YwpIYGpYH// 1uSR8vDz4lxhPY1Eg69py66rMIAUlw3eC/7iAit3cQDh+pHG/Mj1wNNBHwq2+8izfqoD 62UfXoQ2FSvMjRg6kyU4w8XcyEfiXNVdu916hJulIfQqw+cZVbIWdcmAPh0s+H/696+9 grEB/xto5YWYZYy0kg+VRINYCl7UE/qYcug3jmaLuZEeeSSNV++WZeT5Q2ar6I/Qkp8J 8w== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3qhh390xfj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 12 May 2023 15:04:31 +0000 Received: from nalasex01c.na.qualcomm.com (nalasex01c.na.qualcomm.com [10.47.97.35]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 34CF4UCa004240 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 12 May 2023 15:04:30 GMT Received: from hu-bjorande-lv.qualcomm.com (10.49.16.6) by nalasex01c.na.qualcomm.com (10.47.97.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Fri, 12 May 2023 08:04:30 -0700 From: Bjorn Andersson <quic_bjorande@quicinc.com> To: Andy Gross <agross@kernel.org>, Bjorn Andersson <andersson@kernel.org>, Konrad Dybcio <konrad.dybcio@linaro.org> CC: Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, <linux-arm-msm@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org> Subject: [PATCH] arm64: dts: qcom: sc8280xp: Flush RSC sleep & wake votes Date: Fri, 12 May 2023 08:04:25 -0700 Message-ID: <20230512150425.3171122-1-quic_bjorande@quicinc.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01b.na.qualcomm.com (10.47.209.197) To nalasex01c.na.qualcomm.com (10.47.97.35) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: TUEEDQSV5vg-O2UHV8zcMAP2RPpwr321 X-Proofpoint-ORIG-GUID: TUEEDQSV5vg-O2UHV8zcMAP2RPpwr321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-12_09,2023-05-05_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 clxscore=1015 mlxscore=0 impostorscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305120124 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765702299929844101?= X-GMAIL-MSGID: =?utf-8?q?1765702299929844101?= |
Series |
arm64: dts: qcom: sc8280xp: Flush RSC sleep & wake votes
|
|
Commit Message
Bjorn Andersson
May 12, 2023, 3:04 p.m. UTC
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.
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
---
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 1 +
1 file changed, 1 insertion(+)
Comments
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? > > Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Fixes: 152d1faf1e2f ("arm64: dts: qcom: add SC8280XP platform") 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";
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. > > > > Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> > > --- > Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> > 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";
On Fri, 12 May 2023 08:04:25 -0700, 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. > > [...] Applied, thanks! [1/1] arm64: dts: qcom: sc8280xp: Flush RSC sleep & wake votes commit: ce7c014937c442be677963848c7db62eccd94eac Best regards,
On Fri, May 12, 2023 at 08:04:25AM -0700, 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. > > Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> It still didn't fix the BCM vote issue I'm seeing on the CRD but that might be due to RPMh resources not entering sleep mode to apply the sleep vote flushed with the help of this patch. Acked-by: Manivannan Sadhasivam <mani@kernel.org> - Mani > --- > 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"; > -- > 2.25.1 >
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?: oneOf: - required: [...] - power-domains - required: [...] deprecated: true (if it even works this way) Konrad > >>> >>> Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> >>> --- >> Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> >> 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";
On Fri, May 12, 2023 at 08:04:25AM -0700, 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. I'm sure I'm missing some details here, but from reading (and tracing) the code it looks like the cached votes are still being flushed albeit via rpmh_rsc_cpu_pm_callback() as the individual CPUs go down. There wasn't really any obvious motivation in the series adding support for the cluster domain as to why the new mechanism is preferred (e.g. if this is an actual fix or just an optimisation done to align with downstream): https://lore.kernel.org/all/20221018152837.619426-1-ulf.hansson@linaro.org/ Either way, this appears to work as intended even if it does not in itself have any significant effect on the X13s power consumption (in idle or suspend). > Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> Reviewed-by: Johan Hovold <johan+linaro@kernel.org> Tested-by: Johan Hovold <johan+linaro@kernel.org> Johan
On Sun, May 14, 2023 at 07:38:28PM -0700, 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. > > > > > > > Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> > > > --- > > Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> > > Fixes: 152d1faf1e2f ("arm64: dts: qcom: add SC8280XP platform") > > > > The Fixes sounds reasonable. Note that support for the cluster domain was not added until 6.2 and commit 25092e6100ac ("soc: qcom: rpmh-rsc: Attach RSC to cluster PM domain") while support for sc8280xp went into 5.19 IIRC. Johan
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@quicinc.com> > >>> --- > >> Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> > >> 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";
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@quicinc.com> >>>>> --- >>>> Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> >>>> 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";
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";