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 <[email protected]>
Cc: Ian Abbott <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
---
 drivers/staging/comedi/drivers/s626.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/comedi/drivers/s626.c 
b/drivers/staging/comedi/drivers/s626.c
index ec14667..b655437 100644
--- a/drivers/staging/comedi/drivers/s626.c
+++ b/drivers/staging/comedi/drivers/s626.c
@@ -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);
-- 
1.8.1.4

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to