OSDN Git Service

net: pch_gbe: Propagate error from devm_gpio_request_one()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 10 May 2021 16:39:27 +0000 (19:39 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 10 May 2021 21:58:20 +0000 (14:58 -0700)
If GPIO controller is not available yet we need to defer
the probe of GBE until provider will become available.

While here, drop GPIOF_EXPORT because it's deprecated and
may not be available.

Fixes: f1a26fdf5944 ("pch_gbe: Add MinnowBoard support")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Flavio Suligoi <f.suligoi@asem.it>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c

index 334af49..3dc29b2 100644 (file)
@@ -2532,9 +2532,13 @@ static int pch_gbe_probe(struct pci_dev *pdev,
        adapter->pdev = pdev;
        adapter->hw.back = adapter;
        adapter->hw.reg = pcim_iomap_table(pdev)[PCH_GBE_PCI_BAR];
+
        adapter->pdata = (struct pch_gbe_privdata *)pci_id->driver_data;
-       if (adapter->pdata && adapter->pdata->platform_init)
-               adapter->pdata->platform_init(pdev);
+       if (adapter->pdata && adapter->pdata->platform_init) {
+               ret = adapter->pdata->platform_init(pdev);
+               if (ret)
+                       goto err_free_netdev;
+       }
 
        adapter->ptp_pdev =
                pci_get_domain_bus_and_slot(pci_domain_nr(adapter->pdev->bus),
@@ -2629,7 +2633,7 @@ err_free_netdev:
  */
 static int pch_gbe_minnow_platform_init(struct pci_dev *pdev)
 {
-       unsigned long flags = GPIOF_DIR_OUT | GPIOF_INIT_HIGH | GPIOF_EXPORT;
+       unsigned long flags = GPIOF_OUT_INIT_HIGH;
        unsigned gpio = MINNOW_PHY_RESET_GPIO;
        int ret;