Skip to content

Commit

Permalink
staging: comedi: 8255_pci: add vendor id to boardinfo
Browse files Browse the repository at this point in the history
This driver supports PCI boards from multiple vendors. It's
possible for boards from different vendors to have the same
device id.

Add the vendor id to the boardinfo so pci_8255_find_boardinfo()
matches the pci_dev to the correct boardinfo.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Sep 14, 2012
1 parent 606b047 commit 6b79db3
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion drivers/staging/comedi/drivers/8255_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ Configuration Options: not applicable, uses PCI auto config

struct pci_8255_boardinfo {
const char *name;
unsigned short vendor;
unsigned short device;
int dio_badr;
int n_8255;
Expand All @@ -76,36 +77,43 @@ struct pci_8255_boardinfo {
static const struct pci_8255_boardinfo pci_8255_boards[] = {
{
.name = "adl_pci-7224",
.vendor = PCI_VENDOR_ID_ADLINK,
.device = PCI_DEVICE_ID_ADLINK_PCI7224,
.dio_badr = 2,
.n_8255 = 1,
}, {
.name = "adl_pci-7248",
.vendor = PCI_VENDOR_ID_ADLINK,
.device = PCI_DEVICE_ID_ADLINK_PCI7248,
.dio_badr = 2,
.n_8255 = 2,
}, {
.name = "adl_pci-7296",
.vendor = PCI_VENDOR_ID_ADLINK,
.device = PCI_DEVICE_ID_ADLINK_PCI7296,
.dio_badr = 2,
.n_8255 = 4,
}, {
.name = "cb_pci-dio24",
.vendor = PCI_VENDOR_ID_CB,
.device = PCI_DEVICE_ID_CB_PCIDIO24,
.dio_badr = 2,
.n_8255 = 1,
}, {
.name = "cb_pci-dio24h",
.vendor = PCI_VENDOR_ID_CB,
.device = PCI_DEVICE_ID_CB_PCIDIO24H,
.dio_badr = 2,
.n_8255 = 1,
}, {
.name = "cb_pci-dio48h",
.vendor = PCI_VENDOR_ID_CB,
.device = PCI_DEVICE_ID_CB_PCIDIO48H,
.dio_badr = 1,
.n_8255 = 2,
}, {
.name = "cb_pci-dio96h",
.vendor = PCI_VENDOR_ID_CB,
.device = PCI_DEVICE_ID_CB_PCIDIO96H,
.dio_badr = 2,
.n_8255 = 4,
Expand All @@ -120,7 +128,8 @@ static const void *pci_8255_find_boardinfo(struct comedi_device *dev,

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

0 comments on commit 6b79db3

Please sign in to comment.