Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 363371
b: refs/heads/master
c: 852f337
h: refs/heads/master
i:
  363369: 654a253
  363367: 0ede5f6
v: v3
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Mar 11, 2013
1 parent a7c237f commit f6fb315
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 35 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: af48bd8ccece2c2605ea8cc4e4b69a916ec277f0
refs/heads/master: 852f3378497265783e8a629cf3aa985f30be213d
52 changes: 18 additions & 34 deletions trunk/drivers/staging/comedi/drivers/addi_apci_1516.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,6 @@
#include "addi_watchdog.h"
#include "comedi_fc.h"

/*
* PCI device ids supported by this driver
*/
#define PCI_DEVICE_ID_APCI1016 0x1000
#define PCI_DEVICE_ID_APCI1516 0x1001
#define PCI_DEVICE_ID_APCI2016 0x1002

/*
* PCI bar 1 I/O Register map - Digital input/output
*/
Expand All @@ -53,28 +46,32 @@
*/
#define APCI1516_WDOG_REG 0x00

enum apci1516_boardid {
BOARD_APCI1016,
BOARD_APCI1516,
BOARD_APCI2016,
};

struct apci1516_boardinfo {
const char *name;
unsigned short device;
int di_nchan;
int do_nchan;
int has_wdog;
};

static const struct apci1516_boardinfo apci1516_boardtypes[] = {
{
[BOARD_APCI1016] = {
.name = "apci1016",
.device = PCI_DEVICE_ID_APCI1016,
.di_nchan = 16,
}, {
},
[BOARD_APCI1516] = {
.name = "apci1516",
.device = PCI_DEVICE_ID_APCI1516,
.di_nchan = 8,
.do_nchan = 8,
.has_wdog = 1,
}, {
},
[BOARD_APCI2016] = {
.name = "apci2016",
.device = PCI_DEVICE_ID_APCI2016,
.do_nchan = 16,
.has_wdog = 1,
},
Expand Down Expand Up @@ -130,30 +127,17 @@ static int apci1516_reset(struct comedi_device *dev)
return 0;
}

static const void *apci1516_find_boardinfo(struct comedi_device *dev,
struct pci_dev *pcidev)
{
const struct apci1516_boardinfo *this_board;
int i;

for (i = 0; i < dev->driver->num_names; i++) {
this_board = &apci1516_boardtypes[i];
if (this_board->device == pcidev->device)
return this_board;
}
return NULL;
}

static int apci1516_auto_attach(struct comedi_device *dev,
unsigned long context_unused)
unsigned long context)
{
struct pci_dev *pcidev = comedi_to_pci_dev(dev);
const struct apci1516_boardinfo *this_board;
const struct apci1516_boardinfo *this_board = NULL;
struct apci1516_private *devpriv;
struct comedi_subdevice *s;
int ret;

this_board = apci1516_find_boardinfo(dev, pcidev);
if (context < ARRAY_SIZE(apci1516_boardtypes))
this_board = &apci1516_boardtypes[context];
if (!this_board)
return -ENODEV;
dev->board_ptr = this_board;
Expand Down Expand Up @@ -241,9 +225,9 @@ static int apci1516_pci_probe(struct pci_dev *dev,
}

static DEFINE_PCI_DEVICE_TABLE(apci1516_pci_table) = {
{ PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, PCI_DEVICE_ID_APCI1016) },
{ PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, PCI_DEVICE_ID_APCI1516) },
{ PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, PCI_DEVICE_ID_APCI2016) },
{ PCI_VDEVICE(ADDIDATA, 0x1000), BOARD_APCI1016 },
{ PCI_VDEVICE(ADDIDATA, 0x1001), BOARD_APCI1516 },
{ PCI_VDEVICE(ADDIDATA, 0x1002), BOARD_APCI2016 },
{ 0 }
};
MODULE_DEVICE_TABLE(pci, apci1516_pci_table);
Expand Down

0 comments on commit f6fb315

Please sign in to comment.