From: H Hartley Sweeten Date: Wed, 22 Oct 2014 22:36:52 +0000 (-0700) Subject: staging: comedi: amplc_pci230: use comedi_buf_write_samples() X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=48e08de087ad53b9893cbc44d5ce88e0b8d9f025;p=openwrt%2Fstaging%2Fblogic.git staging: comedi: amplc_pci230: use comedi_buf_write_samples() Use comedi_buf_write_samples() to add the sample to the async buffer. The async events will set properly by the core. A dev_warn() message will also be output by the core if the buffer overflows. Remove the unnecessary events and dev_err() message in the driver. The core will also add the COMEDI_CB_BLOCK event when data is written to the async buffer. Remove the unnecessary event in the driver. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/amplc_pci230.c b/drivers/staging/comedi/drivers/amplc_pci230.c index f9b952f7173e..44c967f43d9a 100644 --- a/drivers/staging/comedi/drivers/amplc_pci230.c +++ b/drivers/staging/comedi/drivers/amplc_pci230.c @@ -2053,6 +2053,7 @@ static void pci230_handle_ai(struct comedi_device *dev, unsigned int i; unsigned int todo; unsigned int fifoamount; + unsigned short val; /* Determine number of samples to read. */ if (cmd->stop_src != TRIG_COUNT) { @@ -2099,12 +2100,10 @@ static void pci230_handle_ai(struct comedi_device *dev, fifoamount = 1; } } - /* Read sample and store in Comedi's circular buffer. */ - if (comedi_buf_put(s, pci230_ai_read(dev)) == 0) { - events |= COMEDI_CB_ERROR | COMEDI_CB_OVERFLOW; - dev_err(dev->class_dev, "AI buffer overflow\n"); - break; - } + + val = pci230_ai_read(dev); + comedi_buf_write_samples(s, &val, 1); + fifoamount--; devpriv->ai_scan_pos++; if (devpriv->ai_scan_pos == scanlen) { @@ -2117,9 +2116,6 @@ static void pci230_handle_ai(struct comedi_device *dev, if (cmd->stop_src == TRIG_COUNT && devpriv->ai_scan_count == 0) { /* End of acquisition. */ events |= COMEDI_CB_EOA; - } else { - /* More samples required, tell Comedi to block. */ - events |= COMEDI_CB_BLOCK; } async->events |= events; if (!(async->events & COMEDI_CB_CANCEL_MASK)) {