From: Hans de Goede <hdegoede@redhat.com> To: Lee Jones <lee.jones@linaro.org>, Sebastian Reichel <sre@kernel.org>, Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>, David Woodhouse <dwmw2@infradead.org>, Kishon Vijay Abraham I <kishon@ti.com>, Felipe Balbi <balbi@ti.com>, Maxime Ripard <maxime.ripard@free-electrons.com> Cc: "Bruno Prémont" <bonbons@linux-vserver.org>, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree <devicetree@vger.kernel.org>, linux-sunxi@googlegroups.com, "Hans de Goede" <hdegoede@redhat.com> Subject: [PATCH 3/8] power: Add devm_power_supply_get_by_phandle() helper function Date: Tue, 9 Jun 2015 23:37:56 +0200 [thread overview] Message-ID: <1433885881-19809-4-git-send-email-hdegoede@redhat.com> (raw) In-Reply-To: <1433885881-19809-1-git-send-email-hdegoede@redhat.com> This commit adds a resource-managed version of the power_supply_get_by_phandle() function. Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- drivers/power/power_supply_core.c | 39 +++++++++++++++++++++++++++++++++++++++ include/linux/power_supply.h | 5 +++++ 2 files changed, 44 insertions(+) diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c index 2ed4a4a..59856bc 100644 --- a/drivers/power/power_supply_core.c +++ b/drivers/power/power_supply_core.c @@ -420,6 +420,45 @@ struct power_supply *power_supply_get_by_phandle(struct device_node *np, return psy; } EXPORT_SYMBOL_GPL(power_supply_get_by_phandle); + +static void devm_power_supply_put(struct device *dev, void *res) +{ + struct power_supply **psy = res; + + power_supply_put(*psy); +} + +/** + * devm_power_supply_get_by_phandle() - Resource managed version of + * power_supply_get_by_phandle() + * @dev: Pointer to device holding phandle property + * @phandle_name: Name of property holding a power supply phandle + * + * Return: On success returns a reference to a power supply with + * matching name equals to value under @property, NULL or ERR_PTR otherwise. + */ +struct power_supply *devm_power_supply_get_by_phandle(struct device *dev, + const char *property) +{ + struct power_supply **ptr, *psy; + + if (!dev->of_node) + return ERR_PTR(-ENODEV); + + ptr = devres_alloc(devm_power_supply_put, sizeof(*ptr), GFP_KERNEL); + if (!ptr) + return ERR_PTR(-ENOMEM); + + psy = power_supply_get_by_phandle(dev->of_node, property); + if (IS_ERR_OR_NULL(psy)) { + devres_free(ptr); + } else { + *ptr = psy; + devres_add(dev, ptr); + } + return psy; +} +EXPORT_SYMBOL_GPL(devm_power_supply_get_by_phandle); #endif /* CONFIG_OF */ int power_supply_get_property(struct power_supply *psy, diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h index 75a1dd8..a99cf4f 100644 --- a/include/linux/power_supply.h +++ b/include/linux/power_supply.h @@ -286,10 +286,15 @@ extern void power_supply_put(struct power_supply *psy); #ifdef CONFIG_OF extern struct power_supply *power_supply_get_by_phandle(struct device_node *np, const char *property); +extern struct power_supply *devm_power_supply_get_by_phandle( + struct device *dev, const char *property); #else /* !CONFIG_OF */ static inline struct power_supply * power_supply_get_by_phandle(struct device_node *np, const char *property) { return NULL; } +static inline struct power_supply * +devm_power_supply_get_by_phandle(struct device *dev, const char *property) +{ return NULL; } #endif /* CONFIG_OF */ extern void power_supply_changed(struct power_supply *psy); extern int power_supply_am_i_supplied(struct power_supply *psy); -- 2.3.6
WARNING: multiple messages have this Message-ID (diff)
From: hdegoede@redhat.com (Hans de Goede) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 3/8] power: Add devm_power_supply_get_by_phandle() helper function Date: Tue, 9 Jun 2015 23:37:56 +0200 [thread overview] Message-ID: <1433885881-19809-4-git-send-email-hdegoede@redhat.com> (raw) In-Reply-To: <1433885881-19809-1-git-send-email-hdegoede@redhat.com> This commit adds a resource-managed version of the power_supply_get_by_phandle() function. Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- drivers/power/power_supply_core.c | 39 +++++++++++++++++++++++++++++++++++++++ include/linux/power_supply.h | 5 +++++ 2 files changed, 44 insertions(+) diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c index 2ed4a4a..59856bc 100644 --- a/drivers/power/power_supply_core.c +++ b/drivers/power/power_supply_core.c @@ -420,6 +420,45 @@ struct power_supply *power_supply_get_by_phandle(struct device_node *np, return psy; } EXPORT_SYMBOL_GPL(power_supply_get_by_phandle); + +static void devm_power_supply_put(struct device *dev, void *res) +{ + struct power_supply **psy = res; + + power_supply_put(*psy); +} + +/** + * devm_power_supply_get_by_phandle() - Resource managed version of + * power_supply_get_by_phandle() + * @dev: Pointer to device holding phandle property + * @phandle_name: Name of property holding a power supply phandle + * + * Return: On success returns a reference to a power supply with + * matching name equals to value under @property, NULL or ERR_PTR otherwise. + */ +struct power_supply *devm_power_supply_get_by_phandle(struct device *dev, + const char *property) +{ + struct power_supply **ptr, *psy; + + if (!dev->of_node) + return ERR_PTR(-ENODEV); + + ptr = devres_alloc(devm_power_supply_put, sizeof(*ptr), GFP_KERNEL); + if (!ptr) + return ERR_PTR(-ENOMEM); + + psy = power_supply_get_by_phandle(dev->of_node, property); + if (IS_ERR_OR_NULL(psy)) { + devres_free(ptr); + } else { + *ptr = psy; + devres_add(dev, ptr); + } + return psy; +} +EXPORT_SYMBOL_GPL(devm_power_supply_get_by_phandle); #endif /* CONFIG_OF */ int power_supply_get_property(struct power_supply *psy, diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h index 75a1dd8..a99cf4f 100644 --- a/include/linux/power_supply.h +++ b/include/linux/power_supply.h @@ -286,10 +286,15 @@ extern void power_supply_put(struct power_supply *psy); #ifdef CONFIG_OF extern struct power_supply *power_supply_get_by_phandle(struct device_node *np, const char *property); +extern struct power_supply *devm_power_supply_get_by_phandle( + struct device *dev, const char *property); #else /* !CONFIG_OF */ static inline struct power_supply * power_supply_get_by_phandle(struct device_node *np, const char *property) { return NULL; } +static inline struct power_supply * +devm_power_supply_get_by_phandle(struct device *dev, const char *property) +{ return NULL; } #endif /* CONFIG_OF */ extern void power_supply_changed(struct power_supply *psy); extern int power_supply_am_i_supplied(struct power_supply *psy); -- 2.3.6
next prev parent reply other threads:[~2015-06-09 21:37 UTC|newest] Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-06-09 21:37 [PATCH 0/8] mfd/power/phy: Add support for otg vbus detection via axp pmic Hans de Goede 2015-06-09 21:37 ` Hans de Goede 2015-06-09 21:37 ` [PATCH 1/8] mfd: axp20x: Add missing registers, and mark more registers volatile Hans de Goede 2015-06-09 21:37 ` Hans de Goede [not found] ` <1433885881-19809-2-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-06-10 7:36 ` Lee Jones 2015-06-10 7:36 ` Lee Jones 2015-06-09 21:37 ` Hans de Goede [this message] 2015-06-09 21:37 ` [PATCH 3/8] power: Add devm_power_supply_get_by_phandle() helper function Hans de Goede 2015-06-10 14:49 ` Sebastian Reichel 2015-06-10 14:49 ` Sebastian Reichel 2015-06-09 21:38 ` [PATCH 8/8] ARM: dts: sun7i: Enable USB DRC on Bananapi Hans de Goede 2015-06-09 21:38 ` Hans de Goede [not found] ` <1433885881-19809-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-06-09 21:37 ` [PATCH 2/8] mfd: axp20x: Add a cell for the usb power_supply part of the axp20x PMICs Hans de Goede 2015-06-09 21:37 ` Hans de Goede [not found] ` <1433885881-19809-3-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-06-10 1:19 ` Chen-Yu Tsai 2015-06-10 1:19 ` [linux-sunxi] " Chen-Yu Tsai [not found] ` <CAGb2v652W+i6L1k5-CnHtXZXdJjFswkcyFGromhWSYaXtitW_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-06-10 7:57 ` Hans de Goede 2015-06-10 7:57 ` [linux-sunxi] " Hans de Goede [not found] ` <5577EDD9.8020900-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-06-13 13:50 ` Maxime Ripard 2015-06-13 13:50 ` [linux-sunxi] " Maxime Ripard 2015-06-24 12:18 ` Michal Suchanek 2015-06-24 12:18 ` [linux-sunxi] " Michal Suchanek 2015-06-10 7:35 ` Lee Jones 2015-06-10 7:35 ` Lee Jones 2015-06-10 7:36 ` Lee Jones 2015-06-10 7:36 ` Lee Jones 2015-06-09 21:37 ` [PATCH 4/8] power: Add an axp20x-usb-power driver Hans de Goede 2015-06-09 21:37 ` Hans de Goede 2015-06-10 7:29 ` Lee Jones 2015-06-10 7:29 ` Lee Jones 2015-06-10 9:22 ` Hans de Goede 2015-06-10 9:22 ` Hans de Goede [not found] ` <557801B8.5040804-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-06-10 9:34 ` Lee Jones 2015-06-10 9:34 ` Lee Jones 2015-06-09 21:37 ` [PATCH 5/8] phy-sun4i-usb: Add support for monitoring vbus via a power-supply Hans de Goede 2015-06-09 21:37 ` Hans de Goede 2015-06-09 21:37 ` [PATCH 6/8] ARM: dts: axp209: Add usb_power_supply child node to the ax209 node Hans de Goede 2015-06-09 21:37 ` Hans de Goede [not found] ` <1433885881-19809-7-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-07-31 5:31 ` Chen-Yu Tsai 2015-07-31 5:31 ` [linux-sunxi] " Chen-Yu Tsai [not found] ` <CAGb2v66X79dK84hG8NVTho-kPPMNcKXQspvT2pCM8Zbmnme53A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-07-31 5:51 ` Bruno Prémont 2015-07-31 5:51 ` [linux-sunxi] " Bruno Prémont 2015-07-31 6:14 ` Chen-Yu Tsai 2015-07-31 6:14 ` Chen-Yu Tsai [not found] ` <CAGb2v67nM7pauyjyhBdfgX7p_Rud6TEsNqphB+gx4ROekVqtbw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-07-31 6:35 ` Bruno Prémont 2015-07-31 6:35 ` [linux-sunxi] " Bruno Prémont 2015-07-31 7:57 ` Maxime Ripard 2015-07-31 7:57 ` Maxime Ripard [not found] ` <20150731083541.5f2c683a-I2t2yFIzmohO7ya8xxV06g@public.gmane.org> 2015-07-31 8:31 ` Hans de Goede 2015-07-31 8:31 ` Hans de Goede [not found] ` <55BB3262.5000403-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-07-31 9:00 ` Chen-Yu Tsai 2015-07-31 9:00 ` [linux-sunxi] " Chen-Yu Tsai [not found] ` <CAGb2v66+CZe0v=CuYOLfnNwkX70kwPOP28Nya2Y8xw8yrg4-8Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-07-31 9:11 ` Hans de Goede 2015-07-31 9:11 ` Hans de Goede [not found] ` <55BB3BCB.6080608-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-07-31 10:06 ` Chen-Yu Tsai 2015-07-31 10:06 ` [linux-sunxi] " Chen-Yu Tsai 2015-07-31 9:14 ` Hans de Goede 2015-07-31 9:14 ` Hans de Goede 2015-06-09 21:38 ` [PATCH 7/8] ARM: dts: sun7i: Add regulator configuration to the bananapi dts file Hans de Goede 2015-06-09 21:38 ` Hans de Goede 2015-06-10 6:15 ` [PATCH 0/8] mfd/power/phy: Add support for otg vbus detection via axp pmic Priit Laes 2015-06-10 6:15 ` [linux-sunxi] " Priit Laes
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1433885881-19809-4-git-send-email-hdegoede@redhat.com \ --to=hdegoede@redhat.com \ --cc=balbi@ti.com \ --cc=bonbons@linux-vserver.org \ --cc=dbaryshkov@gmail.com \ --cc=devicetree@vger.kernel.org \ --cc=dwmw2@infradead.org \ --cc=kishon@ti.com \ --cc=lee.jones@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-sunxi@googlegroups.com \ --cc=maxime.ripard@free-electrons.com \ --cc=sre@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.