linux-stable/drivers/regulator
Mark Brown d7ce17fba6 regulator: Defer init completion for a while after late_initcall
commit 55576cf185 upstream.

The kernel has no way of knowing when we have finished instantiating
drivers, between deferred probe and systems that build key drivers as
modules we might be doing this long after userspace has booted. This has
always been a bit of an issue with regulator_init_complete since it can
power off hardware that's not had it's driver loaded which can result in
user visible effects, the main case is powering off displays. Practically
speaking it's not been an issue in real systems since most systems that
use the regulator API are embedded and build in key drivers anyway but
with Arm laptops coming on the market it's becoming more of an issue so
let's do something about it.

In the absence of any better idea just defer the powering off for 30s
after late_initcall(), this is obviously a hack but it should mask the
issue for now and it's no more arbitrary than late_initcall() itself.
Ideally we'd have some heuristics to detect if we're on an affected
system and tune or skip the delay appropriately, and there may be some
need for a command line option to be added.

Link: https://lore.kernel.org/r/20190904124250.25844-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Tested-by: Lee Jones <lee.jones@linaro.org>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-10-05 12:48:08 +02:00
..
88pm800.c regulator: 88pm800: constify regulator_ops structures 2017-01-31 20:32:26 +00:00
88pm8607.c regulator: 88pm8607: constify regulator_ops structure 2017-01-31 20:32:53 +00:00
aat2870-regulator.c regulator: aat2870-regulator: constify regulator_ops structure 2017-01-31 20:35:49 +00:00
ab3100.c
ab8500-ext.c
ab8500.c
act8865-regulator.c regulator: act8865: Fix act8600_sudcdc_voltage_ranges setting 2019-04-05 22:31:39 +02:00
act8945a-regulator.c regulator: act8945a-regulator: constify regulator_ops structure 2017-01-31 20:36:10 +00:00
ad5398.c regulator: ad5398: constify regulator_ops structure 2017-01-31 20:38:27 +00:00
anatop-regulator.c Merge remote-tracking branches 'regulator/topic/anatop', 'regulator/topic/arizona', 'regulator/topic/bd9571mvw-m' and 'regulator/topic/const' into regulator-next 2017-04-30 22:17:25 +09:00
arizona-ldo1.c regulator: arizona-ldo1: Factor out generic initialization 2017-04-25 16:36:57 +01:00
arizona-micsupp.c regulator: arizona-micsupp: Factor out generic initialization 2017-04-25 16:36:31 +01:00
as3711-regulator.c regulator: as3711-regulator: constify regulator_ops structure 2017-01-31 20:43:36 +00:00
as3722-regulator.c
axp20x-regulator.c regulator: axp20x: Fix poly-phase bit offset for AXP803 DCDC5/6 2017-10-04 11:48:21 +01:00
bcm590xx-regulator.c regulator: bcm590xx-regulator: constify regulator_ops structure 2017-01-31 20:44:14 +00:00
bd9571mwv-regulator.c regulator: bd9571mwv: Statize local symbols 2017-06-06 20:04:32 +01:00
core.c regulator: Defer init completion for a while after late_initcall 2019-10-05 12:48:08 +02:00
cpcap-regulator.c regulator: Don't return or expect -errno from of_map_mode() 2018-08-03 07:50:40 +02:00
da903x.c
da9052-regulator.c
da9055-regulator.c
da9062-regulator.c regulator: da9061: BUCK and LDO regulator driver 2017-06-07 19:47:24 +01:00
da9063-regulator.c regulator: da9063: Return an error code on probe failure 2017-08-30 16:05:46 +01:00
da9210-regulator.c
da9210-regulator.h
da9211-regulator.c
da9211-regulator.h
db8500-prcmu.c
dbx500-prcmu.c regulator: dbx500: remove unused functions in dbx500-prcmu.c 2016-09-26 09:40:22 -07:00
dbx500-prcmu.h
devres.c regulator: core: optimize devm_regulator_bulk_get() 2017-02-04 11:37:25 +01:00
dummy.c
dummy.h
fan53555.c regulator: fan53555: fix I2C device ids 2017-08-21 16:57:53 +01:00
fixed-helper.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fixed.c regulator: fixed: Revert support for ACPI interface 2017-01-25 21:05:37 +00:00
gpio-regulator.c regulator: gpio: Fix some error handling paths in 'gpio_regulator_probe()' 2018-05-30 07:52:32 +02:00
helpers.c regulator: helpers: Add regmap set_pull_down helper 2017-04-06 19:29:37 +01:00
hi655x-regulator.c Merge remote-tracking branches 'regulator/topic/helpers', 'regulator/topic/hi655x', 'regulator/topic/lm363x', 'regulator/topic/ltc3589' and 'regulator/topic/ltc3676' into regulator-next 2017-04-30 22:17:31 +09:00
hi6421-regulator.c regulator: hi6421: Describe consumed platform device 2017-06-07 20:25:49 +01:00
hi6421v530-regulator.c regulator: hi6421v530: Describe consumed platform device 2017-06-14 18:27:20 +01:00
internal.h regulator: Mark supply_name const and duplicate it as such 2017-03-17 13:12:22 +00:00
isl6271a-regulator.c
isl9305.c
Kconfig - New Drivers 2017-09-07 13:51:13 -07:00
lm363x-regulator.c regulator: lm363x: Fix off-by-one n_voltages for lm3632 ldo_vpos/ldo_vneg 2019-10-05 12:47:44 +02:00
lp872x.c
lp873x-regulator.c regulator: lp873x: Add support for populating input supply 2016-11-11 15:36:38 +00:00
lp3971.c
lp3972.c
lp8755.c regulator: lp8755: fix spelling mistake "acceess" -> "access" 2017-05-19 17:56:37 +01:00
lp8788-buck.c
lp8788-ldo.c
lp87565-regulator.c regulator: lp87565: Fix the initial voltage range 2017-06-20 13:38:35 +01:00
ltc3589.c regulator: ltc3589: constify i2c_device_id 2017-08-21 18:10:42 +01:00
ltc3676.c regulator: ltc3676: Add OF device ID table 2017-02-21 10:30:56 -08:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
max1586.c regulator: Convert to using %pOF instead of full_name 2017-07-19 11:56:01 +01:00
max8649.c
max8660.c regulator: max8660: Constify regulator_ops 2017-03-13 16:46:24 +00:00
max8907-regulator.c regulator: max8907-regulator: constify regulator_ops structure 2017-01-31 20:54:26 +00:00
max8925-regulator.c regulator: max8925-regulator: constify regulator_ops structure 2017-01-31 20:54:41 +00:00
max8952.c regulator: max8952: constify regulator_ops structure 2017-01-31 20:56:09 +00:00
max8973-regulator.c thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
max8997-regulator.c regulator: max8997/8966: fix charger cv voltage set bug 2017-05-14 18:39:31 +09:00
max8998.c
max14577-regulator.c regulator: max14577-regulator: constify regulator_ops structure 2017-01-31 20:48:53 +00:00
max77620-regulator.c regulator: max77620: Initialize values for DT properties 2019-03-23 14:35:19 +01:00
max77686-regulator.c regulator: max77686-regulator: constify regulator_ops structure 2017-01-31 20:53:30 +00:00
max77693-regulator.c Merge remote-tracking branches 'regulator/topic/anatop', 'regulator/topic/arizona', 'regulator/topic/bd9571mvw-m' and 'regulator/topic/const' into regulator-next 2017-04-30 22:17:25 +09:00
max77802-regulator.c regulator: max77802-regulator: constify regulator_ops structure 2017-01-31 20:54:06 +00:00
mc13xxx-regulator-core.c
mc13xxx.h
mc13783-regulator.c
mc13892-regulator.c
mt6311-regulator.c
mt6311-regulator.h
mt6323-regulator.c
mt6380-regulator.c regulator: mt6380: Add support for MT6380 2017-08-15 12:50:48 +01:00
mt6397-regulator.c
of_regulator.c regulator: Don't return or expect -errno from of_map_mode() 2018-08-03 07:50:40 +02:00
palmas-regulator.c Merge remote-tracking branches 'regulator/topic/settle', 'regulator/topic/tps65910' and 'regulator/topic/tps65917' into regulator-next 2017-07-03 16:52:21 +01:00
pbias-regulator.c regulator: pbias-regulator: constify regulator_ops structure 2017-01-31 20:57:16 +00:00
pcap-regulator.c regulator: pcap-regulator: constify regulator_ops structure 2017-01-31 20:57:31 +00:00
pcf50633-regulator.c regulator: pcf50633-regulator: constify regulator_ops structure 2017-01-31 20:58:15 +00:00
pfuze100-regulator.c regulator: pfuze100: add .is_enable() for pfuze100_swb_regulator_ops 2018-08-03 07:50:33 +02:00
pv88060-regulator.c regulator: pv88060-regulator: constify regulator_ops structure 2017-01-31 20:58:46 +00:00
pv88060-regulator.h
pv88080-regulator.c regulator: pv88080-regulator: constify regulator_ops structure 2017-01-31 20:59:01 +00:00
pv88080-regulator.h regulator: pv88080: Update regulator for PV88080 BB silicon support 2016-09-26 08:59:08 -07:00
pv88090-regulator.c regulator: pv88090: Exception handling for out of bounds 2017-08-30 16:12:17 +01:00
pv88090-regulator.h regulator: pv88090: Exception handling for out of bounds 2017-08-30 16:12:17 +01:00
pwm-regulator.c regulator: pwm-regulator: Remove unneeded gpiod NULL check 2017-07-24 16:26:35 +01:00
qcom_rpm-regulator.c regulator: qcom_rpm-regulator: add NULL check on of_match_device() return value 2017-07-07 13:42:03 +01:00
qcom_smd-regulator.c regulator: qcom_smd: add NULL check on of_match_device() return value 2017-07-07 13:42:07 +01:00
qcom_spmi-regulator.c
rc5t583-regulator.c regulator: rc5t583-regulator: constify regulator_ops structure 2017-01-31 20:59:37 +00:00
rk808-regulator.c regulator: rk808: Add regulator driver for RK805 2017-08-21 08:54:12 +01:00
rn5t618-regulator.c regulator: rn5t618: Do not index regulator_desc arrays by id 2017-10-18 11:23:21 +01:00
rt5033-regulator.c
s2mpa01.c regulator: s2mpa01: Fix step values for some LDOs 2019-03-23 14:35:19 +01:00
s2mps11.c regulator: s2mps11: Fix buck7 and buck8 wrong voltages 2019-07-31 07:28:36 +02:00
s5m8767.c regulator: Convert to using %pOF instead of full_name 2017-07-19 11:56:01 +01:00
sky81452-regulator.c
stm32-vrefbuf.c regulator: stm32-vrefbuf: fix check on ready flag 2018-03-15 10:54:28 +01:00
stw481x-vmmc.c regulator: stw481x-vmmc: fix ages old enable error 2016-11-13 09:22:37 +00:00
ti-abb-regulator.c
tps6105x-regulator.c
tps6507x-regulator.c regulator: tps6507x: Drop pointless static qualifier for *reg_data variable 2016-10-24 17:49:14 +01:00
tps6524x-regulator.c
tps6586x-regulator.c
tps51632-regulator.c
tps62360-regulator.c
tps65023-regulator.c regulator: tps65023: Fix inverted core enable logic. 2017-04-18 18:55:05 +01:00
tps65086-regulator.c regulator: tps65086: Fix DT node referencing in of_parse_cb 2017-02-13 18:04:28 +00:00
tps65090-regulator.c
tps65132-regulator.c regulator: tps65132: fix platform_no_drv_owner.cocci warnings 2017-04-14 17:59:32 +01:00
tps65217-regulator.c regulator: tps65217: Allow DCDC1 and DCDC3 up to 3.3V 2017-01-23 17:48:55 +00:00
tps65218-regulator.c regulator: tps65218: Remove all the compatibles 2016-10-26 10:30:39 +01:00
tps65910-regulator.c regulator: tps65910: check TPS65910_NUM_REGS at build time 2017-06-13 18:46:48 +01:00
tps65912-regulator.c
tps80031-regulator.c
twl-regulator.c regulator: Don't return or expect -errno from of_map_mode() 2018-08-03 07:50:40 +02:00
twl6030-regulator.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
userspace-consumer.c
vctrl-regulator.c regulator: vctrl: Fix out of bounds array access for vctrl->vtable 2017-04-14 18:01:03 +01:00
vexpress-regulator.c
virtual.c
wm831x-dcdc.c
wm831x-isink.c
wm831x-ldo.c
wm8350-regulator.c
wm8400-regulator.c
wm8994-regulator.c