Thread (12 messages) 12 messages, 4 authors, 2020-12-14

Re: [PATCH v2 1/4] PCI: rockchip: Make 'ep-gpios' DT property optional

From: Rob Herring <robh@kernel.org>
Date: 2020-12-14 14:18:36
Also in: linux-arm-kernel, linux-pci, linux-rockchip, lkml

On Sat, Dec 12, 2020 at 9:18 AM Chen-Yu Tsai [off-list ref] wrote:
On Mon, Dec 7, 2020 at 10:11 PM Rob Herring [off-list ref] wrote:
quoted
On Wed, Nov 18, 2020 at 1:17 AM Chen-Yu Tsai [off-list ref] wrote:
quoted
From: Chen-Yu Tsai <redacted>

The Rockchip PCIe controller DT binding clearly states that 'ep-gpios' is
an optional property. And indeed there are boards that don't require it.

Make the driver follow the binding by using devm_gpiod_get_optional()
instead of devm_gpiod_get().

Fixes: e77f847df54c ("PCI: rockchip: Add Rockchip PCIe controller support")
Fixes: 956cd99b35a8 ("PCI: rockchip: Separate common code from RC driver")
Fixes: 964bac9455be ("PCI: rockchip: Split out rockchip_pcie_parse_dt() to parse DT")
Signed-off-by: Chen-Yu Tsai <redacted>
---
Changes since v1:

  - Rewrite subject to match existing convention and reference
    'ep-gpios' DT property instead of the 'ep_gpio' field
---
 drivers/pci/controller/pcie-rockchip.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pcie-rockchip.c b/drivers/pci/controller/pcie-rockchip.c
index 904dec0d3a88..c95950e9004f 100644
--- a/drivers/pci/controller/pcie-rockchip.c
+++ b/drivers/pci/controller/pcie-rockchip.c
@@ -118,7 +118,7 @@ int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip)
        }

        if (rockchip->is_rc) {
-               rockchip->ep_gpio = devm_gpiod_get(dev, "ep", GPIOD_OUT_HIGH);
+               rockchip->ep_gpio = devm_gpiod_get_optional(dev, "ep", GPIOD_OUT_HIGH);
                if (IS_ERR(rockchip->ep_gpio)) {
                        dev_err(dev, "missing ep-gpios property in node\n");
You should drop the error message. What it says is now never the
reason for the error and it could most likely be a deferred probe
which you don't want an error message for.
What about switching to dev_err_probe() instead?

That way deferred probe errors get silenced (or get a better debug message),
and error messages for other issues, such as miswritten gpio properties are
still produced.
I guess, but those errors should be in the subsystem code IMO rather
than every driver.

Rob
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help