All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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: link
Be 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.