]> git.karo-electronics.de Git - linux-beck.git/commitdiff
staging: comedi: pcl724: tidy up subdev_8255_init() calls
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Mon, 10 Jun 2013 17:15:55 +0000 (10:15 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 12 Jun 2013 00:16:46 +0000 (17:16 -0700)
subdev_8255_init() can fail, make sure to check for it and return
the errno.

The private function subdev_8255_cb() is identical to the default
io callback used by the 8255 driver. Remove it and pass NULL to
subdev_8255_init() so the default callback will be used.

The private function subdev_8255mapped_cb() is used for the memory
memory mapped io of the pet48dio board. Rename this function so
it has namespace associated with the driver.

Casting the iobase passed to subdev_8255_init() is not needed.
Use a local variable for the iobase and remove the casts.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/pcl724.c

index bfa969af95da6ebe19afdaa9f094bde30ed4adf0..5391294ef14cb6f47416a1fc4b5158ac9377b985 100644 (file)
@@ -94,19 +94,7 @@ static const struct pcl724_board boardtypes[] = {
        },
 };
 
-static int subdev_8255_cb(int dir, int port, int data, unsigned long arg)
-{
-       unsigned long iobase = arg;
-
-       if (dir) {
-               outb(data, iobase + port);
-               return 0;
-       } else {
-               return inb(iobase + port);
-       }
-}
-
-static int subdev_8255mapped_cb(int dir, int port, int data,
+static int pcl724_8255mapped_io(int dir, int port, int data,
                                unsigned long iobase)
 {
        int movport = SIZE_8255 * (iobase >> 12);
@@ -127,6 +115,7 @@ static int pcl724_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct pcl724_board *board = comedi_board(dev);
        struct comedi_subdevice *s;
+       unsigned long iobase;
        unsigned int iorange;
        int ret, i, n_subdevices;
 
@@ -150,13 +139,15 @@ static int pcl724_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        for (i = 0; i < dev->n_subdevices; i++) {
                s = &dev->subdevices[i];
                if (board->is_pet48) {
-                       subdev_8255_init(dev, s, subdev_8255mapped_cb,
-                                        (unsigned long)(dev->iobase +
-                                                        i * 0x1000));
-               } else
-                       subdev_8255_init(dev, s, subdev_8255_cb,
-                                        (unsigned long)(dev->iobase +
-                                                        SIZE_8255 * i));
+                       iobase = dev->iobase + (i * 0x1000);
+                       ret = subdev_8255_init(dev, s, pcl724_8255mapped_io,
+                                              iobase);
+               } else {
+                       iobase = dev->iobase + (i * SIZE_8255);
+                       ret = subdev_8255_init(dev, s, NULL, iobase);
+               }
+               if (ret)
+                       return ret;
        }
 
        return 0;