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