Staging: iio: fix endian conversion in ad7298_scan_direct()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 22 Nov 2011 07:39:15 +0000 (10:39 +0300)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sun, 27 Nov 2011 00:55:38 +0000 (16:55 -0800)
"tmp" is used to store the output from cpu_to_be16() so it should be
a __be16 bit type.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/iio/adc/ad7298_core.c

index 093b2b2c20eaff0816a611bb7f695a6409e624b8..3ccd4b46dcd1de82bb4b0145bb17fcf130612534 100644 (file)
@@ -69,27 +69,28 @@ static int ad7298_scan_direct(struct ad7298_state *st, unsigned ch)
 static int ad7298_scan_temp(struct ad7298_state *st, int *val)
 {
        int tmp, ret;
+       __be16 buf;
 
-       tmp = cpu_to_be16(AD7298_WRITE | AD7298_TSENSE |
+       buf = cpu_to_be16(AD7298_WRITE | AD7298_TSENSE |
                          AD7298_TAVG | st->ext_ref);
 
-       ret = spi_write(st->spi, (u8 *)&tmp, 2);
+       ret = spi_write(st->spi, (u8 *)&buf, 2);
        if (ret)
                return ret;
 
-       tmp = 0;
+       buf = cpu_to_be16(0);
 
-       ret = spi_write(st->spi, (u8 *)&tmp, 2);
+       ret = spi_write(st->spi, (u8 *)&buf, 2);
        if (ret)
                return ret;
 
        usleep_range(101, 1000); /* sleep > 100us */
 
-       ret = spi_read(st->spi, (u8 *)&tmp, 2);
+       ret = spi_read(st->spi, (u8 *)&buf, 2);
        if (ret)
                return ret;
 
-       tmp = be16_to_cpu(tmp) & RES_MASK(AD7298_BITS);
+       tmp = be16_to_cpu(buf) & RES_MASK(AD7298_BITS);
 
        /*
         * One LSB of the ADC corresponds to 0.25 deg C.