Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 363385
b: refs/heads/master
c: a4493f0
h: refs/heads/master
i:
  363383: 23074a6
v: v3
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Mar 11, 2013
1 parent 102d23b commit 70cb6a5
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 30 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: 8c35550969445590b312c568103bd02ff3546166
refs/heads/master: a4493f07c67bb774519189044ae90034466748a6
47 changes: 18 additions & 29 deletions trunk/drivers/staging/comedi/drivers/me_daq.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,6 @@

#define ME2600_FIRMWARE "me2600_firmware.bin"

#define ME2000_DEVICE_ID 0x2000
#define ME2600_DEVICE_ID 0x2600

#define PLX_INTCSR 0x4C /* PLX interrupt status register */
#define XILINX_DOWNLOAD_RESET 0x42 /* Xilinx registers */

Expand Down Expand Up @@ -149,21 +146,26 @@ static const struct comedi_lrange me_ao_range = {
}
};

enum me_boardid {
BOARD_ME2600,
BOARD_ME2000,
};

struct me_board {
const char *name;
int device_id;
int needs_firmware;
int has_ao;
};

static const struct me_board me_boards[] = {
{
[BOARD_ME2600] = {
.name = "me-2600i",
.device_id = ME2600_DEVICE_ID,
.needs_firmware = 1,
.has_ao = 1,
}, {
},
[BOARD_ME2000] = {
.name = "me-2000i",
.device_id = ME2000_DEVICE_ID,
}
},
};

struct me_private_data {
Expand Down Expand Up @@ -488,30 +490,17 @@ static int me_reset(struct comedi_device *dev)
return 0;
}

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

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

static int me_auto_attach(struct comedi_device *dev,
unsigned long context_unused)
unsigned long context)
{
struct pci_dev *pcidev = comedi_to_pci_dev(dev);
const struct me_board *board;
const struct me_board *board = NULL;
struct me_private_data *dev_private;
struct comedi_subdevice *s;
int ret;

board = me_find_boardinfo(dev, pcidev);
if (context < ARRAY_SIZE(me_boards))
board = &me_boards[context];
if (!board)
return -ENODEV;
dev->board_ptr = board;
Expand All @@ -538,7 +527,7 @@ static int me_auto_attach(struct comedi_device *dev,
return -ENOMEM;

/* Download firmware and reset card */
if (board->device_id == ME2600_DEVICE_ID) {
if (board->needs_firmware) {
ret = me2600_upload_firmware(dev);
if (ret < 0)
return ret;
Expand Down Expand Up @@ -622,8 +611,8 @@ static int me_daq_pci_probe(struct pci_dev *dev,
}

static DEFINE_PCI_DEVICE_TABLE(me_daq_pci_table) = {
{ PCI_DEVICE(PCI_VENDOR_ID_MEILHAUS, ME2600_DEVICE_ID) },
{ PCI_DEVICE(PCI_VENDOR_ID_MEILHAUS, ME2000_DEVICE_ID) },
{ PCI_VDEVICE(MEILHAUS, 0x2600), BOARD_ME2600 },
{ PCI_VDEVICE(MEILHAUS, 0x2000), BOARD_ME2000 },
{ 0 }
};
MODULE_DEVICE_TABLE(pci, me_daq_pci_table);
Expand Down

0 comments on commit 70cb6a5

Please sign in to comment.