Re: [PATCH v2] regulator: palmas: Check return value of palmas_smps_write()

From: Fedor Pchelkin

Date: Mon Jul 27 2026 - 06:35:53 EST


On Mon, 27. Jul 11:41, Aleksandrova Alyona wrote:
> v2:
> - Update current_reg_mode and enable_val only after a successful register
> write to keep the cached state consistent with the hardware state.

New versions of the patch are generally recommended to be sent in a
separate email thread, not In-Reply-To.

> @@ -468,12 +469,18 @@ static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
> return -EINVAL;
> }
>
> - pmic->current_reg_mode[id] = reg & PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
> - if (rail_enable)
> - palmas_smps_write(pmic->palmas, rinfo->ctrl_addr, reg);
> + new_mode = reg & PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
> +
> + if (rail_enable) {
> + ret = palmas_smps_write(pmic->palmas, rinfo->ctrl_addr, reg);
> + if (ret)
> + return ret;
> + }
> +
> + pmic->current_reg_mode[id] = new_mode;

pmic->current_reg_mode[] update can be moved after the register write.
Not sure if a new local variable is actually needed. Sometimes this
only complicates things for no real value.

>
> /* Switch the enable value to ensure this is used for enable */
> - pmic->desc[id].enable_val = pmic->current_reg_mode[id];
> + pmic->desc[id].enable_val = new_mode;
>
> return 0;
> }
> --
> 2.26.2