android_kernel_xiaomi_sm7250/drivers/regulator
Linus Walleij a51d884cc3 regulator: qcom_rpm: Fix circular deferral regression
commit 8478ed5844588703a1a4c96a004b1525fbdbdd5e upstream.

On recent kernels, the PM8058 L16 (or any other PM8058 LDO-regulator)
does not come up if they are supplied by an SMPS-regulator. This
is not very strange since the regulators are registered in a long
array and the L-regulators are registered before the S-regulators,
and if an L-regulator defers, it will never get around to registering
the S-regulator that it needs.

See arch/arm/boot/dts/qcom-apq8060-dragonboard.dts:

pm8058-regulators {
    (...)
    vdd_l13_l16-supply = <&pm8058_s4>;
    (...)

Ooops.

Fix this by moving the PM8058 S-regulators first in the array.

Do the same for the PM8901 S-regulators (though this is currently
not causing any problems with out device trees) so that the pattern
of registration order is the same on all PMnnnn chips.

Fixes: 087a1b5cdd ("regulator: qcom: Rework to single platform device")
Cc: stable@vger.kernel.org
Cc: Andy Gross <agross@kernel.org>
Cc: Bjorn Andersson <andersson@kernel.org>
Cc: Konrad Dybcio <konrad.dybcio@somainline.org>
Cc: linux-arm-msm@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20220909112529.239143-1-linus.walleij@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-10-26 13:19:21 +02:00
..
88pg86x.c
88pm800-regulator.c
88pm8607.c
aat2870-regulator.c
ab3100.c
ab8500-ext.c
ab8500.c
act8865-regulator.c
act8945a-regulator.c
ad5398.c
anatop-regulator.c
arizona-ldo1.c
arizona-micsupp.c
as3711-regulator.c
as3722-regulator.c
axp20x-regulator.c regulator: axp20x: Fix reference cout leak 2021-03-04 09:39:44 +01:00
bcm590xx-regulator.c
bd9571mwv-regulator.c regulator: bd9571mwv: Fix AVS and DVFS voltage range 2021-04-14 08:22:34 +02:00
bd71837-regulator.c
core.c regulator: core: Let boot-on regulators be powered off 2022-01-27 09:04:31 +01:00
cpcap-regulator.c
da903x.c
da9052-regulator.c regulator: da9052: Ensure enough delay time for .set_voltage_time_sel 2021-07-20 16:15:45 +02:00
da9055-regulator.c
da9062-regulator.c
da9063-regulator.c
da9210-regulator.c
da9210-regulator.h
da9211-regulator.c
da9211-regulator.h
db8500-prcmu.c
dbx500-prcmu.c
dbx500-prcmu.h
devres.c
dummy.c
dummy.h
fan53555.c
fixed-helper.c
fixed.c
gpio-regulator.c
helpers.c
hi655x-regulator.c
hi6421-regulator.c
hi6421v530-regulator.c
internal.h
isl6271a-regulator.c
isl9305.c
Kconfig
lm363x-regulator.c
lp872x.c
lp873x-regulator.c
lp3971.c
lp3972.c
lp8755.c
lp8788-buck.c
lp8788-ldo.c
lp87565-regulator.c
ltc3589.c
ltc3676.c
Makefile
max1586.c
max8649.c
max8660.c
max8907-regulator.c
max8925-regulator.c
max8952.c
max8973-regulator.c
max8997-regulator.c
max8998.c
max14577-regulator.c
max77620-regulator.c regulator: max77620: Use device_set_of_node_from_dev() 2021-06-16 11:55:00 +02:00
max77686-regulator.c
max77693-regulator.c
max77802-regulator.c
mc13xxx-regulator-core.c
mc13xxx.h
mc13783-regulator.c
mc13892-regulator.c
mt6311-regulator.c
mt6311-regulator.h
mt6323-regulator.c
mt6380-regulator.c
mt6397-regulator.c
of_regulator.c regulator: of: Fix refcount leak bug in of_get_regulation_constraints() 2022-08-25 11:15:02 +02:00
palmas-regulator.c
pbias-regulator.c
pcap-regulator.c
pcf50633-regulator.c
pfuze100-regulator.c regulator: pfuze100: Fix the global-out-of-bounds access in pfuze100_regulator_probe() 2022-09-28 11:02:52 +02:00
pv88060-regulator.c
pv88060-regulator.h
pv88080-regulator.c
pv88080-regulator.h
pv88090-regulator.c
pv88090-regulator.h
pwm-regulator.c
qcom_rpm-regulator.c regulator: qcom_rpm: Fix circular deferral regression 2022-10-26 13:19:21 +02:00
qcom_smd-regulator.c regulator: qcom_smd: fix for_each_child.cocci warnings 2022-04-15 14:14:42 +02:00
qcom_spmi-regulator.c
qcom-rpmh-regulator.c
rc5t583-regulator.c
rk808-regulator.c
rn5t618-regulator.c
rt5033-regulator.c
s2mpa01.c
s2mps11.c
s5m8767.c regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled 2021-11-26 11:36:00 +01:00
sc2731-regulator.c
sky81452-regulator.c
stm32-vrefbuf.c
stw481x-vmmc.c
sy8106a-regulator.c
ti-abb-regulator.c
tps6105x-regulator.c
tps6507x-regulator.c
tps6524x-regulator.c
tps6586x-regulator.c
tps51632-regulator.c
tps62360-regulator.c
tps65023-regulator.c
tps65086-regulator.c
tps65090-regulator.c
tps65132-regulator.c
tps65217-regulator.c
tps65218-regulator.c
tps65910-regulator.c
tps65912-regulator.c
tps80031-regulator.c
twl6030-regulator.c
twl-regulator.c
uniphier-regulator.c regulator: uniphier: Add missing MODULE_DEVICE_TABLE 2021-07-20 16:15:43 +02:00
userspace-consumer.c
vctrl-regulator.c
vexpress-regulator.c
virtual.c
wm831x-dcdc.c
wm831x-isink.c
wm831x-ldo.c
wm8350-regulator.c
wm8400-regulator.c
wm8994-regulator.c