Fixes from Nils Juergens <ju@isf.rwth-aachen.de>
authorDavid Schleef <ds@schleef.org>
Wed, 26 Nov 2003 21:36:43 +0000 (21:36 +0000)
committerDavid Schleef <ds@schleef.org>
Wed, 26 Nov 2003 21:36:43 +0000 (21:36 +0000)
comedi/drivers/adv_pci1710.c

index ea297d2b6264c79a1f962b9c2781a3b154a45050..1fe2e30fc63829927394e3edd4f3b0ff1f80736d 100644 (file)
@@ -599,6 +599,11 @@ static void interrupt_pci1710_every_sample(void *d)
 #else
                comedi_buf_put( s->async, inw(dev->iobase+PCI171x_AD_DATA) & 0x0fff);
 #endif
+               ++s->async->cur_chan;
+
+               if(s->async->cur_chan>=devpriv->ai_n_chan){
+                       s->async->cur_chan=0;
+               }
 
                if(s->async->cur_chan == 0){    // one scan done
                        devpriv->ai_act_scan++;
@@ -724,7 +729,9 @@ static irqreturn_t interrupt_service_pci1710(int irq, void *d, struct pt_regs *r
 
        if (devpriv->ai_et) {   // Switch from initial TRIG_EXT to TRIG_xxx.
                devpriv->ai_et = 0;
-               outw(Control_SW, dev->iobase+PCI171x_CONTROL);
+               devpriv->CntrlReg&=Control_CNT0;
+               devpriv->CntrlReg|=Control_SW;  // set software trigger
+               outw(devpriv->CntrlReg, dev->iobase+PCI171x_CONTROL);
                devpriv->CntrlReg=devpriv->ai_et_CntrlReg;
                outb(0,dev->iobase + PCI171x_CLRFIFO);
                outb(0,dev->iobase + PCI171x_CLRINT);