Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 67fb892c authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

staging: comedi: adv_pci1710: only init async command members when needed



The 'len_chanlist' and 'cancel' members of the comedi_subdevice are
only used with async command support. Only initialize them if the irq
was sucessfully requested.

Also, only init the dev->read_subdev if we have the irq.

Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 19cf54dd
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -1264,21 +1264,21 @@ static int pci1710_auto_attach(struct comedi_device *dev,


	if (this_board->n_aichan) {
	if (this_board->n_aichan) {
		s = &dev->subdevices[subdev];
		s = &dev->subdevices[subdev];
		dev->read_subdev = s;
		s->type = COMEDI_SUBD_AI;
		s->type = COMEDI_SUBD_AI;
		s->subdev_flags = SDF_READABLE | SDF_COMMON | SDF_GROUND;
		s->subdev_flags = SDF_READABLE | SDF_COMMON | SDF_GROUND;
		if (this_board->n_aichand)
		if (this_board->n_aichand)
			s->subdev_flags |= SDF_DIFF;
			s->subdev_flags |= SDF_DIFF;
		s->n_chan = this_board->n_aichan;
		s->n_chan = this_board->n_aichan;
		s->maxdata = this_board->ai_maxdata;
		s->maxdata = this_board->ai_maxdata;
		s->len_chanlist = this_board->n_aichan;
		s->range_table = this_board->rangelist_ai;
		s->range_table = this_board->rangelist_ai;
		s->cancel = pci171x_ai_cancel;
		s->insn_read = pci171x_insn_read_ai;
		s->insn_read = pci171x_insn_read_ai;
		if (dev->irq) {
		if (dev->irq) {
			dev->read_subdev = s;
			s->subdev_flags |= SDF_CMD_READ;
			s->subdev_flags |= SDF_CMD_READ;
			s->len_chanlist = s->n_chan;
			s->do_cmdtest = pci171x_ai_cmdtest;
			s->do_cmdtest = pci171x_ai_cmdtest;
			s->do_cmd = pci171x_ai_cmd;
			s->do_cmd = pci171x_ai_cmd;
			s->cancel = pci171x_ai_cancel;
		}
		}
		devpriv->i8254_osc_base = I8254_OSC_BASE_10MHZ;
		devpriv->i8254_osc_base = I8254_OSC_BASE_10MHZ;
		subdev++;
		subdev++;