| From 17f9f52449b5f35c64ad8c4b2fd9d1822ee13dfa Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 10 May 2021 19:39:27 +0300 |
| Subject: net: pch_gbe: Propagate error from devm_gpio_request_one() |
| |
| From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| |
| [ 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 | 10 +++++++--- |
| 1 file changed, 7 insertions(+), 3 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c |
| index ade8c44c01cd..9a0870dc2f03 100644 |
| --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c |
| +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c |
| @@ -2536,9 +2536,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), |
| @@ -2633,7 +2637,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; |
| |
| -- |
| 2.30.2 |
| |