This is a note to let you know that I've just added the patch titled regulator: da9121: Return REGULATOR_MODE_INVALID for invalid mode to the 5.12-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: regulator-da9121-return-regulator_mode_invalid-for-invalid-mode.patch and it can be found in the queue-5.12 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 0b1e552673724832b08d49037cdeeac634a3b319 Mon Sep 17 00:00:00 2001 From: Axel Lin <axel.lin@xxxxxxxxxx> Date: Mon, 17 May 2021 13:27:21 +0800 Subject: regulator: da9121: Return REGULATOR_MODE_INVALID for invalid mode From: Axel Lin <axel.lin@xxxxxxxxxx> commit 0b1e552673724832b08d49037cdeeac634a3b319 upstream. -EINVAL is not a valid return value for .of_map_mode, return REGULATOR_MODE_INVALID instead. Fixes: 65ac97042d4e ("regulator: da9121: add mode support") Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx> Acked-by: Adam Ward <Adam.Ward.opensource@xxxxxxxxxxx> Link: https://lore.kernel.org/r/20210517052721.1063375-1-axel.lin@xxxxxxxxxx Signed-off-by: Mark Brown <broonie@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/regulator/da9121-regulator.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) --- a/drivers/regulator/da9121-regulator.c +++ b/drivers/regulator/da9121-regulator.c @@ -280,7 +280,7 @@ static unsigned int da9121_map_mode(unsi case DA9121_BUCK_MODE_FORCE_PFM: return REGULATOR_MODE_STANDBY; default: - return -EINVAL; + return REGULATOR_MODE_INVALID; } } @@ -317,7 +317,7 @@ static unsigned int da9121_buck_get_mode { struct da9121 *chip = rdev_get_drvdata(rdev); int id = rdev_get_id(rdev); - unsigned int val; + unsigned int val, mode; int ret = 0; ret = regmap_read(chip->regmap, da9121_mode_field[id].reg, &val); @@ -326,7 +326,11 @@ static unsigned int da9121_buck_get_mode return -EINVAL; } - return da9121_map_mode(val & da9121_mode_field[id].msk); + mode = da9121_map_mode(val & da9121_mode_field[id].msk); + if (mode == REGULATOR_MODE_INVALID) + return -EINVAL; + + return mode; } static const struct regulator_ops da9121_buck_ops = { Patches currently in stable-queue which might be from axel.lin@xxxxxxxxxx are queue-5.12/regulator-fixed-ensure-enable_counter-is-correct-if-reg_domain_disable-fails.patch queue-5.12/regulator-bd71828-fix-.n_voltages-settings.patch queue-5.12/regulator-scmi-fix-off-by-one-for-linear-regulators-.n_voltages-setting.patch queue-5.12/regulator-rtmv20-fix-.set_current_limit-.get_current_limit-callbacks.patch queue-5.12/regulator-fan53880-fix-missing-n_voltages-setting.patch queue-5.12/regulator-da9121-return-regulator_mode_invalid-for-invalid-mode.patch queue-5.12/regulator-atc260x-fix-n_voltages-and-min_sel-for-pickable-linear-ranges.patch