summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2015-01-20 21:53:25 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-01-25 11:59:12 (GMT)
commitd6c42d78c019ecef96ee09b20e55adf46fd430a2 (patch)
treeebd33cd3036e303c3c4faa4f337bed6e3250b34d /drivers/staging/comedi
parentf01663ec35eb37cd30bcdd0b97281bd147f29f45 (diff)
downloadlinux-d6c42d78c019ecef96ee09b20e55adf46fd430a2.tar.xz
staging: comedi: adv_pci1710: transfer all ai samples in one step
The two step process to transfer the ai samples in pci1710_handle_fifo() doesn't make any sense. If the async buffer does not have enough room for the samples the core will set the async event COMEDI_CB_OVERFLOW which will cause the async command to cancel. Splitting the transfer doesn't add any value. Transfer all the samples in one step to simplify the code. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi')
-rw-r--r--drivers/staging/comedi/drivers/adv_pci1710.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c
index 0a50053..76075db 100644
--- a/drivers/staging/comedi/drivers/adv_pci1710.c
+++ b/drivers/staging/comedi/drivers/adv_pci1710.c
@@ -720,7 +720,6 @@ static void pci1710_handle_fifo(struct comedi_device *dev,
{
struct pci1710_private *devpriv = dev->private;
struct comedi_cmd *cmd = &s->async->cmd;
- unsigned int nsamples;
unsigned int m;
m = inw(dev->iobase + PCI171x_STATUS);
@@ -736,18 +735,8 @@ static void pci1710_handle_fifo(struct comedi_device *dev,
return;
}
- nsamples = devpriv->max_samples;
- if (comedi_samples_to_bytes(s, nsamples) >= s->async->prealloc_bufsz) {
- m = comedi_bytes_to_samples(s, s->async->prealloc_bufsz);
- if (move_block_from_fifo(dev, s, m))
- return;
- nsamples -= m;
- }
-
- if (nsamples) {
- if (move_block_from_fifo(dev, s, nsamples))
- return;
- }
+ if (move_block_from_fifo(dev, s, devpriv->max_samples))
+ return;
if (cmd->stop_src == TRIG_COUNT &&
s->async->scans_done >= cmd->stop_arg) {