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

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
...@@ -3375,6 +3375,9 @@ static const struct pci_device_id blacklist[] = { ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment