2019-06-19 13:05:15

by Olivier Moysan

[permalink] [raw]
Subject: [PATCH 5/5] iio: adc: stm32-dfsdm: add comment for 16 bits record

Add a comment on DMA configuration for 16 bits record.

Signed-off-by: Olivier Moysan <[email protected]>
---
drivers/iio/adc/stm32-dfsdm-adc.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-dfsdm-adc.c
index d855a605eab6..ee1e0569d0e1 100644
--- a/drivers/iio/adc/stm32-dfsdm-adc.c
+++ b/drivers/iio/adc/stm32-dfsdm-adc.c
@@ -918,6 +918,11 @@ static void stm32_dfsdm_dma_buffer_done(void *data)
static int stm32_dfsdm_adc_dma_start(struct iio_dev *indio_dev)
{
struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
+ /*
+ * The DFSDM supports half-word transfers. However, for 16 bits record,
+ * 4 bytes buswidth is kept, to avoid losing samples LSBs when left
+ * shift is required.
+ */
struct dma_slave_config config = {
.src_addr = (dma_addr_t)adc->dfsdm->phys_base,
.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES,
--
2.7.4


2019-06-22 09:33:50

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH 5/5] iio: adc: stm32-dfsdm: add comment for 16 bits record

On Wed, 19 Jun 2019 15:03:51 +0200
Olivier Moysan <[email protected]> wrote:

> Add a comment on DMA configuration for 16 bits record.
>
> Signed-off-by: Olivier Moysan <[email protected]>
Applied.

Thanks,

Jonathan

> ---
> drivers/iio/adc/stm32-dfsdm-adc.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-dfsdm-adc.c
> index d855a605eab6..ee1e0569d0e1 100644
> --- a/drivers/iio/adc/stm32-dfsdm-adc.c
> +++ b/drivers/iio/adc/stm32-dfsdm-adc.c
> @@ -918,6 +918,11 @@ static void stm32_dfsdm_dma_buffer_done(void *data)
> static int stm32_dfsdm_adc_dma_start(struct iio_dev *indio_dev)
> {
> struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
> + /*
> + * The DFSDM supports half-word transfers. However, for 16 bits record,
> + * 4 bytes buswidth is kept, to avoid losing samples LSBs when left
> + * shift is required.
> + */
> struct dma_slave_config config = {
> .src_addr = (dma_addr_t)adc->dfsdm->phys_base,
> .src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES,