[PATCH 2/2] PCI: tegra194: propagate REFCLK select GPIO errors
From: phucduc . bui
Date: Wed Oct 07 2026 - 07:12:43 EST
From: bui duc phuc <phucduc.bui@xxxxxxxxx>
devm_gpiod_get_optional() returns NULL when the optional GPIO is not
present, but may return -EPROBE_DEFER or other errors.
The current code treats GPIO lookup errors as if the GPIO were not
present.
Check the return value and propagate errors from the REFCLK select GPIO
lookup.
Signed-off-by: bui duc phuc <phucduc.bui@xxxxxxxxx>
---
drivers/pci/controller/dwc/pcie-tegra194.c | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)
diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
index 767e11216196..5ebe01f72833 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -1207,18 +1207,9 @@ static int tegra_pcie_dw_parse_dt(struct tegra_pcie_dw *pcie)
pcie->pex_refclk_sel_gpiod = devm_gpiod_get_optional(pcie->dev,
"nvidia,refclk-select",
GPIOD_OUT_HIGH);
- if (IS_ERR(pcie->pex_refclk_sel_gpiod)) {
- int err = PTR_ERR(pcie->pex_refclk_sel_gpiod);
- const char *level = KERN_ERR;
-
- if (err == -EPROBE_DEFER)
- level = KERN_DEBUG;
-
- dev_printk(level, pcie->dev,
- dev_fmt("Failed to get REFCLK select GPIOs: %d\n"),
- err);
- pcie->pex_refclk_sel_gpiod = NULL;
- }
+ if (IS_ERR(pcie->pex_refclk_sel_gpiod))
+ return dev_err_probe(pcie->dev, PTR_ERR(pcie->pex_refclk_sel_gpiod),
+ "Failed to get REFCLK select GPIOs\n");
return 0;
}
--
2.43.0