range fixes for multiple channels
authorDavid Schleef <ds@schleef.org>
Wed, 10 May 2000 22:51:42 +0000 (22:51 +0000)
committerDavid Schleef <ds@schleef.org>
Wed, 10 May 2000 22:51:42 +0000 (22:51 +0000)
comedi/comedi_fops.c
comedi/range.c

index b6f1e0acaba125d1971c72099805e9df436583fa..4f025d5371b2ccd75ab669010dc73f95876b5fe6 100644 (file)
@@ -204,7 +204,7 @@ static int do_subdinfo_ioctl(comedi_device *dev,comedi_subdinfo *arg,void *file)
                us->len_chanlist        = s->len_chanlist;
                us->maxdata             = s->maxdata;
                if(s->range_table){
-                       us->range_type  = (dev->minor<<24)|(i<<20)|(0<<16)|
+                       us->range_type  = (dev->minor<<28)|(i<<24)|(0<<16)|
                                        (s->range_table->length);
                }else{
                        us->range_type  = 0; /* XXX */
@@ -291,7 +291,7 @@ static int do_chaninfo_ioctl(comedi_device *dev,comedi_chaninfo *arg)
                for(i=0;i<s->n_chan;i++){
                        int x;
 
-                       x=(dev->minor<<24)|(it.subdev<<20)|(i<<16)|
+                       x=(dev->minor<<28)|(it.subdev<<24)|(i<<16)|
                                (s->range_table_list[i]->length);
                        put_user(x,it.rangelist+i);
                }
index 21b7bc1e1c5b83640ca35f4479ab5e1e42782069..bce10dc292bb766445742338ecb28b920895d497 100644 (file)
@@ -57,8 +57,8 @@ int do_rangeinfo_ioctl(comedi_device *dev,comedi_rangeinfo *arg)
        if(copy_from_user(&it,arg,sizeof(comedi_rangeinfo)))
                return -EFAULT;
 
-       minor=(it.range_type>>24)&0xf;
-       subd=(it.range_type>>20)&0xf;
+       minor=(it.range_type>>28)&0xf;
+       subd=(it.range_type>>24)&0xf;
        chan=(it.range_type>>16)&0xff;
 
        if(minor>COMEDI_NDEVICES)