summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH Hartley Sweeten2012-08-17 04:50:01 +0200
committerGreg Kroah-Hartman2012-08-17 17:17:34 +0200
commitce774eab13606610df53301897e9c003476d7c6c (patch)
treeedc05e40898c0e1f766d0e3d7cd4432b75def33a
parentstaging: comedi: cb_pcimdda: store the pci_dev in the comedi_device (diff)
downloadkernel-qcow2-linux-ce774eab13606610df53301897e9c003476d7c6c.tar.gz
kernel-qcow2-linux-ce774eab13606610df53301897e9c003476d7c6c.tar.xz
kernel-qcow2-linux-ce774eab13606610df53301897e9c003476d7c6c.zip
staging: comedi: cb_pcimdda: cleanup the 8255 subdevice init
The dio_registers variable in the private data is only used to pass the base address to the 8255 subdevice. Remove the variable from the private data and pass the value directly to the subdev_8255_init() function. Make sure to check the return from subdev_8255_init(). That function can fail. For aesthetic reasons, rename the local variable 'err' to 'ret'. 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_pcimdda.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/drivers/staging/comedi/drivers/cb_pcimdda.c b/drivers/staging/comedi/drivers/cb_pcimdda.c
index 4127aa756f6a..b4d1f8b6136f 100644
--- a/drivers/staging/comedi/drivers/cb_pcimdda.c
+++ b/drivers/staging/comedi/drivers/cb_pcimdda.c
@@ -137,7 +137,6 @@ static const struct cb_pcimdda_board cb_pcimdda_boards[] = {
* struct.
*/
struct cb_pcimdda_private {
- unsigned long dio_registers;
char attached_to_8255; /* boolean */
#define MAX_AO_READBACK_CHANNELS 6
@@ -243,11 +242,11 @@ static int cb_pcimdda_attach(struct comedi_device *dev,
struct cb_pcimdda_private *devpriv;
struct pci_dev *pcidev;
struct comedi_subdevice *s;
- int err;
+ int ret;
- err = alloc_private(dev, sizeof(*devpriv));
- if (err)
- return err;
+ ret = alloc_private(dev, sizeof(*devpriv));
+ if (ret)
+ return ret;
devpriv = dev->private;
pcidev = cb_pcimdda_probe(dev, it);
@@ -257,15 +256,14 @@ static int cb_pcimdda_attach(struct comedi_device *dev,
thisboard = comedi_board(dev);
dev->board_name = thisboard->name;
- err = comedi_pci_enable(pcidev, dev->board_name);
- if (err)
- return err;
+ ret = comedi_pci_enable(pcidev, dev->board_name);
+ if (ret)
+ return ret;
dev->iobase = pci_resource_start(pcidev, thisboard->regs_badrindex);
- devpriv->dio_registers = dev->iobase + thisboard->dio_offset;
- err = comedi_alloc_subdevices(dev, 2);
- if (err)
- return err;
+ ret = comedi_alloc_subdevices(dev, 2);
+ if (ret)
+ return ret;
s = dev->subdevices + 0;
@@ -287,11 +285,10 @@ static int cb_pcimdda_attach(struct comedi_device *dev,
if (thisboard->dio_chans) {
switch (thisboard->dio_method) {
case DIO_8255:
- /*
- * this is a straight 8255, so register us with
- * the 8255 driver
- */
- subdev_8255_init(dev, s, NULL, devpriv->dio_registers);
+ ret = subdev_8255_init(dev, s, NULL,
+ dev->iobase + thisboard->dio_offset);
+ if (ret)
+ return ret;
devpriv->attached_to_8255 = 1;
break;
case DIO_INTERNAL: