fixed previous over-eager to change things that dont need to change patch, real probl...
authorFrank Mori Hess <fmhess@speakeasy.net>
Fri, 30 Mar 2001 20:31:59 +0000 (20:31 +0000)
committerFrank Mori Hess <fmhess@speakeasy.net>
Fri, 30 Mar 2001 20:31:59 +0000 (20:31 +0000)
comedi/drivers.c

index aa82e91bc9e03db2537361235d45c523d074a45d..2d03e41b65d858469b1757ee594368be320d26b5 100644 (file)
@@ -468,10 +468,6 @@ static int insn_emulate_bits(comedi_device *dev,comedi_subdevice *s,
                        return -EINVAL;
                new_data[0] = 1<<chan; /* mask */
                new_data[1] = data[0]?(1<<chan):0; /* bits */
-       }else if(insn->insn == INSN_READ){
-               if(!(s->subdev_flags & SDF_READABLE))
-                       return -EINVAL;
-               data[0] = (new_data[1]>>chan)&1;
        }else {
                new_data[0] = 0;
                new_data[1] = 0;
@@ -480,6 +476,12 @@ static int insn_emulate_bits(comedi_device *dev,comedi_subdevice *s,
        ret = s->insn_bits(dev,s,&new_insn,new_data);
        if(ret<0)return ret;
 
+       if(insn->insn == INSN_READ){
+               if(!(s->subdev_flags & SDF_READABLE))
+                       return -EINVAL;
+               data[0] = (new_data[1]>>chan)&1;
+       }
+
        return 1;
 }