Commit 33e101ad authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: pcmmio: remove subdevice pointer math

Convert the comedi_subdevice access from pointer math to array
access.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 623733ff
...@@ -526,6 +526,7 @@ static irqreturn_t interrupt_pcmmio(int irq, void *d) ...@@ -526,6 +526,7 @@ static irqreturn_t interrupt_pcmmio(int irq, void *d)
{ {
int asic, got1 = 0; int asic, got1 = 0;
struct comedi_device *dev = (struct comedi_device *)d; struct comedi_device *dev = (struct comedi_device *)d;
int i;
for (asic = 0; asic < MAX_ASICS; ++asic) { for (asic = 0; asic < MAX_ASICS; ++asic) {
if (irq == devpriv->asics[asic].irq) { if (irq == devpriv->asics[asic].irq) {
...@@ -583,9 +584,8 @@ static irqreturn_t interrupt_pcmmio(int irq, void *d) ...@@ -583,9 +584,8 @@ static irqreturn_t interrupt_pcmmio(int irq, void *d)
printk printk
(KERN_DEBUG "got edge detect interrupt %d asic %d which_chans: %06x\n", (KERN_DEBUG "got edge detect interrupt %d asic %d which_chans: %06x\n",
irq, asic, triggered); irq, asic, triggered);
for (s = dev->subdevices + 2; for (i = 2; i < dev->n_subdevices; i++) {
s < dev->subdevices + dev->n_subdevices; s = &dev->subdevices[i];
++s) {
/* /*
* this is an interrupt subdev, * this is an interrupt subdev,
* and it matches this asic! * and it matches this asic!
...@@ -1076,9 +1076,8 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it) ...@@ -1076,9 +1076,8 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return ret; return ret;
/* First, AI */ /* First, AI */
sdev_no = 0; s = &dev->subdevices[0];
s = dev->subdevices + sdev_no; s->private = &devpriv->sprivs[0];
s->private = devpriv->sprivs + sdev_no;
s->maxdata = (1 << board->ai_bits) - 1; s->maxdata = (1 << board->ai_bits) - 1;
s->range_table = board->ai_range_table; s->range_table = board->ai_range_table;
s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF; s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF;
...@@ -1092,9 +1091,8 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it) ...@@ -1092,9 +1091,8 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
outb(0, subpriv->iobase + 4 + 3); outb(0, subpriv->iobase + 4 + 3);
/* Next, AO */ /* Next, AO */
++sdev_no; s = &dev->subdevices[1];
s = dev->subdevices + sdev_no; s->private = &devpriv->sprivs[1];
s->private = devpriv->sprivs + sdev_no;
s->maxdata = (1 << board->ao_bits) - 1; s->maxdata = (1 << board->ao_bits) - 1;
s->range_table = board->ao_range_table; s->range_table = board->ao_range_table;
s->subdev_flags = SDF_READABLE; s->subdev_flags = SDF_READABLE;
...@@ -1108,14 +1106,13 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it) ...@@ -1108,14 +1106,13 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
outb(0, subpriv->iobase + 3); outb(0, subpriv->iobase + 3);
outb(0, subpriv->iobase + 4 + 3); outb(0, subpriv->iobase + 4 + 3);
++sdev_no;
port = 0; port = 0;
asic = 0; asic = 0;
for (; sdev_no < (int)dev->n_subdevices; ++sdev_no) { for (sdev_no = 2; sdev_no < dev->n_subdevices; ++sdev_no) {
int byte_no; int byte_no;
s = dev->subdevices + sdev_no; s = &dev->subdevices[sdev_no];
s->private = devpriv->sprivs + sdev_no; s->private = &devpriv->sprivs[sdev_no];
s->maxdata = 1; s->maxdata = 1;
s->range_table = &range_digital; s->range_table = &range_digital;
s->subdev_flags = SDF_READABLE | SDF_WRITABLE; s->subdev_flags = SDF_READABLE | SDF_WRITABLE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment