On Wed, 7 Jun 2023 at 13:19, Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > > On 07/06/2023 01:34, Doug Anderson wrote: > > Hi, > > > > On Fri, Jun 2, 2023 at 9:12 AM Amit Pundir <amit.pundir@xxxxxxxxxx> wrote: > >> > >> Move lvs1 and lvs2 regulator nodes up in the rpmh-regulators > >> list to workaround a boot regression uncovered by the upstream > >> commit ad44ac082fdf ("regulator: qcom-rpmh: Revert "regulator: > >> qcom-rpmh: Use PROBE_FORCE_SYNCHRONOUS""). > >> > >> Without this fix DB845c fail to boot at times because one of the > >> lvs1 or lvs2 regulators fail to turn ON in time. > >> > >> Link: https://lore.kernel.org/all/CAMi1Hd1avQDcDQf137m2auz2znov4XL8YGrLZsw5edb-NtRJRw@xxxxxxxxxxxxxx/ > >> Signed-off-by: Amit Pundir <amit.pundir@xxxxxxxxxx> > >> --- > >> arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 24 +++++++++++----------- > >> 1 file changed, 12 insertions(+), 12 deletions(-) > >> > >> diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts > >> index e14fe9bbb386..df2fde9063dc 100644 > >> --- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts > >> +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts > >> @@ -301,6 +301,18 @@ regulators-0 { > >> vdd-l26-supply = <&vreg_s3a_1p35>; > >> vin-lvs-1-2-supply = <&vreg_s4a_1p8>; > >> > >> + vreg_lvs1a_1p8: lvs1 { > >> + regulator-min-microvolt = <1800000>; > >> + regulator-max-microvolt = <1800000>; > >> + regulator-always-on; > >> + }; > >> + > >> + vreg_lvs2a_1p8: lvs2 { > >> + regulator-min-microvolt = <1800000>; > >> + regulator-max-microvolt = <1800000>; > >> + regulator-always-on; > >> + }; > >> + > >> vreg_s3a_1p35: smps3 { > >> regulator-min-microvolt = <1352000>; > >> regulator-max-microvolt = <1352000>; > >> @@ -381,18 +393,6 @@ vreg_l26a_1p2: ldo26 { > >> regulator-max-microvolt = <1200000>; > >> regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > >> }; > >> - > >> - vreg_lvs1a_1p8: lvs1 { > >> - regulator-min-microvolt = <1800000>; > >> - regulator-max-microvolt = <1800000>; > >> - regulator-always-on; > >> - }; > >> - > >> - vreg_lvs2a_1p8: lvs2 { > >> - regulator-min-microvolt = <1800000>; > >> - regulator-max-microvolt = <1800000>; > >> - regulator-always-on; > >> - }; > > > > This is a hack, but it at least feels less bad than reverting the > > async probe patch. I'll leave it to Bjorn to decide if he's OK with > > it. Personally, it feels like this would deserve a comment in the dts > > to document that these regulators need to be listed first. > > > > Ideally, we could still work towards a root cause. I added a few more > > ideas to help with root causing in reply to the original thread about > > this. > > > > https://lore.kernel.org/r/CAD=FV=UKyjRNZG-ED2meUAR9aXdco+AbUTHiKixTzjCkaJbjTg@xxxxxxxxxxxxxx/ > > We do not shape DTS based on given OS behavior. AOSP needs this, BSD > needs that and Linux needs something else. Next time someone will move > these regulators down because on his system probing is from end of list, > not beginning and he has the same problem. > > No, really, are we going to reshuffle nodes because AOSP needs it? Hi, other than the fact that I reproduced it on AOSP, there is nothing AOSP specific in this patch. I'm sure there may be another platforms/OS (which load kernel modules from a ramdisk) that may trip on this bug. But I can try reproducing it on an OS of your choice if it helps. Regards, Amit Pundir > > Best regards, > Krzysztof >