Skip to content

Commit

Permalink
staging: comedi: pcmuio: remove 'asic' member from subdevice private …
Browse files Browse the repository at this point in the history
…data

The 'asic' associated with a subdevice can be easily calculated. The
functions that use this member in the subdevice private data can only
be called by the subdevices that support interrupts. Just calculate
the 'asic' when needed and remove the member variable and sanity checks.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
bigguiness authored and gregkh committed Dec 6, 2013
1 parent 741ba8c commit 0d1ead4
Showing 1 changed file with 3 additions and 15 deletions.
18 changes: 3 additions & 15 deletions drivers/staging/comedi/drivers/pcmuio.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,6 @@ static const struct pcmuio_board pcmuio_boards[] = {
struct pcmuio_subdev_private {
/* The below is only used for intr subdevices */
struct {
/* if non-negative, this subdev has an interrupt asic */
int asic;
/*
* subdev-relative channel mask for channels
* we are interested in
Expand Down Expand Up @@ -279,11 +277,7 @@ static void pcmuio_stop_intr(struct comedi_device *dev,
struct comedi_subdevice *s)
{
struct pcmuio_subdev_private *subpriv = s->private;
int asic;

asic = subpriv->intr.asic;
if (asic < 0)
return; /* not an interrupt subdev */
int asic = s->index / 2;

subpriv->intr.enabled_mask = 0;
subpriv->intr.active = 0;
Expand Down Expand Up @@ -399,14 +393,10 @@ static int pcmuio_start_intr(struct comedi_device *dev,
subpriv->intr.active = 0;
return 1;
} else {
unsigned bits = 0, pol_bits = 0, n;
int asic;
struct comedi_cmd *cmd = &s->async->cmd;
int asic = s->index / 2;
unsigned bits = 0, pol_bits = 0, n;

asic = subpriv->intr.asic;
if (asic < 0)
return 1; /* not an interrupt
subdev */
subpriv->intr.enabled_mask = 0;
subpriv->intr.active = 1;
if (cmd->chanlist) {
Expand Down Expand Up @@ -636,15 +626,13 @@ static int pcmuio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
if ((sdev_no == 0 && dev->irq) ||
(sdev_no == 2 && devpriv->irq2)) {
/* setup the interrupt subdevice */
subpriv->intr.asic = sdev_no / 2;
dev->read_subdev = s;
s->subdev_flags |= SDF_CMD_READ;
s->cancel = pcmuio_cancel;
s->do_cmd = pcmuio_cmd;
s->do_cmdtest = pcmuio_cmdtest;
s->len_chanlist = s->n_chan;
} else {
subpriv->intr.asic = -1;
s->len_chanlist = 1;
}
spin_lock_init(&subpriv->intr.spinlock);
Expand Down

0 comments on commit 0d1ead4

Please sign in to comment.