iio: chemical: bme680: use s16 variable for temp value to avoid casting
authorVasileios Amoiridis <vassilisamir@gmail.com>
Wed, 30 Oct 2024 23:54:24 +0000 (00:54 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Fri, 1 Nov 2024 14:54:48 +0000 (14:54 +0000)
Use local s16 variable for the temperature channel to avoid casting it
later before passing it to the bme680_read_temp() function. This way,
possible endianness and initialization issues are avoided.

Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
Link: https://patch.msgid.link/20241030235424.214935-2-vassilisamir@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/chemical/bme680_core.c

index 871921d..6d11f91 100644 (file)
@@ -741,6 +741,7 @@ static int bme680_read_raw(struct iio_dev *indio_dev,
 {
        struct bme680_data *data = iio_priv(indio_dev);
        int chan_val, ret;
+       s16 temp_chan_val;
 
        guard(mutex)(&data->lock);
 
@@ -757,11 +758,11 @@ static int bme680_read_raw(struct iio_dev *indio_dev,
        case IIO_CHAN_INFO_PROCESSED:
                switch (chan->type) {
                case IIO_TEMP:
-                       ret = bme680_read_temp(data, (s16 *)&chan_val);
+                       ret = bme680_read_temp(data, &temp_chan_val);
                        if (ret)
                                return ret;
 
-                       *val = chan_val * 10;
+                       *val = temp_chan_val * 10;
                        return IIO_VAL_INT;
                case IIO_PRESSURE:
                        ret = bme680_read_press(data, &chan_val);