Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 923f18a8 authored by Stefan Popa's avatar Stefan Popa Committed by Greg Kroah-Hartman
Browse files

staging: iio: ad7192: Fix - use the dedicated reset function avoiding dma from stack.



commit f790923f146140a261ad211e5baf75d169f16fb2 upstream.

Depends on: 691c4b95d1 ("iio: ad_sigma_delta: Implement a dedicated reset function")

SPI host drivers can use DMA to transfer data, so the buffer should be properly allocated.
Keeping it on the stack could cause an undefined behavior.

The dedicated reset function solves this issue.

Signed-off-by: default avatarStefan Popa <stefan.popa@analog.com>
Acked-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Acked-by: default avatarMichael Hennerich <michael.hennerich@analog.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 440edb76
Loading
Loading
Loading
Loading
+1 −3
Original line number Original line Diff line number Diff line
@@ -206,11 +206,9 @@ static int ad7192_setup(struct ad7192_state *st,
	struct iio_dev *indio_dev = spi_get_drvdata(st->sd.spi);
	struct iio_dev *indio_dev = spi_get_drvdata(st->sd.spi);
	unsigned long long scale_uv;
	unsigned long long scale_uv;
	int i, ret, id;
	int i, ret, id;
	u8 ones[6];


	/* reset the serial interface */
	/* reset the serial interface */
	memset(&ones, 0xFF, 6);
	ret = ad_sd_reset(&st->sd, 48);
	ret = spi_write(st->sd.spi, &ones, 6);
	if (ret < 0)
	if (ret < 0)
		goto out;
		goto out;
	usleep_range(500, 1000); /* Wait for at least 500us */
	usleep_range(500, 1000); /* Wait for at least 500us */