Browse Source

staging: comedi: s626: async commands require an interrupt

Only hook up the analog input command support if the interrupt is
available.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
H Hartley Sweeten 12 years ago
parent
commit
2281befd94
1 changed files with 6 additions and 4 deletions
  1. 6 4
      drivers/staging/comedi/drivers/s626.c

+ 6 - 4
drivers/staging/comedi/drivers/s626.c

@@ -2641,7 +2641,6 @@ static int s626_auto_attach(struct comedi_device *dev,
 
 	s = &dev->subdevices[0];
 	/* analog input subdevice */
-	dev->read_subdev = s;
 	s->type		= COMEDI_SUBD_AI;
 	s->subdev_flags	= SDF_READABLE | SDF_DIFF | SDF_CMD_READ;
 	s->n_chan	= S626_ADC_CHANNELS;
@@ -2649,9 +2648,12 @@ static int s626_auto_attach(struct comedi_device *dev,
 	s->range_table	= &s626_range_table;
 	s->len_chanlist	= S626_ADC_CHANNELS;
 	s->insn_read	= s626_ai_insn_read;
-	s->do_cmd	= s626_ai_cmd;
-	s->do_cmdtest	= s626_ai_cmdtest;
-	s->cancel	= s626_ai_cancel;
+	if (dev->irq) {
+		dev->read_subdev = s;
+		s->do_cmd	= s626_ai_cmd;
+		s->do_cmdtest	= s626_ai_cmdtest;
+		s->cancel	= s626_ai_cancel;
+	}
 
 	s = &dev->subdevices[1];
 	/* analog output subdevice */