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

staging: comedi: pcmmio: tidy up pcmmio_handle_dio_intr()



Refactor the code to remove some of the indent levels.

Remove 'mytrig', the shift and mask end up making it the same as 'triggered'
anyway.

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 967e7e5a
Loading
Loading
Loading
Loading
+33 −32
Original line number Diff line number Diff line
@@ -359,25 +359,27 @@ static void pcmmio_handle_dio_intr(struct comedi_device *dev,
				   unsigned int triggered)
{
	struct pcmmio_private *devpriv = dev->private;
	unsigned int oldevents = s->async->events;
	unsigned int len = s->async->cmd.chanlist_len;
	unsigned int val = 0;
	unsigned long flags;
	unsigned oldevents;
	int i;

	spin_lock_irqsave(&devpriv->spinlock, flags);

	oldevents = s->async->events;
	if (!devpriv->active)
		goto done;

	if (devpriv->active) {
		unsigned mytrig = ((triggered >> 0) & ((1 << 24) - 1)) << 0;
		if (mytrig & devpriv->enabled_mask) {
			unsigned int val = 0;
			unsigned int n, ch, len;
	if (!(triggered & devpriv->enabled_mask))
		goto done;

	for (i = 0; i < len; i++) {
		unsigned int chan = CR_CHAN(s->async->cmd.chanlist[i]);

			len = s->async->cmd.chanlist_len;
			for (n = 0; n < len; n++) {
				ch = CR_CHAN(s->async->cmd.chanlist[n]);
				if (mytrig & (1U << ch))
					val |= (1U << n);
		if (triggered & (1 << chan))
			val |= (1 << i);
	}

	/* Write the scan to the buffer. */
	if (comedi_buf_put(s->async, val) &&
	    comedi_buf_put (s->async, val >> 16)) {
@@ -400,9 +402,8 @@ static void pcmmio_handle_dio_intr(struct comedi_device *dev,
			}
		}
	}
		}
	}

done:
	spin_unlock_irqrestore(&devpriv->spinlock, flags);

	if (oldevents != s->async->events)