Browse Source

staging: comedi: ni_pcidio: Mark buffer for writing when setting up DMA.

When setting up the DMA for 'read' streaming acquisition on the DIO
subdevice, mark the whole buffer as writable before starting the DMA.
This prevents a spurious detection of a DMA overwrite of good data
during the first interrupt.

Problem reported by Nicholas Nell.  Fix suggested by Frank Mori Hess.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott 13 years ago
parent
commit
41add2e84b
1 changed files with 3 additions and 0 deletions
  1. 3 0
      drivers/staging/comedi/drivers/ni_pcidio.c

+ 3 - 0
drivers/staging/comedi/drivers/ni_pcidio.c

@@ -1012,6 +1012,9 @@ static int setup_mite_dma(struct comedi_device *dev, struct comedi_subdevice *s)
 
 	devpriv->di_mite_chan->dir = COMEDI_INPUT;
 
+	/* write alloc the entire buffer */
+	comedi_buf_write_alloc(s->async, s->async->prealloc_bufsz);
+
 	mite_prep_dma(devpriv->di_mite_chan, 32, 32);
 
 	mite_dma_arm(devpriv->di_mite_chan);