]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 20 Jul 2021 14:22:34 +0000 (16:22 +0200)
[ Upstream commit 9e3617a7b84512bf96c04f9cf82d1a7257d33794 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c

index 3b98b263bad0d8de574b5a9d3781a765aa808e36..a7ec9492d12679703f9e89ae99c132702141cecd 100644 (file)
@@ -2625,9 +2625,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_bus_and_slot(adapter->pdev->bus->number,
                                               PCI_DEVFN(12, 4));
@@ -2717,7 +2721,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;