- 25 Apr, 2019 1 commit
-
-
Linus Walleij authored
I went to great lengths to hand over the management of the GPIO descriptors to the regulator core, and some stray rebased oneliner in the old patch must have been assuming the devices were still doing devres management of it. We handed the management over to the regulator core, so of course the regulator core shall issue gpiod_put() when done. Sorry for the descriptor leak. Fixes: 541d052d ("regulator: core: Only support passing enable GPIO descriptors") Signed-off-by:
Linus Walleij <linus.walleij@linaro.org> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
- 05 Apr, 2019 1 commit
-
-
Charles Keepax authored
Lockdep reports the following issue on my setup: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock((work_completion)(&(&rdev->disable_work)->work)); lock(regulator_list_mutex); lock((work_completion)(&(&rdev->disable_work)->work)); lock(regulator_list_mutex); The problem is that regulator_unregister takes the regulator_list_mutex and then calls flush_work on disable_work. But regulator_disable_work calls regulator_lock_dependent which will also take the regulator_list_mutex. Resulting in a deadlock if the flush_work call actually needs to flush the work. Fix this issue by moving the flush_work outside of the regulator_list_mutex. The list mutex is not used to guard the point at which the delayed work is queued, so its use adds no additional safety. Fixes: f8702f9e ("regulator: core: Use ww_mutex for regulators locking") Signed-off-by:
Charles Keepax <ckeepax@opensource.cirrus.com> Reviewed-by:
Dmitry Osipenko <digetx@gmail.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
- 26 Mar, 2019 1 commit
-
-
Axel Lin authored
According to the datasheet the latest seletor 11 1111b = 3.3 V. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
- 19 Mar, 2019 1 commit
-
-
Steve Twiss authored
During several error paths in the function regulator_set_voltage_unlocked() the value of 'ret' can take on negative error values. However, in calls that go through the 'goto out' statement, this return value is lost and return 0 is used instead, indicating a 'pass'. There are several cases where this function should legitimately return a fail instead of a pass: one such case includes constraints check during voltage selection in the call to regulator_check_voltage(), which can have -EINVAL for the case when an unsupported voltage is incorrectly requested. In that case, -22 is expected as the return value, not 0. Fixes: 9243a195 ("regulator: core: Change voltage setting path") Cc: stable <stable@vger.kernel.org> Signed-off-by:
Steve Twiss <stwiss.opensource@diasemi.com> Reviewed-by:
Dmitry Osipenko <digetx@gmail.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
- 04 Mar, 2019 4 commits
-
-
Axel Lin authored
These regulator_ops variables should never change, make them const. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
The palmas_smps_ramp_delay array should never modify, make it const. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by: Steve Twiss <stwiss.opensource@diasemi.com>; Signed-off-by:
Mark Brown <broonie@kernel.org>
-
- 03 Mar, 2019 10 commits
-
-
Axel Lin authored
Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Steve Twiss <stwiss.opensource@diasemi.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Steve Twiss <stwiss.opensource@diasemi.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Mark Brown authored
Merge branch 'for-5.0' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-5.1
-
Axel Lin authored
Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Steve Twiss <stwiss.opensource@diasemi.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Steve Twiss <stwiss.opensource@diasemi.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
By setting curr_table, n_current_limits, csel_reg and csel_mask, the regmap users can use regulator_set_current_limit_regmap and regulator_get_current_limit_regmap for set/get_current_limit callbacks. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
The csel_reg and csel_mask fields in struct regulator_desc needs to be generic for drivers. Not just for TPS65218. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
- 28 Feb, 2019 1 commit
-
-
Fabrice Gasnier authored
Add support for suspend/resume and runtime PM to stm32-vrefbuf driver. Signed-off-by:
Fabrice Gasnier <fabrice.gasnier@st.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
- 26 Feb, 2019 11 commits
-
-
Axel Lin authored
The *i2c and *i2c_8606 are no longer used since this driver was converted to use regmap helpers. The *chip and *regulator are not really required. So remove these unused fields. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Set volt_table filed then we can use regulator_list_voltage_table. Since we have volt_table setting, now we can remove vol_table from struct pm8607_regulator_info. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
They should never change, make them const. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Tony Lindgren <tony@atomide.com> Reviewed-by:
Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
This driver uses regulator_get/set_voltage_sel_regmap so it does not use vsel_shift. Actually, vsel_shift can be calculated by vsel_mask setting. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Tested-by:
Tony Lindgren <tony@atomide.com> Reviewed-by:
Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Christian Hohnstaedt authored
LS3 has a selectable current limit. Change units to microamp in the example. Signed-off-by:
Christian Hohnstaedt <Christian.Hohnstaedt@wago.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Christian Hohnstaedt authored
Document device-tree settings of the load-switch LS2 in the tps65218 device. Signed-off-by:
Christian Hohnstaedt <Christian.Hohnstaedt@wago.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Gustavo A. R. Silva authored
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = alloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = alloc(struct_size(instance, entry, count), GFP_KERNEL) Notice that, in this case, variable size is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by:
Gustavo A. R. Silva <gustavo@embeddedor.com> Acked-by:
Steve Twiss <stwiss.opensource@diasemi.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
The module version is unlikely to be updated, use kernel version should be enough. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Nicolas Ferre <nicolas.ferre@microchip.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Current code does not really avoid array access out of bounds, fix it by add checking for pdata->slew_rate. If pdata->slew_rate is too big, it's a bug in pdata that needs fix. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Setup .vsel_reg and .vsel_mask then we can use the standard set/get_voltage_sel_regmap helpers to simplify the code. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
The wm831x_dcdc_ilim entries needs to be uA because it is used to compare with min_uA and max_uA. While at it also make the array const and change to use unsigned int. Fixes: e4ee831f ("regulator: Add WM831x DC-DC buck convertor support") Signed-off-by:
Axel Lin <axel.lin@ingics.com> Acked-by:
Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
- 22 Feb, 2019 4 commits
-
-
Gustavo A. R. Silva authored
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = alloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = alloc(struct_size(instance, entry, count), GFP_KERNEL) Notice that, in this case, variable size is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by:
Gustavo A. R. Silva <gustavo@embeddedor.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Current code already set .min_uV and .uV_step fields and it actually can use regulator_list_voltage_linear. So remove buck_volt_range and use regulator_list_voltage_linear instead. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
Current code always return error, fix it. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Reviewed-by:
Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Christian Hohnstaedt authored
Re-use the "tps65218_pmic_*_current_limit()" functions of LS3 and calculate the different required bit-shift by counting the trailing 0s in "struct regulator_desc.csel_mask" Signed-off-by:
Christian Hohnstaedt <Christian.Hohnstaedt@wago.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
- 21 Feb, 2019 6 commits
-
-
Axel Lin authored
Signed-off-by:
Axel Lin <axel.lin@ingics.com> Reviewed-by:
Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
The s5m8767_opmode_reg should never change, make it const. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Reviewed-by:
Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Marc Gonzalez authored
When REGULATOR_CHANGE_DRMS is not set, drms_uA_update is a no-op. It used to print a debug message, which was dropped in commit 8a34e979 ("regulator: refactor valid_ops_mask checking code") Let's bring the debug message back, because it helps find missing regulator-allow-set-load properties. Signed-off-by:
Marc Gonzalez <marc.w.gonzalez@free.fr> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Axel Lin authored
The lp873x_buck_ramp_delay should never change, make it const. Signed-off-by:
Axel Lin <axel.lin@ingics.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Mathieu Othacehe authored
Some contributions appears as Mathieu Othacehe and other as Mathieu OTHACEHE. Signed-off-by:
Mathieu Othacehe <m.othacehe@gmail.com> Signed-off-by:
Mark Brown <broonie@kernel.org>
-
Bjorn Andersson authored
The FAN53526 differs from the FAN53555 only in that the mode bit in VSEL0/VSEL1 is moved to the CONTROL register, the voltage selector mask is extended by 1 bit and the step is different. So extend the existing fan53555 driver to support FAN53526 as well. Signed-off-by:
Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by:
Mark Brown <broonie@kernel.org>
-