iio: health: afe4403: Use get_unaligned_be24()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 21 Apr 2020 00:31:27 +0000 (03:31 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 3 May 2020 08:47:19 +0000 (09:47 +0100)
This makes the driver code slightly easier to read.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/health/afe4403.c

index dc22dc3..e9f87e4 100644 (file)
@@ -23,6 +23,8 @@
 #include <linux/iio/triggered_buffer.h>
 #include <linux/iio/trigger_consumer.h>
 
+#include <asm/unaligned.h>
+
 #include "afe440x.h"
 
 #define AFE4403_DRIVER_NAME            "afe4403"
@@ -220,13 +222,11 @@ static int afe4403_read(struct afe4403_data *afe, unsigned int reg, u32 *val)
        if (ret)
                return ret;
 
-       ret = spi_write_then_read(afe->spi, &reg, 1, rx, 3);
+       ret = spi_write_then_read(afe->spi, &reg, 1, rx, sizeof(rx));
        if (ret)
                return ret;
 
-       *val = (rx[0] << 16) |
-               (rx[1] << 8) |
-               (rx[2]);
+       *val = get_unaligned_be24(&rx[0]);
 
        /* Disable reading from the device */
        tx[3] = AFE440X_CONTROL0_WRITE;
@@ -322,13 +322,11 @@ static irqreturn_t afe4403_trigger_handler(int irq, void *private)
                         indio_dev->masklength) {
                ret = spi_write_then_read(afe->spi,
                                          &afe4403_channel_values[bit], 1,
-                                         rx, 3);
+                                         rx, sizeof(rx));
                if (ret)
                        goto err;
 
-               buffer[i++] = (rx[0] << 16) |
-                               (rx[1] << 8) |
-                               (rx[2]);
+               buffer[i++] = get_unaligned_be24(&rx[0]);
        }
 
        /* Disable reading from the device */