Commtech adapters need the MPIOs for internal purposes, and the
gpio-exar driver already refused to pick them up. But there is actually
no point in even creating the underlying platform device.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
 drivers/gpio/gpio-exar.c            | 3 ---
 drivers/tty/serial/8250/8250_exar.c | 4 +++-
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c
index 081076771217..006a9a67c2a4 100644
--- a/drivers/gpio/gpio-exar.c
+++ b/drivers/gpio/gpio-exar.c
@@ -124,9 +124,6 @@ static int gpio_exar_probe(struct platform_device *pdev)
        void __iomem *p;
        int index, ret;
 
-       if (pcidev->vendor != PCI_VENDOR_ID_EXAR)
-               return -ENODEV;
-
        /*
         * Map the pci device to get the register addresses.
         * We will need to read and write those registers to control
diff --git a/drivers/tty/serial/8250/8250_exar.c 
b/drivers/tty/serial/8250/8250_exar.c
index 8984e8b2d524..c29c7e675890 100644
--- a/drivers/tty/serial/8250/8250_exar.c
+++ b/drivers/tty/serial/8250/8250_exar.c
@@ -245,7 +245,9 @@ pci_xr17v35x_setup(struct exar8250 *priv, struct pci_dev 
*pcidev,
                /* Setup Multipurpose Input/Output pins. */
                setup_gpio(pcidev, p);
 
-               port->port.private_data = xr17v35x_register_gpio(pcidev);
+               if (pcidev->vendor == PCI_VENDOR_ID_EXAR)
+                       port->port.private_data =
+                               xr17v35x_register_gpio(pcidev);
        }
 
        return 0;
-- 
2.12.0

Reply via email to