You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.8 KiB
Diff
92 lines
2.8 KiB
Diff
From 9d789a7728c37e8730b6a9cca60cf155f18537ea Mon Sep 17 00:00:00 2001
|
|
From: Sergio Paracuellos <sergio.paracuellos@gmail.com>
|
|
Date: Sat, 21 Mar 2020 08:26:50 +0100
|
|
Subject: [PATCH] staging: mt7621-pci: delete release gpios related code
|
|
|
|
Making gpio8 and gpio9 vendor specific and putting them
|
|
into the specific dts file makes not needed to release
|
|
gpios anymore because we are not occupying those pins
|
|
in the first place if it is not necessary. When the
|
|
device tree is parsed we can also check and return for
|
|
the error because we rely in the fact that the related
|
|
device for the board is correct.
|
|
|
|
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
|
|
Link: https://lore.kernel.org/r/20200321072650.7784-3-sergio.paracuellos@gmail.com
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
---
|
|
drivers/staging/mt7621-pci/pci-mt7621.c | 27 +++++++--------------------
|
|
1 file changed, 7 insertions(+), 20 deletions(-)
|
|
|
|
--- a/drivers/staging/mt7621-pci/pci-mt7621.c
|
|
+++ b/drivers/staging/mt7621-pci/pci-mt7621.c
|
|
@@ -364,8 +364,8 @@ static int mt7621_pcie_parse_port(struct
|
|
port->gpio_rst = devm_gpiod_get_index_optional(dev, "reset", slot,
|
|
GPIOD_OUT_LOW);
|
|
if (IS_ERR(port->gpio_rst)) {
|
|
- dev_notice(dev, "Failed to get GPIO for PCIe%d\n", slot);
|
|
- port->gpio_rst = NULL;
|
|
+ dev_err(dev, "Failed to get GPIO for PCIe%d\n", slot);
|
|
+ return PTR_ERR(port->gpio_rst);
|
|
}
|
|
|
|
port->slot = slot;
|
|
@@ -474,15 +474,6 @@ static void mt7621_pcie_reset_ep_deasser
|
|
mdelay(PERST_DELAY_MS);
|
|
}
|
|
|
|
-static void mt7621_pcie_release_gpios(struct mt7621_pcie *pcie)
|
|
-{
|
|
- struct mt7621_pcie_port *port;
|
|
-
|
|
- list_for_each_entry(port, &pcie->ports, list)
|
|
- if (port->gpio_rst)
|
|
- gpiod_put(port->gpio_rst);
|
|
-}
|
|
-
|
|
static void mt7621_pcie_init_ports(struct mt7621_pcie *pcie)
|
|
{
|
|
struct device *dev = pcie->dev;
|
|
@@ -684,7 +675,7 @@ static int mt7621_pci_probe(struct platf
|
|
err = mt7621_pci_parse_request_of_pci_ranges(pcie);
|
|
if (err) {
|
|
dev_err(dev, "Error requesting pci resources from ranges");
|
|
- goto out_release_gpios;
|
|
+ return err;
|
|
}
|
|
|
|
/* set resources limits */
|
|
@@ -698,8 +689,7 @@ static int mt7621_pci_probe(struct platf
|
|
err = mt7621_pcie_init_virtual_bridges(pcie);
|
|
if (err) {
|
|
dev_err(dev, "Nothing is connected in virtual bridges. Exiting...");
|
|
- err = 0;
|
|
- goto out_release_gpios;
|
|
+ return 0;
|
|
}
|
|
|
|
mt7621_pcie_enable_ports(pcie);
|
|
@@ -709,19 +699,16 @@ static int mt7621_pci_probe(struct platf
|
|
err = mt7621_pcie_request_resources(pcie, &res);
|
|
if (err) {
|
|
dev_err(dev, "Error requesting resources\n");
|
|
- goto out_release_gpios;
|
|
+ return err;
|
|
}
|
|
|
|
err = mt7621_pcie_register_host(bridge, &res);
|
|
if (err) {
|
|
dev_err(dev, "Error registering host\n");
|
|
- goto out_release_gpios;
|
|
+ return err;
|
|
}
|
|
|
|
-out_release_gpios:
|
|
- mt7621_pcie_release_gpios(pcie);
|
|
-
|
|
- return err;
|
|
+ return 0;
|
|
}
|
|
|
|
static const struct of_device_id mt7621_pci_ids[] = {
|