summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH Hartley Sweeten <hartleys@visionengravers.com>2012-10-24 23:31:14 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-10-25 02:35:49 (GMT)
commit618351aed1dc9b0340bc755ffc0dba6caf190299 (patch)
treed1226709732718ed37ac9a6ef3432782f81f4918
parent2730c736d99c766c6e6c7674c4be53fb0f9d3315 (diff)
downloadlinux-fsl-qoriq-618351aed1dc9b0340bc755ffc0dba6caf190299.tar.xz
staging: comedi: cb_pcidda: check for subdev_8255_init() failure
The subdev_8255_init() can fail, make sure to check for it. This board has two 8255 subdevices, one at iobase PCI bar2 and one at iobase PCI bar2 + 4. Init the subdevices using a for() loop to make the code a bit more concise. 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>
-rw-r--r--drivers/staging/comedi/drivers/cb_pcidda.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/staging/comedi/drivers/cb_pcidda.c b/drivers/staging/comedi/drivers/cb_pcidda.c
index 511401f..8371fa2 100644
--- a/drivers/staging/comedi/drivers/cb_pcidda.c
+++ b/drivers/staging/comedi/drivers/cb_pcidda.c
@@ -520,11 +520,13 @@ static int cb_pcidda_attach_pci(struct comedi_device *dev,
s->range_table = thisboard->ranges;
s->insn_write = cb_pcidda_ao_winsn;
- /* two 8255 digital io subdevices */
- s = &dev->subdevices[1];
- subdev_8255_init(dev, s, NULL, iobase_8255);
- s = &dev->subdevices[2];
- subdev_8255_init(dev, s, NULL, iobase_8255 + PORT2A);
+ /* two 8255 digital io subdevices */
+ for (i = 0; i < 2; i++) {
+ s = &dev->subdevices[1 + i];
+ ret = subdev_8255_init(dev, s, NULL, iobase_8255 + (i * 4));
+ if (ret)
+ return ret;
+ }
/* Read the caldac eeprom data */
for (i = 0; i < EEPROM_SIZE; i++)