Staging: iio: fix endian conversion in ad7298_scan_direct()
"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>
This commit is contained in:
Родитель
5ae8f44090
Коммит
c1a752883d
|
@ -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)
|
static int ad7298_scan_temp(struct ad7298_state *st, int *val)
|
||||||
{
|
{
|
||||||
int tmp, ret;
|
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);
|
AD7298_TAVG | st->ext_ref);
|
||||||
|
|
||||||
ret = spi_write(st->spi, (u8 *)&tmp, 2);
|
ret = spi_write(st->spi, (u8 *)&buf, 2);
|
||||||
if (ret)
|
if (ret)
|
||||||
return 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)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
usleep_range(101, 1000); /* sleep > 100us */
|
usleep_range(101, 1000); /* sleep > 100us */
|
||||||
|
|
||||||
ret = spi_read(st->spi, (u8 *)&tmp, 2);
|
ret = spi_read(st->spi, (u8 *)&buf, 2);
|
||||||
if (ret)
|
if (ret)
|
||||||
return 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.
|
* One LSB of the ADC corresponds to 0.25 deg C.
|
||||||
|
|
Загрузка…
Ссылка в новой задаче