Commit 54b2f300 authored by Heikki Krogerus's avatar Heikki Krogerus Committed by Greg Kroah-Hartman
Browse files

serial: 8250_pci: Replace custom code with pci_match_id()



serial_pci_is_blacklisted() is very similar to pci_match_id() implementation.
Replace it with the latter.

Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c744ca39
Loading
Loading
Loading
Loading
+7 −22
Original line number Original line Diff line number Diff line
@@ -3375,6 +3375,9 @@ static const struct pci_device_id blacklist[] = {
	/* Exar devices */
	/* Exar devices */
	{ PCI_VDEVICE(EXAR, PCI_ANY_ID), },
	{ PCI_VDEVICE(EXAR, PCI_ANY_ID), },
	{ PCI_VDEVICE(COMMTECH, PCI_ANY_ID), },
	{ PCI_VDEVICE(COMMTECH, PCI_ANY_ID), },

	/* End of the black list */
	{ }
};
};


static int serial_pci_is_class_communication(struct pci_dev *dev)
static int serial_pci_is_class_communication(struct pci_dev *dev)
@@ -3392,25 +3395,6 @@ static int serial_pci_is_class_communication(struct pci_dev *dev)
	return 0;
	return 0;
}
}


static int serial_pci_is_blacklisted(struct pci_dev *dev)
{
	const struct pci_device_id *bldev;

	/*
	 * Do not access blacklisted devices that are known not to
	 * feature serial ports or are handled by other modules.
	 */
	for (bldev = blacklist;
	     bldev < blacklist + ARRAY_SIZE(blacklist);
	     bldev++) {
		if (dev->vendor == bldev->vendor &&
		    dev->device == bldev->device)
			return -ENODEV;
	}

	return 0;
}

/*
/*
 * Given a complete unknown PCI device, try to use some heuristics to
 * Given a complete unknown PCI device, try to use some heuristics to
 * guess what the configuration might be, based on the pitiful PCI
 * guess what the configuration might be, based on the pitiful PCI
@@ -3634,6 +3618,7 @@ pciserial_init_one(struct pci_dev *dev, const struct pci_device_id *ent)
	struct pci_serial_quirk *quirk;
	struct pci_serial_quirk *quirk;
	struct serial_private *priv;
	struct serial_private *priv;
	const struct pciserial_board *board;
	const struct pciserial_board *board;
	const struct pci_device_id *exclude;
	struct pciserial_board tmp;
	struct pciserial_board tmp;
	int rc;
	int rc;


@@ -3652,9 +3637,9 @@ pciserial_init_one(struct pci_dev *dev, const struct pci_device_id *ent)


	board = &pci_boards[ent->driver_data];
	board = &pci_boards[ent->driver_data];


	rc = serial_pci_is_blacklisted(dev);
	exclude = pci_match_id(blacklist, dev);
	if (rc)
	if (exclude)
		return rc;
		return -ENODEV;


	rc = pcim_enable_device(dev);
	rc = pcim_enable_device(dev);
	pci_save_state(dev);
	pci_save_state(dev);