summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Cameron <Jonathan.Cameron@huawei.com>2022-06-26 13:29:26 +0100
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2022-08-15 22:30:00 +0100
commit77fdc4cead204f2b3e2e1e365f70528199298737 (patch)
treedd6a5dd33d17b4223533120b6c33a9f0b670ae99
parent104827ec920d73db1c0176536f02ba5272c4b8fb (diff)
downloadlinux-77fdc4cead204f2b3e2e1e365f70528199298737.tar.bz2
staging: iio: cdc: ad7746: Use local buffer for multi byte reads.
I2C does not require DMA safe buffers so there is no need to ensure the buffers are in their own cacheline. Hence simplify things by using a local variable instead of embedding the buffer in the chip info structure. Includes a trivial whitespace cleanup to drop a line between function and error handling. Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Link: https://lore.kernel.org/r/20220626122938.582107-6-jic23@kernel.org
-rw-r--r--drivers/staging/iio/cdc/ad7746.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c
index 0b5cb788abee..496e90f559c7 100644
--- a/drivers/staging/iio/cdc/ad7746.c
+++ b/drivers/staging/iio/cdc/ad7746.c
@@ -96,8 +96,6 @@ struct ad7746_chip_info {
u8 vt_setup;
u8 capdac[2][2];
s8 capdac_set;
-
- u8 data[3] ____cacheline_aligned;
};
enum ad7746_chan {
@@ -522,6 +520,7 @@ static int ad7746_read_raw(struct iio_dev *indio_dev,
struct ad7746_chip_info *chip = iio_priv(indio_dev);
int ret, delay, idx;
u8 regval, reg;
+ u8 data[3];
mutex_lock(&chip->lock);
@@ -544,13 +543,11 @@ static int ad7746_read_raw(struct iio_dev *indio_dev,
ret = i2c_smbus_read_i2c_block_data(chip->client,
chan->address >> 8,
- sizeof(chip->data),
- chip->data);
-
+ sizeof(data), data);
if (ret < 0)
goto out;
- *val = get_unaligned_be24(chip->data) - 0x800000;
+ *val = get_unaligned_be24(data) - 0x800000;
switch (chan->type) {
case IIO_TEMP: