未验证 提交 466affa0 编写于 作者: C Charles Keepax 提交者: Mark Brown

regulator: wm8994: Don't use devres for enable GPIOs

The regulator core takes over managing the lifetime of the enable GPIO
once the regulator is registered. As such we shouldn't register the
enable GPIO using devm, or it will be freed twice.
Reported-by: NMarek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: NCharles Keepax <ckeepax@opensource.cirrus.com>
Tested-by: NMarek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: NMark Brown <broonie@kernel.org>
上级 7b51a821
......@@ -147,11 +147,14 @@ static int wm8994_ldo_probe(struct platform_device *pdev)
config.regmap = wm8994->regmap;
config.init_data = &ldo->init_data;
/* Look up LDO enable GPIO from the parent device node */
gpiod = devm_gpiod_get_optional(pdev->dev.parent,
id ? "wlf,ldo2ena" : "wlf,ldo1ena",
GPIOD_OUT_LOW |
GPIOD_FLAGS_BIT_NONEXCLUSIVE);
/*
* Look up LDO enable GPIO from the parent device node, we don't
* use devm because the regulator core will free the GPIO
*/
gpiod = gpiod_get_optional(pdev->dev.parent,
id ? "wlf,ldo2ena" : "wlf,ldo1ena",
GPIOD_OUT_LOW |
GPIOD_FLAGS_BIT_NONEXCLUSIVE);
if (IS_ERR(gpiod))
return PTR_ERR(gpiod);
config.ena_gpiod = gpiod;
......@@ -184,6 +187,7 @@ static int wm8994_ldo_probe(struct platform_device *pdev)
return 0;
err:
gpiod_put(gpiod);
return ret;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
新手
引导
客服 返回
顶部