2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-21 11:44:01 +08:00
linux-next/drivers/regulator
Cristian Marussi 6d30fc511b
regulator: core: avoid unneeded .list_voltage calls
Inside machine_constraints_voltage() a loop is in charge of verifying that
each of the defined voltages are within the configured constraints and
that those constraints are in fact compatible with the available voltages'
list.

When the registered regulator happens to be defined with a wide range of
possible voltages the above O(n) loop can be costly.
Moreover since this behaviour is triggered during the registration process,
it means also that it can be easily triggered at probe time, slowing down
considerably some module loading.

On the other side if such wide range of voltage values happens to be also
continuous and without discontinuity of any kind, the above potentially
cumbersome operation is also useless.

For these reasons, avoid such .list_voltage poll loop when regulator is
described as 'continuous_voltage_range' as is, indeed, similarly already
done inside regulator_is_supported_voltage().

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
Link: https://lore.kernel.org/r/20191209125239.46054-1-cristian.marussi@arm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-12-09 18:41:40 +00:00
..
88pg86x.c regulator: 88pg86x: new i2c dual regulator chip 2018-03-09 13:01:17 +00:00
88pm800-regulator.c Merge branch 'regulator-5.3' into regulator-next 2019-07-04 17:34:32 +01:00
88pm8607.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aat2870-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
ab3100.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
ab8500-ext.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
ab8500.c regulator: ab8500: Remove AB8505 USB regulator 2019-11-07 13:09:58 +00:00
act8865-regulator.c regulator: act8865: operating mode and suspend state support 2019-08-15 18:10:40 +01:00
act8945a-regulator.c regulator: act8945a-regulator: fix ldo register addresses in set_mode hook 2019-08-13 12:41:46 +01:00
ad5398.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
anatop-regulator.c regulator: anatop: Remove unneeded fields from struct anatop_regulator 2019-04-10 12:23:04 +01:00
arizona-ldo1.c regulator: arizona-ldo1: Add support for Cirrus Logic Madera codecs 2019-05-21 21:23:24 +01:00
arizona-micsupp.c regulator: arizona-micsupp: Delete unused include 2019-06-03 17:51:20 +01:00
as3711-regulator.c regulator: as3711: Remove struct as3711_regulator_info and as3711_regulator 2019-03-18 12:10:45 +00:00
as3722-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
axp20x-regulator.c regulator: axp20x: fix DCDC5 and DCDC6 for AXP803 2019-07-16 19:14:14 +01:00
bcm590xx-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
bd718x7-regulator.c regulator: bd718x7: Add MODULE_ALIAS() 2019-10-01 18:37:47 +01:00
bd9571mwv-regulator.c regulator: bd9571mwv: Constify regulator_ops 2019-01-24 17:53:12 +00:00
bd70528-regulator.c regulator: bd70528: Drop unused include 2019-06-03 17:52:02 +01:00
core.c regulator: core: avoid unneeded .list_voltage calls 2019-12-09 18:41:40 +00:00
cpcap-regulator.c regulator: cpcap: Spelling s/configuraion/configuration/ 2019-06-07 13:14:37 +01:00
da903x.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9052-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9055-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9062-regulator.c regulator: da9062: Return REGULATOR_MODE_INVALID for invalid mode 2019-11-22 19:52:42 +00:00
da9063-regulator.c regulator: da9063: Simplify da9063_buck_set_mode for BUCK_MODE_MANUAL case 2019-10-01 12:31:10 +01:00
da9210-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9210-regulator.h regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9211-regulator.c regulator: da9211: switch to using devm_fwnode_gpiod_get 2019-10-07 14:02:11 +01:00
da9211-regulator.h regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
db8500-prcmu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
dbx500-prcmu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
dbx500-prcmu.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
devres.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dummy.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dummy.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
fan53555.c regulator: fan53555: add chip id for Silergy SYR83X 2019-11-06 16:19:47 +00:00
fixed-helper.c regulator: fixed: Convert to use GPIO descriptor only 2018-09-17 14:32:22 -07:00
fixed.c regulator: fixed: add off-on-delay 2019-10-29 12:32:12 +00:00
gpio-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
helpers.c regulator: provide regulator_bulk_set_supply_names() 2019-09-02 12:49:42 +01:00
hi655x-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
hi6421-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
hi6421v530-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
internal.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
isl6271a-regulator.c regulator: isl6271a: Constify isl_core_ops and isl_fixed_ops 2019-01-28 15:30:58 +00:00
isl9305.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
Kconfig regulator: Fix Kconfig indentation 2019-11-20 17:10:58 +00:00
lm363x-regulator.c regulator: lm363x: Fix n_voltages setting for lm36274 2019-07-22 13:18:13 +01:00
lochnagar-regulator.c regulator: lochnagar: Add on_off_delay for VDDCORE 2019-10-01 17:46:01 +01:00
lp872x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp873x-regulator.c regulator: lp873x: Convert to use regulator_set/get_current_limit_regmap 2019-03-03 23:47:06 +00:00
lp3971.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp3972.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8755.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8788-buck.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8788-ldo.c regulator: lp8788-ldo: make array en_mask static const, makes object smaller 2019-09-09 10:53:48 +01:00
lp87565-regulator.c regulator: lp87565: Simplify lp87565_buck_set_ramp_delay 2019-09-09 13:22:49 +01:00
ltc3589.c regulator: ltc3589: Switch to SPDX identifier 2019-04-26 10:38:20 +01:00
ltc3676.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
Makefile regulator: mt6358: Add support for MT6358 regulator 2019-08-28 11:51:27 +01:00
max1586.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
max8649.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8660.c regulator: max8660: remove redundant assignment of variable ret 2019-08-15 15:09:21 +01:00
max8907-regulator.c regulator: max8907: Fix the usage of uninitialized variable in max8907_regulator_probe() 2019-10-04 18:45:43 +01:00
max8925-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8952.c Linux 5.2-rc4 2019-06-18 19:12:47 +01:00
max8973-regulator.c regulator: max8973: Let core handle GPIO descriptor 2018-12-11 01:04:31 +00:00
max8997-regulator.c regulator: Use of_node_name_eq for node name comparisons 2018-12-06 19:56:51 +00:00
max8998.c regulator: max8998: Factor out struct voltage_map_desc 2019-04-15 09:45:15 +01:00
max14577-regulator.c regulator: max14577: Get rid of match_init_data/match_of_node functions 2019-03-13 15:12:47 +00:00
max77620-regulator.c regulator: max77620: remove redundant assignment to variable ret 2019-07-03 13:02:38 +01:00
max77650-regulator.c regulator: max77650: use vsel_step 2019-07-04 17:31:37 +01:00
max77686-regulator.c regulator: max77686: switch to using fwnode_gpiod_get_index 2019-10-07 14:02:20 +01:00
max77693-regulator.c regulator: maxim: Add SPDX license identifiers 2018-08-08 10:52:50 +01:00
max77802-regulator.c regulator: max77802: Drop unused includes 2019-06-10 15:40:58 +01:00
mc13xxx-regulator-core.c regulator: mc13xxx: Constify regulator_ops variables 2019-03-04 00:01:08 +00:00
mc13xxx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mc13783-regulator.c regulator: mc13xxx: Constify regulator_ops variables 2019-03-04 00:01:08 +00:00
mc13892-regulator.c regulator: mc13xxx: Constify regulator_ops variables 2019-03-04 00:01:08 +00:00
mcp16502.c regulator: mcp16502: Remove setup_regulators function 2019-04-11 12:17:32 +01:00
mt6311-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6311-regulator.h regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6323-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6358-regulator.c regulator: mt6358: Add support for MT6358 regulator 2019-08-28 11:51:27 +01:00
mt6380-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6397-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
of_regulator.c Merge branch 'regulator-5.4' into regulator-5.5 2019-10-08 17:26:17 +01:00
palmas-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pbias-regulator.c regulator: pbias: Get rid of struct pbias_regulator_data 2019-10-07 13:54:42 +01:00
pcap-regulator.c regulator: pcap-regulator: remove unused variable 'SW3_table' 2019-10-01 12:46:37 +01:00
pcf50633-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pfuze100-regulator.c regulator: pfuze100-regulator: Variable "val" in pfuze100_regulator_probe() could be uninitialized 2019-10-01 18:36:42 +01:00
pv88060-regulator.c regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88060-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88080-regulator.c regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88080-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88090-regulator.c regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88090-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pwm-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
qcom_rpm-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
qcom_smd-regulator.c regulator: qcom_smd: Add PM8950 regulators 2019-10-01 12:23:53 +01:00
qcom_spmi-regulator.c regulator: qcom_spmi: Add support for PM8004 regulators 2019-10-01 12:30:03 +01:00
qcom-rpmh-regulator.c Merge branch 'regulator-5.4' into regulator-5.5 2019-10-08 17:26:17 +01:00
rc5t583-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
rk808-regulator.c regulator: rk808: Remove rk817_set_suspend_voltage function 2019-10-08 11:45:41 +01:00
rn5t618-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 446 2019-06-05 17:37:18 +02:00
rt5033-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 450 2019-06-05 17:37:18 +02:00
s2mpa01.c regulator: s2mpa01: Remove unused define for S2MPA01_REGULATOR_CNT 2019-04-10 12:22:50 +01:00
s2mps11.c regulator: s2mps11: switch to using devm_fwnode_gpiod_get 2019-10-07 14:02:06 +01:00
s5m8767.c regulator: s5m8767: Fix a warning message 2019-12-04 12:13:27 +00:00
sc2731-regulator.c regulator: sc2731: Constify regulators 2019-03-26 13:25:35 +00:00
sky81452-regulator.c regulator: sky81452: Switch to SPDX identifier 2019-04-26 10:38:27 +01:00
slg51000-regulator.c regulator: slg51000: switch to using fwnode_gpiod_get_index 2019-10-07 14:01:56 +01:00
slg51000-regulator.h regulator: slg51000: add slg51000 regulator driver 2019-05-13 11:07:43 +01:00
stm32-booster.c regulator: stm32-booster: Remove .min_uV and .list_voltage for fixed regulator 2019-07-23 12:28:01 +01:00
stm32-pwr.c regulator: stm32-pwr: Remove unneeded .min_uV and .list_volage 2019-05-03 15:07:15 +09:00
stm32-vrefbuf.c regulator: stm32-vrefbuf: use devm_platform_ioremap_resource() to simplify code 2019-10-09 18:16:56 +01:00
stpmic1_regulator.c regulator: stpmic1: Set a default ramp delay value 2019-11-15 12:05:47 +00:00
stw481x-vmmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
sy8106a-regulator.c regulator: sy8106a: Get rid of struct sy8106a 2019-04-26 10:38:25 +01:00
sy8824x.c regulator: sy8824x: add prefixes to BUCK_EN and MODE macros 2019-08-30 12:39:47 +01:00
ti-abb-regulator.c regulator: ti-abb: Fix timeout in ti_abb_wait_txdone/ti_abb_clear_all_txdone 2019-10-01 12:21:02 +01:00
tps6105x-regulator.c regulator: tps6105x: add optional devicetree support 2019-11-20 17:10:47 +00:00
tps6507x-regulator.c regulator: tps6507x: Fix boot regression due to testing wrong init_data pointer 2019-05-16 17:11:47 +01:00
tps6524x-regulator.c regulator: tps6524x: Remove *rdev[N_REGULATORS] from struct tps6524x 2019-04-15 09:44:41 +01:00
tps6586x-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tps51632-regulator.c regulator: tps51632: Fix setting ramp delay 2016-05-31 16:38:01 +01:00
tps62360-regulator.c regulator: drivers: Drop owner assignment from i2c_driver 2015-07-14 18:53:01 +01:00
tps65023-regulator.c regulator: tps65023: Fix inverted core enable logic. 2017-04-18 18:55:05 +01:00
tps65086-regulator.c regulator: tps65086: Fix tps65086_ldoa1_ranges for selector 0xB 2019-03-21 15:00:07 +00:00
tps65090-regulator.c regulator: tps65090: switch to using devm_fwnode_gpiod_get 2019-10-07 14:02:02 +01:00
tps65132-regulator.c regulator: tps65132: switch to using devm_fwnode_gpiod_get() 2019-10-07 14:02:16 +01:00
tps65217-regulator.c Merge branch 'regulator-5.2' into regulator-next 2019-05-06 22:52:14 +09:00
tps65218-regulator.c regulator: tps65218: Convert to use regulator_get_current_limit_regmap 2019-04-15 09:44:09 +01:00
tps65910-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
tps65912-regulator.c headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
tps80031-regulator.c regulator: tps80031: Switch to SPDX identifier 2019-04-16 17:30:56 +01:00
twl6030-regulator.c regulator: twl6030: workaround the VMMC reset behavior 2019-08-09 18:04:22 +01:00
twl-regulator.c regulator: twl: voltage lists for vdd1/2 on twl4030 2019-08-15 15:08:41 +01:00
uniphier-regulator.c regulator: uniphier: use devm_platform_ioremap_resource() to simplify code 2019-10-09 18:17:15 +01:00
userspace-consumer.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
vctrl-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
vexpress-regulator.c regulator: vexpress: Use PTR_ERR_OR_ZERO() to simplify code 2019-11-18 12:58:24 +00:00
virtual.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wm831x-dcdc.c regulator: wm831x: Convert to use GPIO descriptors 2019-06-12 13:59:11 +01:00
wm831x-isink.c regulator: wm831x: Switch to SPDX identifier 2019-04-17 17:40:29 +01:00
wm831x-ldo.c regulator: wm831x: Switch to SPDX identifier 2019-04-17 17:40:29 +01:00
wm8350-regulator.c regulator: wm8350: Switch to SPDX identifier 2019-04-17 17:40:44 +01:00
wm8400-regulator.c regulator: wm8400: Switch to SPDX identifier 2019-04-17 17:41:00 +01:00
wm8994-regulator.c regulator: wm8994: Switch to SPDX identifier 2019-04-17 17:39:58 +01:00