|
@@ -3387,11 +3387,9 @@ static int serial_pci_is_class_communication(struct pci_dev *dev)
|
|
|
/*
|
|
|
* If it is not a communications device or the programming
|
|
|
* interface is greater than 6, give up.
|
|
|
- *
|
|
|
- * (Should we try to make guesses for multiport serial devices
|
|
|
- * later?)
|
|
|
*/
|
|
|
if ((((dev->class >> 8) != PCI_CLASS_COMMUNICATION_SERIAL) &&
|
|
|
+ ((dev->class >> 8) != PCI_CLASS_COMMUNICATION_MULTISERIAL) &&
|
|
|
((dev->class >> 8) != PCI_CLASS_COMMUNICATION_MODEM)) ||
|
|
|
(dev->class & 0xff) > 6)
|
|
|
return -ENODEV;
|
|
@@ -3428,6 +3426,12 @@ serial_pci_guess_board(struct pci_dev *dev, struct pciserial_board *board)
|
|
|
{
|
|
|
int num_iomem, num_port, first_port = -1, i;
|
|
|
|
|
|
+ /*
|
|
|
+ * Should we try to make guesses for multiport serial devices later?
|
|
|
+ */
|
|
|
+ if ((dev->class >> 8) == PCI_CLASS_COMMUNICATION_MULTISERIAL)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
num_iomem = num_port = 0;
|
|
|
for (i = 0; i < PCI_NUM_BAR_RESOURCES; i++) {
|
|
|
if (pci_resource_flags(dev, i) & IORESOURCE_IO) {
|