On 26/08/14 00:04, H Hartley Sweeten wrote:
The comedi core does the sanity checking of the comedi_insn before
calling the (*insn_write). Remove the unnecessary checks.

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/me4000.c | 33 ++-------------------------------
  1 file changed, 2 insertions(+), 31 deletions(-)

diff --git a/drivers/staging/comedi/drivers/me4000.c 
b/drivers/staging/comedi/drivers/me4000.c
index 2cc5bec..d20b508 100644
--- a/drivers/staging/comedi/drivers/me4000.c
+++ b/drivers/staging/comedi/drivers/me4000.c
@@ -1188,44 +1188,15 @@ static irqreturn_t me4000_ai_isr(int irq, void *dev_id)
        return IRQ_HANDLED;
  }

-/*=============================================================================
-  Analog output section
-  ===========================================================================*/
-
  static int me4000_ao_insn_write(struct comedi_device *dev,
                                struct comedi_subdevice *s,
-                               struct comedi_insn *insn, unsigned int *data)
+                               struct comedi_insn *insn,
+                               unsigned int *data)
  {
-       const struct me4000_board *thisboard = comedi_board(dev);
        struct me4000_info *info = dev->private;
        int chan = CR_CHAN(insn->chanspec);
-       int rang = CR_RANGE(insn->chanspec);
-       int aref = CR_AREF(insn->chanspec);
        unsigned int tmp;

-       if (insn->n == 0) {
-               return 0;
-       } else if (insn->n > 1) {
-               dev_err(dev->class_dev, "Invalid instruction length %d\n",
-                       insn->n);
-               return -EINVAL;
-       }
-
-       if (chan >= thisboard->ao_nchan) {
-               dev_err(dev->class_dev, "Invalid channel %d\n", insn->n);
-               return -EINVAL;
-       }
-
-       if (rang != 0) {
-               dev_err(dev->class_dev, "Invalid range %d\n", insn->n);
-               return -EINVAL;
-       }
-
-       if (aref != AREF_GROUND && aref != AREF_COMMON) {
-               dev_err(dev->class_dev, "Invalid aref %d\n", insn->n);
-               return -EINVAL;
-       }
-
        /* Stop any running conversion */
        tmp = inl(dev->iobase + ME4000_AO_CTRL_REG(chan));
        tmp |= ME4000_AO_CTRL_BIT_IMMEDIATE_STOP;


I thought you might have updated this function to handle the insn->n > 1 case as well. Maybe in a follow-up patch?

--
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbo...@mev.co.uk>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to