summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Reichel <sebastian.reichel@collabora.com>2023-05-04 19:36:15 +0200
committerMark Brown <broonie@kernel.org>2023-05-23 20:01:56 +0200
commit1b9e86d445a0f5c6d8dcbaf11508cb5dfb5848a8 (patch)
tree8d97aa969afae4790df38d9d8b6c61a69baef754
parentregulator: expose regulator_find_closest_bigger (diff)
downloadlinux-1b9e86d445a0f5c6d8dcbaf11508cb5dfb5848a8.tar.xz
linux-1b9e86d445a0f5c6d8dcbaf11508cb5dfb5848a8.zip
regulator: rk808: fix asynchronous probing
If the probe routine fails with -EPROBE_DEFER after taking over the OF node from its parent driver, reprobing triggers pinctrl_bind_pins() and that will fail. Fix this by setting of_node_reused, so that the device does not try to setup pin muxing. For me this always happens once the driver is marked to prefer async probing and never happens without that flag. Fixes: 259b93b21a9f ("regulator: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in 4.14") Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Link: https://lore.kernel.org/r/20230504173618.142075-12-sebastian.reichel@collabora.com Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--drivers/regulator/rk808-regulator.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/regulator/rk808-regulator.c b/drivers/regulator/rk808-regulator.c
index 3637e81654a8..80ba782d8923 100644
--- a/drivers/regulator/rk808-regulator.c
+++ b/drivers/regulator/rk808-regulator.c
@@ -1336,6 +1336,7 @@ static int rk808_regulator_probe(struct platform_device *pdev)
config.dev = &pdev->dev;
config.dev->of_node = pdev->dev.parent->of_node;
+ config.dev->of_node_reused = true;
config.driver_data = pdata;
config.regmap = regmap;