summaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2013-04-22 18:32:25 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-04-23 10:41:37 -0700
commit4f71ceebebe8af5a4cbedf13c88d1908a96987fc (patch)
treefabbdf3cb14e741294c4c69c1b9e07ac29cd9d7c /drivers/staging/comedi
parent92046ae49dec96ec40d861721c922c50fabf1756 (diff)
downloadop-kernel-dev-4f71ceebebe8af5a4cbedf13c88d1908a96987fc.zip
op-kernel-dev-4f71ceebebe8af5a4cbedf13c88d1908a96987fc.tar.gz
staging: comedi: das800: move das800_probe()
For aesthetic reasons, move the das800_probe() function near its only caller, das800_attach(). 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>
Diffstat (limited to 'drivers/staging/comedi')
-rw-r--r--drivers/staging/comedi/drivers/das800.c132
1 files changed, 65 insertions, 67 deletions
diff --git a/drivers/staging/comedi/drivers/das800.c b/drivers/staging/comedi/drivers/das800.c
index b3221b7..630a14d 100644
--- a/drivers/staging/comedi/drivers/das800.c
+++ b/drivers/staging/comedi/drivers/das800.c
@@ -235,73 +235,6 @@ static void enable_das800(struct comedi_device *dev);
static void disable_das800(struct comedi_device *dev);
static int das800_set_frequency(struct comedi_device *dev);
-/* checks and probes das-800 series board type */
-static int das800_probe(struct comedi_device *dev)
-{
- const struct das800_board *thisboard = comedi_board(dev);
- int id_bits;
- unsigned long irq_flags;
- int board;
-
- /* 'comedi spin lock irqsave' disables even rt interrupts, we use them to protect indirect addressing */
- spin_lock_irqsave(&dev->spinlock, irq_flags);
- outb(ID, dev->iobase + DAS800_GAIN); /* select base address + 7 to be ID register */
- id_bits = inb(dev->iobase + DAS800_ID) & 0x3; /* get id bits */
- spin_unlock_irqrestore(&dev->spinlock, irq_flags);
-
- board = thisboard - das800_boards;
-
- switch (id_bits) {
- case 0x0:
- if (board == das800) {
- dev_dbg(dev->class_dev, "Board model: DAS-800\n");
- return board;
- }
- if (board == ciodas800) {
- dev_dbg(dev->class_dev, "Board model: CIO-DAS800\n");
- return board;
- }
- dev_dbg(dev->class_dev, "Board model (probed): DAS-800\n");
- return das800;
- break;
- case 0x2:
- if (board == das801) {
- dev_dbg(dev->class_dev, "Board model: DAS-801\n");
- return board;
- }
- if (board == ciodas801) {
- dev_dbg(dev->class_dev, "Board model: CIO-DAS801\n");
- return board;
- }
- dev_dbg(dev->class_dev, "Board model (probed): DAS-801\n");
- return das801;
- break;
- case 0x3:
- if (board == das802) {
- dev_dbg(dev->class_dev, "Board model: DAS-802\n");
- return board;
- }
- if (board == ciodas802) {
- dev_dbg(dev->class_dev, "Board model: CIO-DAS802\n");
- return board;
- }
- if (board == ciodas80216) {
- dev_dbg(dev->class_dev, "Board model: CIO-DAS802/16\n");
- return board;
- }
- dev_dbg(dev->class_dev, "Board model (probed): DAS-802\n");
- return das802;
- break;
- default:
- dev_dbg(dev->class_dev,
- "Board model: probe returned 0x%x (unknown)\n",
- id_bits);
- return board;
- break;
- }
- return -1;
-}
-
/* interrupt service routine */
static irqreturn_t das800_interrupt(int irq, void *d)
{
@@ -729,6 +662,71 @@ static int das800_set_frequency(struct comedi_device *dev)
return 0;
}
+static int das800_probe(struct comedi_device *dev)
+{
+ const struct das800_board *thisboard = comedi_board(dev);
+ int id_bits;
+ unsigned long irq_flags;
+ int board;
+
+ spin_lock_irqsave(&dev->spinlock, irq_flags);
+ outb(ID, dev->iobase + DAS800_GAIN);
+ id_bits = inb(dev->iobase + DAS800_ID) & 0x3;
+ spin_unlock_irqrestore(&dev->spinlock, irq_flags);
+
+ board = thisboard - das800_boards;
+
+ switch (id_bits) {
+ case 0x0:
+ if (board == das800) {
+ dev_dbg(dev->class_dev, "Board model: DAS-800\n");
+ return board;
+ }
+ if (board == ciodas800) {
+ dev_dbg(dev->class_dev, "Board model: CIO-DAS800\n");
+ return board;
+ }
+ dev_dbg(dev->class_dev, "Board model (probed): DAS-800\n");
+ return das800;
+ break;
+ case 0x2:
+ if (board == das801) {
+ dev_dbg(dev->class_dev, "Board model: DAS-801\n");
+ return board;
+ }
+ if (board == ciodas801) {
+ dev_dbg(dev->class_dev, "Board model: CIO-DAS801\n");
+ return board;
+ }
+ dev_dbg(dev->class_dev, "Board model (probed): DAS-801\n");
+ return das801;
+ break;
+ case 0x3:
+ if (board == das802) {
+ dev_dbg(dev->class_dev, "Board model: DAS-802\n");
+ return board;
+ }
+ if (board == ciodas802) {
+ dev_dbg(dev->class_dev, "Board model: CIO-DAS802\n");
+ return board;
+ }
+ if (board == ciodas80216) {
+ dev_dbg(dev->class_dev, "Board model: CIO-DAS802/16\n");
+ return board;
+ }
+ dev_dbg(dev->class_dev, "Board model (probed): DAS-802\n");
+ return das802;
+ break;
+ default:
+ dev_dbg(dev->class_dev,
+ "Board model: probe returned 0x%x (unknown)\n",
+ id_bits);
+ return board;
+ break;
+ }
+ return -1;
+}
+
static int das800_attach(struct comedi_device *dev, struct comedi_devconfig *it)
{
const struct das800_board *thisboard = comedi_board(dev);
OpenPOWER on IntegriCloud