staging: comedi: s626: cleanup "subdevice" and "cmd" in s626_irq_handler()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Fri, 22 Mar 2013 22:55:07 +0000 (15:55 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Mar 2013 18:44:43 +0000 (11:44 -0700)
The comedi_subdevice in this function is actually the dev->read_subdev
that was initialized during the attach of the board. Use that instead
of accessing the dev->subdevices array directly.

Also, get the comedi_cmd used in s626_irq_handler() when the function
is first entered.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/s626.c

index ec14667..b655437 100644 (file)
@@ -731,8 +731,8 @@ static irqreturn_t s626_irq_handler(int irq, void *d)
 {
        struct comedi_device *dev = d;
        struct s626_private *devpriv = dev->private;
-       struct comedi_subdevice *s;
-       struct comedi_cmd *cmd;
+       struct comedi_subdevice *s = dev->read_subdev;
+       struct comedi_cmd *cmd = &s->async->cmd;
        struct enc_private *k;
        unsigned long flags;
        int32_t *readaddr;
@@ -760,10 +760,6 @@ static irqreturn_t s626_irq_handler(int irq, void *d)
 
        switch (irqtype) {
        case IRQ_RPS1:          /*  end_of_scan occurs */
-               /*  manage ai subdevice */
-               s = dev->subdevices;
-               cmd = &(s->async->cmd);
-
                /* Init ptr to DMA buffer that holds new ADC data.  We skip the
                 * first uint16_t in the buffer because it contains junk data from
                 * the final ADC of the previous poll list scan.
@@ -808,10 +804,6 @@ static irqreturn_t s626_irq_handler(int irq, void *d)
                comedi_event(dev, s);
                break;
        case IRQ_GPIO3: /* check dio and conter interrupt */
-               /*  manage ai subdevice */
-               s = dev->subdevices;
-               cmd = &(s->async->cmd);
-
                /* s626_dio_clear_irq(dev); */
 
                check_dio_interrupts(dev);