Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 363372
b: refs/heads/master
c: a4732f3
h: refs/heads/master
v: v3
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Mar 11, 2013
1 parent f6fb315 commit 8bf0437
Show file tree
Hide file tree
Showing 2 changed files with 15 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: 852f3378497265783e8a629cf3aa985f30be213d
refs/heads/master: a4732f354487ba42ad3dc22dbdab33a3137e6041
48 changes: 14 additions & 34 deletions trunk/drivers/staging/comedi/drivers/addi_apci_16xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,36 +33,30 @@

#include "../comedidev.h"

/*
* PCI device ids supported by this driver
*/
#define PCI_DEVICE_ID_APCI1648 0x1009
#define PCI_DEVICE_ID_APCI1696 0x100a

/*
* Register I/O map
*/
#define APCI16XX_IN_REG(x) (((x) * 4) + 0x08)
#define APCI16XX_OUT_REG(x) (((x) * 4) + 0x14)
#define APCI16XX_DIR_REG(x) (((x) * 4) + 0x20)

enum apci16xx_boardid {
BOARD_APCI1648,
BOARD_APCI1696,
};

struct apci16xx_boardinfo {
const char *name;
unsigned short vendor;
unsigned short device;
int n_chan;
};

static const struct apci16xx_boardinfo apci16xx_boardtypes[] = {
{
[BOARD_APCI1648] = {
.name = "apci1648",
.vendor = PCI_VENDOR_ID_ADDIDATA,
.device = PCI_DEVICE_ID_APCI1648,
.n_chan = 48, /* 2 subdevices */
}, {
},
[BOARD_APCI1696] = {
.name = "apci1696",
.vendor = PCI_VENDOR_ID_ADDIDATA,
.device = PCI_DEVICE_ID_APCI1696,
.n_chan = 96, /* 3 subdevices */
},
};
Expand Down Expand Up @@ -130,33 +124,19 @@ static int apci16xx_dio_insn_bits(struct comedi_device *dev,
return insn->n;
}

static const void *apci16xx_find_boardinfo(struct comedi_device *dev,
struct pci_dev *pcidev)
{
const struct apci16xx_boardinfo *board;
int i;

for (i = 0; i < ARRAY_SIZE(apci16xx_boardtypes); i++) {
board = &apci16xx_boardtypes[i];
if (board->vendor == pcidev->vendor &&
board->device == pcidev->device)
return board;
}
return NULL;
}

static int apci16xx_auto_attach(struct comedi_device *dev,
unsigned long context_unused)
unsigned long context)
{
struct pci_dev *pcidev = comedi_to_pci_dev(dev);
const struct apci16xx_boardinfo *board;
const struct apci16xx_boardinfo *board = NULL;
struct comedi_subdevice *s;
unsigned int n_subdevs;
unsigned int last;
int i;
int ret;

board = apci16xx_find_boardinfo(dev, pcidev);
if (context < ARRAY_SIZE(apci16xx_boardtypes))
board = &apci16xx_boardtypes[context];
if (!board)
return -ENODEV;
dev->board_ptr = board;
Expand Down Expand Up @@ -231,8 +211,8 @@ static int apci16xx_pci_probe(struct pci_dev *dev,
}

static DEFINE_PCI_DEVICE_TABLE(apci16xx_pci_table) = {
{ PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, PCI_DEVICE_ID_APCI1648) },
{ PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, PCI_DEVICE_ID_APCI1696) },
{ PCI_VDEVICE(ADDIDATA, 0x1009), BOARD_APCI1648 },
{ PCI_VDEVICE(ADDIDATA, 0x100a), BOARD_APCI1696 },
{ 0 }
};
MODULE_DEVICE_TABLE(pci, apci16xx_pci_table);
Expand Down

0 comments on commit 8bf0437

Please sign in to comment.