From: "Pali Rohár" <pali.rohar@gmail.com>
To: Anton Vorontsov <anton@enomsg.org>,
David Woodhouse <dwmw2@infradead.org>,
Tony Lindgren <tony@atomide.com>,
Russell King <linux@arm.linux.org.uk>
Cc: linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
freemangordon@abv.bg, aaro.koskinen@iki.fi, pavel@ucw.cz,
"Pali Rohár" <pali.rohar@gmail.com>,
"Jenny TC" <jenny.tc@intel.com>
Subject: [PATCH v2 1/3] power_supply: Add power_supply notifier
Date: Tue, 19 Nov 2013 11:18:03 +0100 [thread overview]
Message-ID: <1384856285-19593-2-git-send-email-pali.rohar@gmail.com> (raw)
In-Reply-To: <1384856285-19593-1-git-send-email-pali.rohar@gmail.com>
This patch adds a notifier chain to the power_supply.
This notifier helps drivers in other subsystem to listen to
changes in power supply subsystem. This would help to take some
actions in those drivers on changing the power supply properties.
One such scenario is to increase/decrease system performance based
on the battery capacity/voltage. Another scenario is to adjust the
h/w peak current detection voltage/current thresholds based on battery
voltage/capacity. The notifier helps drivers to listen to changes
in power_suppy susbystem without polling the power_supply properties
Signed-off-by: Jenny TC <jenny.tc@intel.com>
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
---
drivers/power/power_supply_core.c | 17 +++++++++++++++++
include/linux/power_supply.h | 10 ++++++++++
2 files changed, 27 insertions(+)
diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c
index 00e6672..08bce22 100644
--- a/drivers/power/power_supply_core.c
+++ b/drivers/power/power_supply_core.c
@@ -24,6 +24,9 @@
struct class *power_supply_class;
EXPORT_SYMBOL_GPL(power_supply_class);
+ATOMIC_NOTIFIER_HEAD(power_supply_notifier);
+EXPORT_SYMBOL_GPL(power_supply_notifier);
+
static struct device_type power_supply_dev_type;
static bool __power_supply_is_supplied_by(struct power_supply *supplier,
@@ -80,6 +83,8 @@ static void power_supply_changed_work(struct work_struct *work)
class_for_each_device(power_supply_class, NULL, psy,
__power_supply_changed_work);
power_supply_update_leds(psy);
+ atomic_notifier_call_chain(&power_supply_notifier,
+ PSY_EVENT_PROP_CHANGED, psy);
kobject_uevent(&psy->dev->kobj, KOBJ_CHANGE);
spin_lock_irqsave(&psy->changed_lock, flags);
}
@@ -347,6 +352,18 @@ static void power_supply_dev_release(struct device *dev)
kfree(dev);
}
+int power_supply_reg_notifier(struct notifier_block *nb)
+{
+ return atomic_notifier_chain_register(&power_supply_notifier, nb);
+}
+EXPORT_SYMBOL_GPL(power_supply_reg_notifier);
+
+void power_supply_unreg_notifier(struct notifier_block *nb)
+{
+ atomic_notifier_chain_unregister(&power_supply_notifier, nb);
+}
+EXPORT_SYMBOL_GPL(power_supply_unreg_notifier);
+
#ifdef CONFIG_THERMAL
static int power_supply_read_temp(struct thermal_zone_device *tzd,
unsigned long *temp)
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 5c26006..c6f52c0 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -158,6 +158,13 @@ enum power_supply_type {
POWER_SUPPLY_TYPE_USB_ACA, /* Accessory Charger Adapters */
};
+enum power_supply_notifier_events {
+ PSY_EVENT_NONE,
+ PSY_EVENT_PROP_CHANGED,
+ PSY_EVENT_BATTERY,
+ PSY_EVENT_CABLE,
+};
+
union power_supply_propval {
int intval;
const char *strval;
@@ -235,6 +242,9 @@ struct power_supply_info {
int use_for_apm;
};
+extern struct atomic_notifier_head power_supply_notifier;
+extern int power_supply_reg_notifier(struct notifier_block *nb);
+extern void power_supply_unreg_notifier(struct notifier_block *nb);
extern struct power_supply *power_supply_get_by_name(const char *name);
extern void power_supply_changed(struct power_supply *psy);
extern int power_supply_am_i_supplied(struct power_supply *psy);
--
1.7.9.5
next prev parent reply other threads:[~2013-11-19 10:18 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-08 8:50 [PATCH 0/4] Add support for charging battery in Nokia RX-51 Pali Rohár
2013-09-08 8:50 ` [PATCH 1/4] usb: musb: Call atomic_notifier_call_chain when status is changed Pali Rohár
2013-09-17 15:48 ` Felipe Balbi
2013-09-17 15:49 ` Felipe Balbi
2013-09-17 16:05 ` Pali Rohár
2013-09-17 16:08 ` Felipe Balbi
2013-09-17 19:28 ` Pali Rohár
2013-09-18 1:49 ` Felipe Balbi
2013-09-18 8:20 ` Pali Rohár
2013-09-18 9:04 ` Javier Martinez Canillas
2013-09-18 13:30 ` Pavel Machek
2013-09-18 13:57 ` Javier Martinez Canillas
2013-09-18 14:22 ` Pavel Machek
2013-09-18 14:35 ` Pavel Machek
2013-09-18 16:25 ` Felipe Balbi
2013-09-18 14:53 ` Javier Martinez Canillas
2013-09-18 15:56 ` Pali Rohár
2013-09-18 16:36 ` Felipe Balbi
2013-09-18 16:43 ` Pali Rohár
2013-09-18 16:48 ` Felipe Balbi
2013-09-18 17:03 ` [PATCH usb 1/2] usb: musb: Add missing ATOMIC_INIT_NOTIFIER_HEAD Pali Rohár
2013-09-25 8:17 ` Pali Rohár
2013-09-25 20:33 ` Felipe Balbi
2013-09-26 0:00 ` Pavel Machek
2013-10-01 14:22 ` Felipe Balbi
2013-09-18 17:03 ` [PATCH usb 2/2] usb: musb: Call atomic_notifier_call_chain when status is changed Pali Rohár
2013-09-08 8:50 ` [PATCH 2/4] power: isp1704_charger: Fix driver to work with changes introduced in v3.5 Pali Rohár
2013-10-22 21:03 ` Anton Vorontsov
2013-09-08 8:50 ` [PATCH 3/4] power: isp1704_charger: Add callback function set_current Pali Rohár
2013-09-08 8:50 ` [PATCH 4/4] RX-51: Add platform function and data for bq24150a charger Pali Rohár
2013-09-09 13:39 ` Sebastian Reichel
2013-09-20 19:22 ` Pali Rohár
2013-09-23 18:03 ` Tony Lindgren
2013-09-23 19:16 ` Pali Rohár
2013-09-23 20:00 ` Sebastian Reichel
2013-09-23 20:06 ` Pali Rohár
2013-09-23 20:47 ` Sebastian Reichel
2013-09-23 23:11 ` Tony Lindgren
2013-09-24 0:05 ` Pavel Machek
2013-09-24 17:05 ` Pali Rohár
2013-09-24 20:50 ` Sebastian Reichel
2013-09-14 9:38 ` [PATCH 0/4] Add support for charging battery in Nokia RX-51 Pali Rohár
2013-09-21 13:42 ` Pali Rohár
2013-11-19 10:18 ` [PATCH v2 0/3] " Pali Rohár
2013-11-19 10:18 ` Pali Rohár [this message]
2013-11-19 13:10 ` [PATCH v2 1/3] power_supply: Add power_supply notifier Pavel Machek
2013-11-19 13:19 ` Pali Rohár
2013-11-24 17:02 ` Sebastian Reichel
2013-11-27 17:23 ` Tc, Jenny
2013-12-01 22:20 ` Anton Vorontsov
2013-12-01 22:23 ` Anton Vorontsov
2014-01-03 11:09 ` Tc, Jenny
2014-01-03 16:02 ` Anton Vorontsov
2013-11-19 10:18 ` [PATCH v2 2/3] bq2415x_charger: Use power_supply notifier for automode Pali Rohár
2013-11-19 13:24 ` Pavel Machek
2013-12-24 1:58 ` Anton Vorontsov
2013-11-24 17:00 ` Sebastian Reichel
2013-11-24 19:01 ` Pali Rohár
2013-11-24 19:26 ` Sebastian Reichel
2013-11-24 19:41 ` Pali Rohár
2013-11-24 21:00 ` Sebastian Reichel
2013-11-25 14:01 ` Pavel Machek
2013-11-25 14:10 ` Pali Rohár
2013-11-25 15:18 ` Pavel Machek
2013-11-25 18:52 ` Pali Rohár
2013-11-24 17:18 ` Michael Trimarchi
2013-11-24 19:01 ` Pali Rohár
2013-11-25 19:16 ` Michael Trimarchi
2013-12-01 22:37 ` Anton Vorontsov
2013-12-02 0:02 ` Michael Trimarchi
2013-12-02 0:24 ` Anton Vorontsov
2013-12-02 1:45 ` Michael Trimarchi
2014-01-19 20:54 ` Sebastian Reichel
2014-01-19 20:56 ` Michael Trimarchi
2014-01-20 10:21 ` Russell King - ARM Linux
2014-01-20 11:24 ` Sebastian Reichel
2013-12-06 13:32 ` Pali Rohár
2013-11-19 10:18 ` [PATCH v2 3/3] RX-51: Add platform data for bq24150a charger Pali Rohár
2013-11-19 13:32 ` Pavel Machek
2013-11-24 10:28 ` Pali Rohár
2013-11-19 14:44 ` [PATCH v2 0/3] Add support for charging battery in Nokia RX-51 Sebastian Reichel
2013-11-19 15:40 ` Tony Lindgren
2013-11-19 21:38 ` Pali Rohár
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=1384856285-19593-2-git-send-email-pali.rohar@gmail.com \
--to=pali.rohar@gmail.com \
--cc=aaro.koskinen@iki.fi \
--cc=anton@enomsg.org \
--cc=dwmw2@infradead.org \
--cc=freemangordon@abv.bg \
--cc=jenny.tc@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=pavel@ucw.cz \
--cc=tony@atomide.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).