diff options
author | H Hartley Sweeten <hsweeten@visionengravers.com> | 2014-10-31 19:04:36 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-11-04 00:34:18 (GMT) |
commit | 26561101b8c82a9eaf5656e3109b0d94f790fcdb (patch) | |
tree | cf9409d6974fc6db338106c9afde3c169bbb997c /drivers | |
parent | 14f7b68058184910794a9f54898e8228855f50f0 (diff) | |
download | linux-26561101b8c82a9eaf5656e3109b0d94f790fcdb.tar.xz |
staging: comedi: ni_at_a2150: use sample manipulation helpers
Use the recently added sample manipulation helpers to remove the hardcoded
assumption of the sample size.
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')
-rw-r--r-- | drivers/staging/comedi/drivers/ni_at_a2150.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/staging/comedi/drivers/ni_at_a2150.c b/drivers/staging/comedi/drivers/ni_at_a2150.c index 5c17def..69e543a 100644 --- a/drivers/staging/comedi/drivers/ni_at_a2150.c +++ b/drivers/staging/comedi/drivers/ni_at_a2150.c @@ -168,7 +168,6 @@ static irqreturn_t a2150_interrupt(int irq, void *d) struct comedi_cmd *cmd; unsigned int max_points, num_points, residue, leftover; unsigned short dpnt; - static const int sample_size = sizeof(devpriv->dma_buffer[0]); if (!dev->attached) { dev_err(dev->class_dev, "premature interrupt\n"); @@ -206,12 +205,12 @@ static irqreturn_t a2150_interrupt(int irq, void *d) clear_dma_ff(devpriv->dma); /* figure out how many points to read */ - max_points = devpriv->dma_transfer_size / sample_size; + max_points = comedi_bytes_to_samples(s, devpriv->dma_transfer_size); /* residue is the number of points left to be done on the dma * transfer. It should always be zero at this point unless * the stop_src is set to external triggering. */ - residue = get_dma_residue(devpriv->dma) / sample_size; + residue = comedi_bytes_to_samples(s, get_dma_residue(devpriv->dma)); num_points = max_points - residue; if (devpriv->count < num_points && cmd->stop_src == TRIG_COUNT) num_points = devpriv->count; @@ -219,7 +218,8 @@ static irqreturn_t a2150_interrupt(int irq, void *d) /* figure out how many points will be stored next time */ leftover = 0; if (cmd->stop_src == TRIG_NONE) { - leftover = devpriv->dma_transfer_size / sample_size; + leftover = comedi_bytes_to_samples(s, + devpriv->dma_transfer_size); } else if (devpriv->count > max_points) { leftover = devpriv->count - max_points; if (leftover > max_points) @@ -248,7 +248,8 @@ static irqreturn_t a2150_interrupt(int irq, void *d) /* re-enable dma */ if (leftover) { set_dma_addr(devpriv->dma, virt_to_bus(devpriv->dma_buffer)); - set_dma_count(devpriv->dma, leftover * sample_size); + set_dma_count(devpriv->dma, + comedi_samples_to_bytes(s, leftover)); enable_dma(devpriv->dma); } release_dma_lock(flags); |