diff options
author | Mark Brown <broonie@kernel.org> | 2014-09-10 12:02:41 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-09-10 12:02:41 +0100 |
commit | dc1e0b1db4e14b6e15674113c99dc75adf093d34 (patch) | |
tree | 7140fd8fd920dffe2ef0ee218c0fe422d8960737 /drivers/regulator/core.c | |
parent | c2542d2a867c22540c8ad64883288eabb891568d (diff) | |
parent | a0c7b164ad115ec0556dc0904ee2218cbc5cedfa (diff) | |
download | blackbird-op-linux-dc1e0b1db4e14b6e15674113c99dc75adf093d34.tar.gz blackbird-op-linux-dc1e0b1db4e14b6e15674113c99dc75adf093d34.zip |
Merge branch 'topic/of' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-tps65217
Diffstat (limited to 'drivers/regulator/core.c')
-rw-r--r-- | drivers/regulator/core.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index a3c3785901f5..496002efd961 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -3516,12 +3516,17 @@ regulator_register(const struct regulator_desc *regulator_desc, return ERR_PTR(-EINVAL); } - init_data = config->init_data; - rdev = kzalloc(sizeof(struct regulator_dev), GFP_KERNEL); if (rdev == NULL) return ERR_PTR(-ENOMEM); + init_data = regulator_of_get_init_data(dev, regulator_desc, + &rdev->dev.of_node); + if (!init_data) { + init_data = config->init_data; + rdev->dev.of_node = of_node_get(config->of_node); + } + mutex_lock(®ulator_list_mutex); mutex_init(&rdev->mutex); @@ -3548,7 +3553,6 @@ regulator_register(const struct regulator_desc *regulator_desc, /* register with sysfs */ rdev->dev.class = ®ulator_class; - rdev->dev.of_node = of_node_get(config->of_node); rdev->dev.parent = dev; dev_set_name(&rdev->dev, "regulator.%d", atomic_inc_return(®ulator_no) - 1); |