Commit 706cb51b authored by Ian Abbott's avatar Ian Abbott Committed by Greg Kroah-Hartman

staging: comedi: adl_pci6208: remove multiple board type support

This driver module now only supports a single board type, so remove the
infrastructure for describing multiple board types.  The comedi
"auto_attach" handler, `pci6208_auto_attach()` doesn't need to set the
comedi device's `board_name` or `board_ptr` members.  The former is
automatically pointed to the comedi driver's `driver_name` by the core
comedi module, and the latter is not used anywhere else.  The AO
subdevice's `n_chans` member can be set to 16 without looking it up in
the single element of `pci6208_boards[]`.  There is no need to pass a
board index from the PCI device table to the "auto_attach" handler.
Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent cd6b7660
...@@ -49,22 +49,6 @@ ...@@ -49,22 +49,6 @@
#define PCI6208_DIO_DI_MASK (0xf0) #define PCI6208_DIO_DI_MASK (0xf0)
#define PCI6208_DIO_DI_SHIFT (4) #define PCI6208_DIO_DI_SHIFT (4)
enum pci6208_boardid {
BOARD_PCI6208,
};
struct pci6208_board {
const char *name;
int ao_chans;
};
static const struct pci6208_board pci6208_boards[] = {
[BOARD_PCI6208] = {
.name = "adl_pci6208",
.ao_chans = 16, /* Only 8 usable on PCI-6208 */
},
};
static int pci6208_ao_eoc(struct comedi_device *dev, static int pci6208_ao_eoc(struct comedi_device *dev,
struct comedi_subdevice *s, struct comedi_subdevice *s,
struct comedi_insn *insn, struct comedi_insn *insn,
...@@ -135,21 +119,13 @@ static int pci6208_do_insn_bits(struct comedi_device *dev, ...@@ -135,21 +119,13 @@ static int pci6208_do_insn_bits(struct comedi_device *dev,
} }
static int pci6208_auto_attach(struct comedi_device *dev, static int pci6208_auto_attach(struct comedi_device *dev,
unsigned long context) unsigned long context_unused)
{ {
struct pci_dev *pcidev = comedi_to_pci_dev(dev); struct pci_dev *pcidev = comedi_to_pci_dev(dev);
const struct pci6208_board *boardinfo = NULL;
struct comedi_subdevice *s; struct comedi_subdevice *s;
unsigned int val; unsigned int val;
int ret; int ret;
if (context < ARRAY_SIZE(pci6208_boards))
boardinfo = &pci6208_boards[context];
if (!boardinfo)
return -ENODEV;
dev->board_ptr = boardinfo;
dev->board_name = boardinfo->name;
ret = comedi_pci_enable(dev); ret = comedi_pci_enable(dev);
if (ret) if (ret)
return ret; return ret;
...@@ -163,7 +139,7 @@ static int pci6208_auto_attach(struct comedi_device *dev, ...@@ -163,7 +139,7 @@ static int pci6208_auto_attach(struct comedi_device *dev,
/* analog output subdevice */ /* analog output subdevice */
s->type = COMEDI_SUBD_AO; s->type = COMEDI_SUBD_AO;
s->subdev_flags = SDF_WRITABLE; s->subdev_flags = SDF_WRITABLE;
s->n_chan = boardinfo->ao_chans; s->n_chan = 16; /* Only 8 usable on PCI-6208 */
s->maxdata = 0xffff; s->maxdata = 0xffff;
s->range_table = &range_bipolar10; s->range_table = &range_bipolar10;
s->insn_write = pci6208_ao_insn_write; s->insn_write = pci6208_ao_insn_write;
...@@ -216,7 +192,7 @@ static int adl_pci6208_pci_probe(struct pci_dev *dev, ...@@ -216,7 +192,7 @@ static int adl_pci6208_pci_probe(struct pci_dev *dev,
} }
static const struct pci_device_id adl_pci6208_pci_table[] = { static const struct pci_device_id adl_pci6208_pci_table[] = {
{ PCI_VDEVICE(ADLINK, 0x6208), BOARD_PCI6208 }, { PCI_DEVICE(PCI_VENDOR_ID_ADLINK, 0x6208) },
{ 0 } { 0 }
}; };
MODULE_DEVICE_TABLE(pci, adl_pci6208_pci_table); MODULE_DEVICE_TABLE(pci, adl_pci6208_pci_table);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment