staging: comedi: ni_at_a2150: cleanup a2150_probe()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Thu, 18 Jun 2015 17:54:43 +0000 (10:54 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 19 Jun 2015 04:19:01 +0000 (21:19 -0700)
Make this function return a pointer to the boardinfo instead of an index.

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/ni_at_a2150.c

index 60469bb77ee434dcc78ef114ff7ee3f2e606af51..1cd4869d328675a3037885cdcdcc60a2d6aea2b0 100644 (file)
@@ -687,12 +687,14 @@ static void a2150_free_dma(struct comedi_device *dev)
                comedi_isadma_free(devpriv->dma);
 }
 
-/* probes board type, returns offset */
-static int a2150_probe(struct comedi_device *dev)
+static const struct a2150_board *a2150_probe(struct comedi_device *dev)
 {
-       int status = inw(dev->iobase + STATUS_REG);
+       int id = ID_BITS(inw(dev->iobase + STATUS_REG));
 
-       return ID_BITS(status);
+       if (id >= ARRAY_SIZE(a2150_boards))
+               return NULL;
+
+       return &a2150_boards[id];
 }
 
 static int a2150_attach(struct comedi_device *dev, struct comedi_devconfig *it)
@@ -712,12 +714,10 @@ static int a2150_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        if (ret)
                return ret;
 
-       i = a2150_probe(dev);
-       if (i >= ARRAY_SIZE(a2150_boards))
+       thisboard = a2150_probe(dev);
+       if (!thisboard)
                return -ENODEV;
-
-       dev->board_ptr = a2150_boards + i;
-       thisboard = dev->board_ptr;
+       dev->board_ptr = thisboard;
        dev->board_name = thisboard->name;
 
        /* an IRQ and DMA are required to support async commands */