diff options
Diffstat (limited to 'drivers/regulator/devres.c')
| -rw-r--r-- | drivers/regulator/devres.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/drivers/regulator/devres.c b/drivers/regulator/devres.c index 36164aec30e8..615deba5d22c 100644 --- a/drivers/regulator/devres.c +++ b/drivers/regulator/devres.c @@ -20,7 +20,7 @@ static void devm_regulator_release(struct device *dev, void *res) } static struct regulator *_devm_regulator_get(struct device *dev, const char *id, - int get_type) + enum regulator_get_type get_type) { struct regulator **ptr, *regulator; @@ -78,7 +78,7 @@ static void regulator_action_disable(void *d) } static int _devm_regulator_get_enable(struct device *dev, const char *id, - int get_type) + enum regulator_get_type get_type) { struct regulator *r; int ret; @@ -332,9 +332,8 @@ int devm_regulator_bulk_get_const(struct device *dev, int num_consumers, const struct regulator_bulk_data *in_consumers, struct regulator_bulk_data **out_consumers) { - *out_consumers = devm_kmemdup(dev, in_consumers, - num_consumers * sizeof(*in_consumers), - GFP_KERNEL); + *out_consumers = devm_kmemdup_array(dev, in_consumers, num_consumers, + sizeof(*in_consumers), GFP_KERNEL); if (*out_consumers == NULL) return -ENOMEM; @@ -752,7 +751,7 @@ EXPORT_SYMBOL_GPL(devm_regulator_irq_helper); #if IS_ENABLED(CONFIG_OF) static struct regulator *_devm_of_regulator_get(struct device *dev, struct device_node *node, - const char *id, int get_type) + const char *id, enum regulator_get_type get_type) { struct regulator **ptr, *regulator; @@ -772,6 +771,23 @@ static struct regulator *_devm_of_regulator_get(struct device *dev, struct devic } /** + * devm_of_regulator_get - Resource managed of_regulator_get() + * @dev: device used for dev_printk() messages and resource lifetime management + * @node: device node for regulator "consumer" + * @id: supply name or regulator ID. + * + * Managed of_regulator_get(). Regulators returned from this + * function are automatically regulator_put() on driver detach. See + * of_regulator_get() for more information. + */ +struct regulator *devm_of_regulator_get(struct device *dev, struct device_node *node, + const char *id) +{ + return _devm_of_regulator_get(dev, node, id, NORMAL_GET); +} +EXPORT_SYMBOL_GPL(devm_of_regulator_get); + +/** * devm_of_regulator_get_optional - Resource managed of_regulator_get_optional() * @dev: device used for dev_printk() messages and resource lifetime management * @node: device node for regulator "consumer" |
