regulator: core: Get and put regulator of_node
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Thu, 3 Apr 2014 14:32:17 +0000 (15:32 +0100)
committerMark Brown <broonie@linaro.org>
Mon, 14 Apr 2014 16:01:24 +0000 (17:01 +0100)
commit63c7c9e16c8e92cc069854f2babdf82d2d38e4c7
treecefd292824e43e2923f82316275e803fb5ddab7a
parent3764806440149ea9024dff039497d1e45d6ed027
regulator: core: Get and put regulator of_node

Currently the regulator core does not take an additional reference to
the of_node it is passed. This means that the caller must ensure that
the of_node is valid for the duration of the regulator's existance.
It is reasonable for the framework to assume it is passed a valid
of_node but seems onerous for it to assume the caller will keep the node
valid for the life-time of the regulator, especially when
devm_regulator_register is used and there will likely be no code in the
driver called at the point it would be safe to put the of_node.

This patch adds an additional of_node_get when the regulator is
registered and an of_node_put when it is unregistered in the core. This
means individual drivers are free to put their of_node references at the
end of probe letting the regulator core handling it from there. This
simplifies code on the driver side.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/regulator/core.c