Re: [PATCH] arm64: dts: qcom: qrb5165-rb5: Disable cpuidle states
From: Sudeep Holla
Date: Thu Oct 20 2022 - 05:31:09 EST
On Wed, Oct 19, 2022 at 01:57:34PM +0200, Ulf Hansson wrote:
> On Tue, 18 Oct 2022 at 16:53, Amit Pundir <amit.pundir@xxxxxxxxxx> wrote:
> >
> > Disable cpuidle states for RB5. These cpuidle states
> > made the device highly unstable and it runs into the
> > following crash frequently:
> >
> > [ T1] vreg_l11c_3p3: failed to enable: -ETIMEDOUT
> > [ T1] qcom-rpmh-regulator 18200000.rsc:pm8150l-rpmh-regulators: ldo11: devm_regulator_register() failed, ret=-110
> > [ T1] qcom-rpmh-regulator: probe of 18200000.rsc:pm8150l-rpmh-regulators failed with error -110
> >
> > Fixes: 32bc936d7321 ("arm64: dts: qcom: sm8250: Add cpuidle states")
> > Signed-off-by: Amit Pundir <amit.pundir@xxxxxxxxxx>
> > ---
> > arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> > index cc003535a3c5..f936c41bfbea 100644
> > --- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> > +++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> > @@ -251,6 +251,14 @@ qca639x: qca639x {
> >
> > };
> >
> > +&LITTLE_CPU_SLEEP_0 {
> > + status = "disabled";
> > +};
> > +
> > +&BIG_CPU_SLEEP_0 {
> > + status = "disabled";
> > +};
> > +
> > &adsp {
> > status = "okay";
> > firmware-name = "qcom/sm8250/adsp.mbn";
> > --
> > 2.25.1
>
> Disabling the CPU idlestates, will revert us back to using only the WFI state.
>
> An option that probably works too is to just drop the idlestate for
> the CPU cluster. Would you mind trying the below and see if that works
> too?
>
Indeed this is was I suggested to check initially. But I was surprised to
see IIUC, Amit just disabled CPU states with above change and got it working.
So it is not cluster state alone causing the issue, is it somehow presence
of both cpu and cluster states ? Am I missing something here.
> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> index c32227ea40f9..c707a49e8001 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> @@ -700,7 +700,6 @@ CPU_PD7: cpu7 {
>
> CLUSTER_PD: cpu-cluster0 {
> #power-domain-cells = <0>;
> - domain-idle-states = <&CLUSTER_SLEEP_0>;
How about just marking CLUSTER_SLEEP_0 state disabled ? That looks cleaner
than deleting this domain-idle-states property here. Also not sure if DTS
warnings will appear if you delete this ?
--
Regards,
Sudeep