On Thu, 14 Sep 2017 16:31:06 +0200 Michael Hennerich <michael.hennerich@xxxxxxxxxx> wrote: > On 14.09.2017 15:50, Stefan Popa wrote: > > 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: Stefan Popa <stefan.popa@xxxxxxxxxx> > > Acked-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx> Applied to the togreg branch of iio.git rather than staging branch as the reset functionality is reasonably recent and not going to be available in stable kernels etc.. Good work. I was reading this on a plane the other day and noticed the same issue - always nice when someone else fixes something on your todo list ;) Jonathan > > Well done! > > > > --- > > drivers/staging/iio/adc/ad7192.c | 4 +--- > > 1 file changed, 1 insertion(+), 3 deletions(-) > > > > diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c > > index d11c6de..6150d27 100644 > > --- a/drivers/staging/iio/adc/ad7192.c > > +++ b/drivers/staging/iio/adc/ad7192.c > > @@ -223,11 +223,9 @@ static int ad7192_setup(struct ad7192_state *st, > > struct iio_dev *indio_dev = spi_get_drvdata(st->sd.spi); > > unsigned long long scale_uv; > > int i, ret, id; > > - u8 ones[6]; > > > > /* reset the serial interface */ > > - memset(&ones, 0xFF, 6); > > - ret = spi_write(st->sd.spi, &ones, 6); > > + ret = ad_sd_reset(&st->sd, 48); > > if (ret < 0) > > goto out; > > usleep_range(500, 1000); /* Wait for at least 500us */ > > > > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel