From: H Hartley Sweeten Date: Tue, 4 Nov 2014 17:55:27 +0000 (-0700) Subject: staging: comedi: addi_apci_3120: use comedi_bytes_to_samples() X-Git-Tag: v3.19-rc1~66^2~252 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=c78a1f487028775b146e3be89690f19b845409b7;p=karo-tx-linux.git staging: comedi: addi_apci_3120: use comedi_bytes_to_samples() Use the helper function to calculate the number of samples in the DMA buffer. For aesthetics, tidy up the local variables. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c index f18622c52e16..c6008711c3d3 100644 --- a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c +++ b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c @@ -12,20 +12,21 @@ static void apci3120_interrupt_dma(int irq, void *d) struct comedi_async *async = s->async; struct comedi_cmd *cmd = &async->cmd; struct apci3120_dmabuf *dmabuf; - unsigned int samplesinbuf; + unsigned int nbytes; + unsigned int nsamples; dmabuf = &devpriv->dmabuf[devpriv->cur_dmabuf]; - samplesinbuf = dmabuf->use_size - inl(devpriv->amcc + AMCC_OP_REG_MWTC); + nbytes = dmabuf->use_size - inl(devpriv->amcc + AMCC_OP_REG_MWTC); - if (samplesinbuf < dmabuf->use_size) + if (nbytes < dmabuf->use_size) dev_err(dev->class_dev, "Interrupted DMA transfer!\n"); - if (samplesinbuf & 1) { + if (nbytes & 1) { dev_err(dev->class_dev, "Odd count of bytes in DMA ring!\n"); async->events |= COMEDI_CB_ERROR; return; } - samplesinbuf = samplesinbuf >> 1; /* number of received samples */ + nsamples = comedi_bytes_to_samples(s, nbytes); if (devpriv->use_double_buffer) { struct apci3120_dmabuf *next_dmabuf; @@ -36,8 +37,8 @@ static void apci3120_interrupt_dma(int irq, void *d) apci3120_init_dma(dev, next_dmabuf); } - if (samplesinbuf) { - comedi_buf_write_samples(s, dmabuf->virt, samplesinbuf); + if (nsamples) { + comedi_buf_write_samples(s, dmabuf->virt, nsamples); if (!(cmd->flags & CMDF_WAKE_EOS)) async->events |= COMEDI_CB_EOS;