From: Dmitry Baryshkov <dbaryshkov@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: cbou@mail.ru, Andrew Morton <akpm@linux-foundation.org>,
Dmitry Baryshkov <dbaryshkov@gmail.com>,
Marek Vasut <marek.vasut@gmail.com>
Subject: [PATCH] power_supply: change the way how wm97xx-bat driver is registered
Date: Wed, 29 Oct 2008 12:04:10 +0300 [thread overview]
Message-ID: <1225271050-21171-2-git-send-email-dbaryshkov@gmail.com> (raw)
In-Reply-To: <1225271050-21171-1-git-send-email-dbaryshkov@gmail.com>
Do register the driver from wm97xx_bat_set_pdata instead of module init.
This has several positive outcome points:
1) This driver for wm97xx-battery is now registered on demand, thus allowing
other driver (e.g. tosa-battery) to claim the battery.
2) After dropping __init from wm97xx_bat_set_pdata(), the wm97xx_bat driver
can be correctly built as a module. Then one can request it and set the
battery data.
Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Cc: Marek Vasut <marek.vasut@gmail.com>
---
drivers/power/Kconfig | 4 ++--
drivers/power/wm97xx_battery.c | 12 +++++-------
include/linux/wm97xx_batt.h | 7 +++++--
3 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
index 8e0c2b4..053f20b 100644
--- a/drivers/power/Kconfig
+++ b/drivers/power/Kconfig
@@ -57,8 +57,8 @@ config BATTERY_TOSA
SL-6000 (tosa) models.
config BATTERY_WM97XX
- bool "WM97xx generic battery driver"
- depends on TOUCHSCREEN_WM97XX=y
+ tristate "WM97xx generic battery driver"
+ depends on TOUCHSCREEN_WM97XX
help
Say Y to enable support for battery measured by WM97xx aux port.
diff --git a/drivers/power/wm97xx_battery.c b/drivers/power/wm97xx_battery.c
index 8bde921..94727dc 100644
--- a/drivers/power/wm97xx_battery.c
+++ b/drivers/power/wm97xx_battery.c
@@ -248,23 +248,21 @@ static struct platform_driver wm97xx_bat_driver = {
.resume = wm97xx_bat_resume,
};
-static int __init wm97xx_bat_init(void)
-{
- return platform_driver_register(&wm97xx_bat_driver);
-}
-
static void __exit wm97xx_bat_exit(void)
{
platform_driver_unregister(&wm97xx_bat_driver);
}
-void __init wm97xx_bat_set_pdata(struct wm97xx_batt_info *data)
+int wm97xx_bat_set_pdata(struct wm97xx_batt_info *data)
{
+ if (pdata)
+ return -EEXIST;
+
pdata = data;
+ return platform_driver_register(&wm97xx_bat_driver);
}
EXPORT_SYMBOL_GPL(wm97xx_bat_set_pdata);
-module_init(wm97xx_bat_init);
module_exit(wm97xx_bat_exit);
MODULE_LICENSE("GPL");
diff --git a/include/linux/wm97xx_batt.h b/include/linux/wm97xx_batt.h
index 9681d1a..3e42526 100644
--- a/include/linux/wm97xx_batt.h
+++ b/include/linux/wm97xx_batt.h
@@ -18,9 +18,12 @@ struct wm97xx_batt_info {
};
#ifdef CONFIG_BATTERY_WM97XX
-void __init wm97xx_bat_set_pdata(struct wm97xx_batt_info *data);
+int wm97xx_bat_set_pdata(struct wm97xx_batt_info *data);
#else
-static inline void wm97xx_bat_set_pdata(struct wm97xx_batt_info *data) {}
+static inline int wm97xx_bat_set_pdata(struct wm97xx_batt_info *data)
+{
+ return -ENODEV;
+}
#endif
#endif
--
1.5.6.5
next prev parent reply other threads:[~2008-10-29 9:04 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-29 9:04 [PATCH] power_supply: only register tosa_battery driver on tosa Dmitry Baryshkov
2008-10-29 9:04 ` Dmitry Baryshkov [this message]
2008-11-02 20:36 ` [PATCH] power_supply: change the way how wm97xx-bat driver is registered Dmitry
2008-11-02 23:41 ` Marek Vasut
2008-11-03 15:11 ` Anton Vorontsov
2008-11-03 16:54 ` Jonathan Cameron
2008-11-03 17:21 ` Anton Vorontsov
2008-11-03 18:29 ` Dmitry Baryshkov
2008-11-03 19:34 ` Anton Vorontsov
2008-11-02 20:36 ` [PATCH] power_supply: only register tosa_battery driver on tosa Dmitry
2008-11-03 14:55 ` Anton Vorontsov
2008-11-03 16:20 ` Dmitry
2008-11-03 16:25 ` Anton Vorontsov
2008-11-03 16:41 ` Dmitry
2008-11-03 16:58 ` Anton Vorontsov
2008-11-03 17:09 ` Dmitry
2008-11-03 17:32 ` Anton Vorontsov
2008-11-03 18:14 ` Dmitry
2008-11-03 17:41 ` Mark Brown
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=1225271050-21171-2-git-send-email-dbaryshkov@gmail.com \
--to=dbaryshkov@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=cbou@mail.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=marek.vasut@gmail.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 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.