aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH Hartley Sweeten <hartleys@visionengravers.com>2012-09-13 09:57:12 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-09-13 20:12:30 -0700
commit6b79db383f77da171c9a60b607d761a357f36d2d (patch)
tree43b8fe62c4f7470772c8a9306b11caf85940a713
parent606b04707e39cfc109273e8047c2b5600e407327 (diff)
staging: comedi: 8255_pci: add vendor id to boardinfo
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>
-rw-r--r--drivers/staging/comedi/drivers/8255_pci.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/staging/comedi/drivers/8255_pci.c b/drivers/staging/comedi/drivers/8255_pci.c
index 075f98bd257..314b21b5650 100644
--- a/drivers/staging/comedi/drivers/8255_pci.c
+++ b/drivers/staging/comedi/drivers/8255_pci.c
@@ -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;
@@ -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,
@@ -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;