Message ID | 1410260825-21667-1-git-send-email-guodong.xu@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
2014-09-09 19:07 GMT+08:00 Guodong Xu <guodong.xu@linaro.org>: > mc13xxx_parse_regulators_dt() goes through dt tree to search for regulator > sub-nodes. For each matched node, later on it will be used and registered > into a regulator_dev. > > of_node_get() should be called to increase its refcount. I think it's done by regulator core: commit 63c7c9e16c8e92cc069854f2babdf82d2d38e4c7 regulator: core: Get and put regulator of_node Regards, Axel
On Tue, Sep 09, 2014 at 07:11:46PM +0800, Axel Lin wrote: > 2014-09-09 19:07 GMT+08:00 Guodong Xu <guodong.xu@linaro.org>: > > mc13xxx_parse_regulators_dt() goes through dt tree to search for regulator > > sub-nodes. For each matched node, later on it will be used and registered > > into a regulator_dev. > > > > of_node_get() should be called to increase its refcount. > I think it's done by regulator core: > commit 63c7c9e16c8e92cc069854f2babdf82d2d38e4c7 > regulator: core: Get and put regulator of_node Yes, that's the idea anyway. It's possible this is buggy though.
diff --git a/drivers/regulator/mc13xxx-regulator-core.c b/drivers/regulator/mc13xxx-regulator-core.c index afba024..ebc8ff1 100644 --- a/drivers/regulator/mc13xxx-regulator-core.c +++ b/drivers/regulator/mc13xxx-regulator-core.c @@ -195,7 +195,7 @@ struct mc13xxx_regulator_init_data *mc13xxx_parse_regulators_dt( p->id = i; p->init_data = of_get_regulator_init_data( &pdev->dev, child); - p->node = child; + p->node = of_node_get(child); p++; parsed++;
mc13xxx_parse_regulators_dt() goes through dt tree to search for regulator sub-nodes. For each matched node, later on it will be used and registered into a regulator_dev. of_node_get() should be called to increase its refcount. Signed-off-by: Guodong Xu <guodong.xu@linaro.org> --- drivers/regulator/mc13xxx-regulator-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)