mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 15:39:42 -04:00
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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
606b04707e
commit
6b79db383f
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user