From e42cfcf0320ce342a7e1dbc3af266c2872238b7d Mon Sep 17 00:00:00 2001 From: Miguel Gazquez Date: Mon, 16 Jun 2025 16:41:12 +0200 Subject: [PATCH] drivers: sensor: lsm9ds1: propagate errors in sample_fetch `lsm9ds1_sample_fetch` did not propagate error codes. Propagate them. Signed-off-by: Miguel Gazquez --- drivers/sensor/st/lsm9ds1/lsm9ds1.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/drivers/sensor/st/lsm9ds1/lsm9ds1.c b/drivers/sensor/st/lsm9ds1/lsm9ds1.c index 41fbe245b04..22918c9e19f 100644 --- a/drivers/sensor/st/lsm9ds1/lsm9ds1.c +++ b/drivers/sensor/st/lsm9ds1/lsm9ds1.c @@ -413,29 +413,36 @@ static int lsm9ds1_sample_fetch_temp(const struct device *dev) static int lsm9ds1_sample_fetch(const struct device *dev, enum sensor_channel chan) { + int ret = 0; switch (chan) { case SENSOR_CHAN_ACCEL_XYZ: - lsm9ds1_sample_fetch_accel(dev); + ret = lsm9ds1_sample_fetch_accel(dev); break; case SENSOR_CHAN_GYRO_XYZ: - lsm9ds1_sample_fetch_gyro(dev); + ret = lsm9ds1_sample_fetch_gyro(dev); break; #if IS_ENABLED(CONFIG_LSM9DS1_ENABLE_TEMP) case SENSOR_CHAN_DIE_TEMP: - lsm9ds1_sample_fetch_temp(dev); + ret = lsm9ds1_sample_fetch_temp(dev); break; #endif case SENSOR_CHAN_ALL: - lsm9ds1_sample_fetch_accel(dev); - lsm9ds1_sample_fetch_gyro(dev); + ret = lsm9ds1_sample_fetch_accel(dev); + if (ret) { + return ret; + } + ret = lsm9ds1_sample_fetch_gyro(dev); #if IS_ENABLED(CONFIG_LSM9DS1_ENABLE_TEMP) - lsm9ds1_sample_fetch_temp(dev); + if (ret) { + return ret; + } + ret = lsm9ds1_sample_fetch_temp(dev); #endif break; default: return -ENOTSUP; } - return 0; + return ret; } static inline void lsm9ds1_accel_convert(struct sensor_value *val, int raw_val,