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
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,