Re: [PATCH v2] regulator: palmas: Check return value of palmas_smps_write()
Fedor Pchelkin <[email protected]> Mon, 27 Jul 2026 13:16:31 +0300
| Newsgroups | org.kernel.vger.linux-omap,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260727130320-3c45e38d7dd850065914bd16-pchelkin@ispras> |
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