Fixed problem with reporting of insn_bits support duw to it not being null
authorFrank Mori Hess <fmhess@speakeasy.net>
Tue, 16 Sep 2008 14:46:52 +0000 (14:46 +0000)
committerFrank Mori Hess <fmhess@speakeasy.net>
Tue, 16 Sep 2008 14:46:52 +0000 (14:46 +0000)
when it is not supported, but rather points at insn_inval.

comedi/comedi_fops.c
comedi/drivers.c
include/linux/comedidev.h

index de4394716973c19110e5a050dfa6de2fcfbab86e..c6af6dd3c2bd9f4445bd8ca5b96169d0be89b940 100644 (file)
@@ -434,7 +434,7 @@ static int do_subdinfo_ioctl(comedi_device * dev, comedi_subdinfo * arg,
                if (s->do_cmd)
                        us->subd_flags |= SDF_CMD;
 
-               if (s->insn_bits)
+               if (s->insn_bits != &insn_inval)
                        us->insn_bits_support = COMEDI_SUPPORTED;
                else
                        us->insn_bits_support = COMEDI_UNSUPPORTED;
index 36cbf4b964ab75062f9193f227d7dcf84b8e881b..16df91e75f76020c0d5468dce41835c46e4b3f1e 100644 (file)
@@ -48,8 +48,6 @@
 static int postconfig(comedi_device * dev);
 static int insn_rw_emulate_bits(comedi_device * dev, comedi_subdevice * s,
        comedi_insn * insn, lsampl_t * data);
-static int insn_inval(comedi_device * dev, comedi_subdevice * s,
-       comedi_insn * insn, lsampl_t * data);
 static void *comedi_recognize(comedi_driver * driv, const char *name);
 static void comedi_report_boards(comedi_driver * driv);
 static int poll_invalid(comedi_device * dev, comedi_subdevice * s);
@@ -361,7 +359,7 @@ static int poll_invalid(comedi_device * dev, comedi_subdevice * s)
        return -EINVAL;
 }
 
-static int insn_inval(comedi_device * dev, comedi_subdevice * s,
+int insn_inval(comedi_device * dev, comedi_subdevice * s,
        comedi_insn * insn, lsampl_t * data)
 {
        return -EINVAL;
index 796e00bb05598b3c94e64b818757c6a050dbe9c2..26e836f172a83962b911d23b31b9954a73de9c92 100644 (file)
@@ -396,6 +396,8 @@ int check_chanlist(comedi_subdevice * s, int n, unsigned int *chanlist);
 void comedi_set_subdevice_runflags(comedi_subdevice * s, unsigned mask,
        unsigned bits);
 unsigned comedi_get_subdevice_runflags(comedi_subdevice * s);
+int insn_inval(comedi_device * dev, comedi_subdevice * s,
+       comedi_insn * insn, lsampl_t * data);
 
 /* range stuff */