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

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

staging: comedi: adv_pci_dio: absorb pci_dio_add_do()



This function initializes a digitial output subdevice. For aesthetics,
absorb it into the (*auto_attach).

Remove the improper initialization of the SDF_LSAMPL subdev_flag and
len_chanlist. These are only used by subdevices that support async
commands.

Also remove the unnecessary initilaization of the subdevice 'state'.

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 a1132fc1
Loading
Loading
Loading
Loading
+14 −29
Original line number Diff line number Diff line
@@ -467,34 +467,6 @@ static int pci_dio_add_di(struct comedi_device *dev,
	return 0;
}

static int pci_dio_add_do(struct comedi_device *dev,
			  struct comedi_subdevice *s,
			  const struct diosubd_data *d)
{
	const struct dio_boardtype *board = dev->board_ptr;

	s->type = COMEDI_SUBD_DO;
	s->subdev_flags = SDF_WRITABLE;
	if (d->chans > 16)
		s->subdev_flags |= SDF_LSAMPL;
	s->n_chan = d->chans;
	s->maxdata = 1;
	s->len_chanlist = d->chans;
	s->range_table = &range_digital;
	s->state = 0;
	switch (board->io_access) {
	case IO_8b:
		s->insn_bits = pci_dio_insn_bits_do_b;
		break;
	case IO_16b:
		s->insn_bits = pci_dio_insn_bits_do_w;
		break;
	}
	s->private = (void *)d;

	return 0;
}

static unsigned long pci_dio_override_cardtype(struct pci_dev *pcidev,
					       unsigned long cardtype)
{
@@ -568,7 +540,20 @@ static int pci_dio_auto_attach(struct comedi_device *dev,
		d = &board->sdo[i];
		if (d->chans) {
			s = &dev->subdevices[subdev++];
			pci_dio_add_do(dev, s, d);
			s->type		= COMEDI_SUBD_DO;
			s->subdev_flags	= SDF_WRITABLE;
			s->n_chan	= d->chans;
			s->maxdata	= 1;
			s->range_table	= &range_digital;
			switch (board->io_access) {
			case IO_8b:
				s->insn_bits	= pci_dio_insn_bits_do_b;
				break;
			case IO_16b:
				s->insn_bits	= pci_dio_insn_bits_do_w;
				break;
			}
			s->private	= (void *)d;
		}
	}