Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b79db38 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 606b0470
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -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;