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>
This commit is contained in:
parent
92046ae49d
commit
4f71ceebeb
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user