sst-linux/drivers/regulator
Ricardo Ribalda ad1336274f regulator: da9211: Use irq handler when ready
[ Upstream commit 02228f6aa6a64d588bc31e3267d05ff184d772eb ]

If the system does not come from reset (like when it is kexec()), the
regulator might have an IRQ waiting for us.

If we enable the IRQ handler before its structures are ready, we crash.

This patch fixes:

[    1.141839] Unable to handle kernel read from unreadable memory at virtual address 0000000000000078
[    1.316096] Call trace:
[    1.316101]  blocking_notifier_call_chain+0x20/0xa8
[    1.322757] cpu cpu0: dummy supplies not allowed for exclusive requests
[    1.327823]  regulator_notifier_call_chain+0x1c/0x2c
[    1.327825]  da9211_irq_handler+0x68/0xf8
[    1.327829]  irq_thread+0x11c/0x234
[    1.327833]  kthread+0x13c/0x154

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Reviewed-by: Adam Ward <DLG-Adam.Ward.opensource@dm.renesas.com>
Link: https://lore.kernel.org/r/20221124-da9211-v2-0-1779e3c5d491@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-01-18 11:58:22 +01:00
..
88pg86x.c
88pm800-regulator.c
88pm8607.c
aat2870-regulator.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
atc260x-regulator.c
axp20x-regulator.c
bcm590xx-regulator.c
bd718x7-regulator.c
bd9571mwv-regulator.c
bd9576-regulator.c
bd71815-regulator.c
bd71828-regulator.c
core.c regulator: core: fix deadlock on regulator enable 2022-12-31 13:33:10 +01:00
cpcap-regulator.c
cros-ec-regulator.c
da903x-regulator.c
da9052-regulator.c
da9055-regulator.c
da9062-regulator.c
da9063-regulator.c
da9121-regulator.c
da9121-regulator.h
da9210-regulator.c
da9210-regulator.h
da9211-regulator.c regulator: da9211: Use irq handler when ready 2023-01-18 11:58:22 +01:00
da9211-regulator.h
db8500-prcmu.c
dbx500-prcmu.c
dbx500-prcmu.h
devres.c regulator: core: Use different devices for resource allocation and DT lookup 2022-12-31 13:33:04 +01:00
dummy.c
dummy.h
fan53555.c
fan53880.c
fixed-helper.c
fixed.c
gpio-regulator.c
helpers.c
hi655x-regulator.c
hi6421-regulator.c
hi6421v530-regulator.c
hi6421v600-regulator.c
internal.h
irq_helpers.c
isl6271a-regulator.c
isl9305.c
Kconfig - Core Frameworks 2022-10-07 11:24:20 -07:00
lm363x-regulator.c
lochnagar-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
max597x-regulator.c
max1586.c
max8649.c
max8660.c
max8893.c
max8907-regulator.c
max8925-regulator.c
max8952.c
max8973-regulator.c
max8997-regulator.c
max8998.c
max14577-regulator.c
max20086-regulator.c
max77620-regulator.c
max77650-regulator.c
max77686-regulator.c
max77693-regulator.c
max77802-regulator.c
max77826-regulator.c
mc13xxx-regulator-core.c
mc13xxx.h
mc13783-regulator.c
mc13892-regulator.c
mcp16502.c
mp886x.c
mp5416.c
mp8859.c
mpq7920.c
mpq7920.h
mt6311-regulator.c
mt6311-regulator.h
mt6315-regulator.c
mt6323-regulator.c
mt6331-regulator.c
mt6332-regulator.c
mt6358-regulator.c
mt6359-regulator.c
mt6360-regulator.c
mt6370-regulator.c
mt6380-regulator.c
mt6397-regulator.c
mtk-dvfsrc-regulator.c
of_regulator.c regulator: core: Use different devices for resource allocation and DT lookup 2022-12-31 13:33:04 +01:00
palmas-regulator.c
pbias-regulator.c
pca9450-regulator.c
pcap-regulator.c
pcf50633-regulator.c
pf8x00-regulator.c
pfuze100-regulator.c
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
qcom_smd-regulator.c
qcom_spmi-regulator.c
qcom_usb_vbus-regulator.c
qcom-labibb-regulator.c regulator: qcom-labibb: Fix missing of_node_put() in qcom_labibb_regulator_probe() 2022-12-31 13:32:25 +01:00
qcom-rpmh-regulator.c regulator: qcom-rpmh: Fix PMR735a S3 regulator spec 2022-12-31 13:32:11 +01:00
rc5t583-regulator.c
rk808-regulator.c
rn5t618-regulator.c
rohm-regulator.c
rpi-panel-attiny-regulator.c
rt4801-regulator.c
rt4831-regulator.c
rt5033-regulator.c
rt5120-regulator.c
rt5190a-regulator.c
rt5759-regulator.c regulator: rt5759: fix OOB in validate_desc() 2022-11-16 10:50:17 +00:00
rt6160-regulator.c
rt6245-regulator.c
rtmv20-regulator.c
rtq2134-regulator.c
rtq6752-regulator.c
s2mpa01.c
s2mps11.c
s5m8767.c
sc2731-regulator.c
scmi-regulator.c
sky81452-regulator.c
slg51000-regulator.c regulator: slg51000: Wait after asserting CS pin 2022-11-18 14:02:11 +00:00
slg51000-regulator.h
sm5703-regulator.c
stm32-booster.c
stm32-pwr.c
stm32-vrefbuf.c regulator: core: Use different devices for resource allocation and DT lookup 2022-12-31 13:33:04 +01:00
stpmic1_regulator.c
stw481x-vmmc.c
sy7636a-regulator.c
sy8106a-regulator.c
sy8824x.c
sy8827n.c
ti-abb-regulator.c
tps6105x-regulator.c
tps6286x-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
tps65219-regulator.c
tps65910-regulator.c
tps65912-regulator.c
tps68470-regulator.c
twl6030-regulator.c regulator: twl6030: fix get status of twl6032 regulators 2022-11-22 12:23:06 +00:00
twl-regulator.c
uniphier-regulator.c
userspace-consumer.c
vctrl-regulator.c
vexpress-regulator.c
virtual.c
vqmmc-ipq4019-regulator.c
wm831x-dcdc.c
wm831x-isink.c
wm831x-ldo.c
wm8350-regulator.c
wm8400-regulator.c
wm8994-regulator.c