iio:adc:ti-adc084s021 Tidy up endian types
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 22 Jul 2020 15:50:58 +0000 (16:50 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 3 Dec 2020 19:40:26 +0000 (19:40 +0000)
By adding a few local variables and avoiding a void * for
a parameter we can easily make all the endian types explicit and
get rid of the warnings from sparse:

  CHECK   drivers/iio/adc/ti-adc084s021.c
drivers/iio/adc/ti-adc084s021.c:84:26: warning: incorrect type in assignment (different base types)
drivers/iio/adc/ti-adc084s021.c:84:26:    expected unsigned short [usertype]
drivers/iio/adc/ti-adc084s021.c:84:26:    got restricted __be16
drivers/iio/adc/ti-adc084s021.c:115:24: warning: cast to restricted __be16
drivers/iio/adc/ti-adc084s021.c:115:24: warning: cast to restricted __be16
drivers/iio/adc/ti-adc084s021.c:115:24: warning: cast to restricted __be16
drivers/iio/adc/ti-adc084s021.c:115:24: warning: cast to restricted __be16

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20200722155103.979802-23-jic23@kernel.org
drivers/iio/adc/ti-adc084s021.c

index dfba34834a575f9d64d338e3ecb9a027673dc131..fb14b92fa6e710c61be1e3c9a3aa462aad753ba4 100644 (file)
@@ -70,11 +70,10 @@ static const struct iio_chan_spec adc084s021_channels[] = {
  * @adc: The ADC SPI data.
  * @data: Buffer for converted data.
  */
-static int adc084s021_adc_conversion(struct adc084s021 *adc, void *data)
+static int adc084s021_adc_conversion(struct adc084s021 *adc, __be16 *data)
 {
        int n_words = (adc->spi_trans.len >> 1) - 1; /* Discard first word */
        int ret, i = 0;
-       u16 *p = data;
 
        /* Do the transfer */
        ret = spi_sync(adc->spi, &adc->message);
@@ -82,7 +81,7 @@ static int adc084s021_adc_conversion(struct adc084s021 *adc, void *data)
                return ret;
 
        for (; i < n_words; i++)
-               *(p + i) = adc->rx_buf[i + 1];
+               *(data + i) = adc->rx_buf[i + 1];
 
        return ret;
 }
@@ -93,6 +92,7 @@ static int adc084s021_read_raw(struct iio_dev *indio_dev,
 {
        struct adc084s021 *adc = iio_priv(indio_dev);
        int ret;
+       __be16 be_val;
 
        switch (mask) {
        case IIO_CHAN_INFO_RAW:
@@ -107,13 +107,13 @@ static int adc084s021_read_raw(struct iio_dev *indio_dev,
                }
 
                adc->tx_buf[0] = channel->channel << 3;
-               ret = adc084s021_adc_conversion(adc, val);
+               ret = adc084s021_adc_conversion(adc, &be_val);
                iio_device_release_direct_mode(indio_dev);
                regulator_disable(adc->reg);
                if (ret < 0)
                        return ret;
 
-               *val = be16_to_cpu(*val);
+               *val = be16_to_cpu(be_val);
                *val = (*val >> channel->scan_type.shift) & 0xff;
 
                return IIO_VAL_INT;