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

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

staging: comedi: s626: cleanup s626_dio_insn_bits()



Add some local variables to make this function a bit clearer and
remove the unnecessary comments.

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 e920fad2
Loading
Loading
Loading
Loading
+9 −20
Original line number Diff line number Diff line
@@ -1650,33 +1650,22 @@ static void s626_dio_init(struct comedi_device *dev)
	}
}

/* DIO devices are slightly special.  Although it is possible to
 * implement the insn_read/insn_write interface, it is much more
 * useful to applications if you implement the insn_bits interface.
 * This allows packed reading/writing of the DIO channels.  The comedi
 * core can convert between insn_bits and insn_read/write */

static int s626_dio_insn_bits(struct comedi_device *dev,
			      struct comedi_subdevice *s,
			      struct comedi_insn *insn, unsigned int *data)
			      struct comedi_insn *insn,
			      unsigned int *data)
{
	unsigned long group = (unsigned long)s->private;
	unsigned long mask = data[0];
	unsigned long bits = data[1];

	/*
	 * The insn data consists of a mask in data[0] and the new data in
	 * data[1]. The mask defines which bits we are concerning about.
	 * The new data must be anded with the mask.  Each channel
	 * corresponds to a bit.
	 */
	if (data[0]) {
		/* Check if requested ports are configured for output */
		if ((s->io_bits & data[0]) != data[0])
	if (mask) {
		/* Check if requested channels are configured for output */
		if ((s->io_bits & mask) != mask)
			return -EIO;

		s->state &= ~data[0];
		s->state |= data[0] & data[1];

		/* Write out the new digital output lines */
		s->state &= ~mask;
		s->state |= (bits & mask);

		DEBIwrite(dev, LP_WRDOUT(group), s->state);
	}