staging: comedi: remove unused 'channel flags' support
authorIan Abbott <abbotti@mev.co.uk>
Mon, 7 Oct 2013 15:50:05 +0000 (16:50 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Oct 2013 02:00:41 +0000 (19:00 -0700)
The `flags` and `flaglist` members of `struct comedi_subdevice` were
defined to supply "all-channel" flags via the `COMEDI_SUBDINFO` ioctl,
or "channel-specific" flags via the `COMEDI_CHANINFO` ioctls,
respectively.  However, no comedi driver has ever set them.

It's not entirely clear how "all-channel" flags would differ from the
"subdevice" flags passed by `COMEDI_SUBDINFO`.  It is conceivable that
"channel-specific" flags could be used to describe different analog
reference values (or whatever) supported by different channels.
Presumably these would use some sub-set of the `SDF_xxx` subdevice flag
values, or possibly the `CR_xxx` flag values that get packed into a
"chanspec" value (along with a channel number and range code).  The
original intentions are lost in the mists of time.

For now, just remove the `flags` and `flaglist` members from `struct
comedi_subdevice` and behave as though they have been left at their
default values (0 or NULL) by the low-level comedi driver.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/comedi_fops.c
drivers/staging/comedi/comedidev.h

index 1636c7ca57e237fcd516141933c5047ee12131da..ff0e46d513ec15c984b3c971733715449a1732fe 100644 (file)
@@ -806,7 +806,6 @@ static int do_subdinfo_ioctl(struct comedi_device *dev,
                } else {
                        us->range_type = 0;     /* XXX */
                }
-               us->flags = s->flags;
 
                if (s->busy)
                        us->subd_flags |= SDF_BUSY;
@@ -818,8 +817,6 @@ static int do_subdinfo_ioctl(struct comedi_device *dev,
                        us->subd_flags |= SDF_LOCK_OWNER;
                if (!s->maxdata && s->maxdata_list)
                        us->subd_flags |= SDF_MAXDATA;
-               if (s->flaglist)
-                       us->subd_flags |= SDF_FLAGS;
                if (s->range_table_list)
                        us->subd_flags |= SDF_RANGETYPE;
                if (s->do_cmd)
@@ -875,13 +872,8 @@ static int do_chaninfo_ioctl(struct comedi_device *dev,
                        return -EFAULT;
        }
 
-       if (it.flaglist) {
-               if (!s->flaglist)
-                       return -EINVAL;
-               if (copy_to_user(it.flaglist, s->flaglist,
-                                s->n_chan * sizeof(unsigned int)))
-                       return -EFAULT;
-       }
+       if (it.flaglist)
+               return -EINVAL; /* flaglist not supported */
 
        if (it.rangelist) {
                int i;
index 6db099bdbc580a8311b4b6d6b638b4ad14e8b443..7fa13417e6daff9349870473b22ab31054d494b6 100644 (file)
@@ -57,9 +57,6 @@ struct comedi_subdevice {
        unsigned int maxdata;   /* if maxdata==0, use list */
        const unsigned int *maxdata_list;       /* list is channel specific */
 
-       unsigned int flags;
-       const unsigned int *flaglist;
-
        unsigned int settling_time_0;
 
        const struct comedi_lrange *range_table;