commit 92afc2b229038d7b962ae69de5b07bc6c1cf51bf inroduced a logic error
in the DMA size calculation.

If the 'nsamples' is greater than the 'unread_samples' then DMA needs to
be restarted. The current code checks it agains the 'max_samples'.

Signed-off-by: H Hartley Sweeten <hswee...@visionengravers.com>
Cc: Ian Abbott <abbo...@mev.co.uk>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/staging/comedi/drivers/pcl812.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/comedi/drivers/pcl812.c 
b/drivers/staging/comedi/drivers/pcl812.c
index 37cc5e4..3ffb1ea 100644
--- a/drivers/staging/comedi/drivers/pcl812.c
+++ b/drivers/staging/comedi/drivers/pcl812.c
@@ -559,8 +559,8 @@ static void pcl812_ai_setup_dma(struct comedi_device *dev,
         * unread samples and the number of samples remaining in the command.
         */
        nsamples = comedi_nsamples_left(s, max_samples + unread_samples);
-       if (nsamples > max_samples) {
-               nsamples -= max_samples;
+       if (nsamples > unread_samples) {
+               nsamples -= unread_samples;
                desc->size = comedi_samples_to_bytes(s, nsamples);
                comedi_isadma_program(desc);
        }
-- 
2.0.3

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to