power: supply: ingenic: Fix some error handling paths in ingenic_battery_get_property()
If iio_read_channel_processed() fails, 'val->intval' is not updated, but it is still *1000 just after. So, in case of error, the *1000 accumulate and 'val->intval' becomes erroneous. So instead of rescaling the value after the fact, use the dedicated scaling API. This way the result is updated only when needed. In case of error, the previous value is kept, unmodified. This should also reduce any inaccuracies resulting from the scaling. Finally, this is also slightly more efficient as it saves a function call and a multiplication. Fixes: fb24ccfb ("power: supply: add Ingenic JZ47xx battery driver.") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Acked-by: Artur Rojek <contact@artur-rojek.eu> Link: https://lore.kernel.org/r/51e49c18574003db1e20c9299061a5ecd1661a3c.1719121781.git.christophe.jaillet@wanadoo.frSigned-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Showing
Please register or sign in to comment