From: Jason Gerecke <killertofu@gmail.com>
To: jkosina@suse.cz, linux-input@vger.kernel.org
Cc: pinglinux@gmail.com, benjamin.tissoires@redhat.com,
Jason Gerecke <killertofu@gmail.com>
Subject: [PATCH 3/7] HID: wacom: Allow dynamic battery creation/destruction
Date: Fri, 6 Mar 2015 11:47:40 -0800 [thread overview]
Message-ID: <1425671264-4944-10-git-send-email-killertofu@gmail.com> (raw)
In-Reply-To: <1425671264-4944-1-git-send-email-killertofu@gmail.com>
Tablets like the Intuos, Intuos Pro, and Bamboo have a connector for an
optional wireless module that can be connected on the fly. The presence
(or absence) of this module is indicated in a status report recieved
from the tablet. This patch adds a workqueue function that will create
or destroy a power_supply object at runtime to match the current state
of the WACOM_QUIRK_BATTERY flag.
Signed-off-by: Jason Gerecke <killertofu@gmail.com>
---
drivers/hid/wacom.h | 1 +
drivers/hid/wacom_sys.c | 17 +++++++++++++++--
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/hid/wacom.h b/drivers/hid/wacom.h
index b8344b1..ad7318d 100644
--- a/drivers/hid/wacom.h
+++ b/drivers/hid/wacom.h
@@ -142,4 +142,5 @@ void wacom_wac_usage_mapping(struct hid_device *hdev,
int wacom_wac_event(struct hid_device *hdev, struct hid_field *field,
struct hid_usage *usage, __s32 value);
void wacom_wac_report(struct hid_device *hdev, struct hid_report *report);
+void wacom_battery_work(struct work_struct *work);
#endif
diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
index 957699f..dfa4be7 100644
--- a/drivers/hid/wacom_sys.c
+++ b/drivers/hid/wacom_sys.c
@@ -1057,8 +1057,7 @@ static int wacom_initialize_battery(struct wacom *wacom)
static void wacom_destroy_battery(struct wacom *wacom)
{
- if ((wacom->wacom_wac.features.quirks & WACOM_QUIRK_BATTERY) &&
- wacom->battery.dev) {
+ if (wacom->battery.dev) {
power_supply_unregister(&wacom->battery);
wacom->battery.dev = NULL;
power_supply_unregister(&wacom->ac);
@@ -1329,6 +1328,20 @@ fail:
return;
}
+void wacom_battery_work(struct work_struct *work)
+{
+ struct wacom *wacom = container_of(work, struct wacom, work);
+
+ if ((wacom->wacom_wac.features.quirks & WACOM_QUIRK_BATTERY) &&
+ !wacom->battery.dev) {
+ wacom_initialize_battery(wacom);
+ }
+ else if (!(wacom->wacom_wac.features.quirks & WACOM_QUIRK_BATTERY) &&
+ wacom->battery.dev) {
+ wacom_destroy_battery(wacom);
+ }
+}
+
/*
* Not all devices report physical dimensions from HID.
* Compute the default from hardcoded logical dimension
--
2.3.0
next prev parent reply other threads:[~2015-03-06 19:48 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-06 19:47 [PATCH 1/7] HID: wacom: Move handling of Intuos status packets to seperate function Jason Gerecke
2015-03-06 19:47 ` [PATCH 2/7] HID: wacom: Centralize updating of wacom_wac battery status Jason Gerecke
2015-03-06 19:47 ` [PATCH 3/7] HID: wacom: Allow dynamic battery creation/destruction Jason Gerecke
2015-03-06 19:47 ` [PATCH 4/7] HID: wacom: Provide battery charge state to system over USB if available Jason Gerecke
2015-03-06 19:47 ` [PATCH 5/7] HID: wacom: Report battery status for Intuos Pro and Intuos5 Jason Gerecke
2015-03-06 19:47 ` [PATCH 6/7] HID: wacom: Status packet provides 'charging', not 'powered' bit Jason Gerecke
2015-03-06 19:47 ` [PATCH 7/7] HID: wacom: Add battery presence indicator to wireless tablets Jason Gerecke
2015-03-06 19:47 ` [PATCH 1/7] HID: wacom: Move handling of Intuos status packets to seperate function Jason Gerecke
2015-03-06 19:47 ` [PATCH 2/7] HID: wacom: Centralize updating of wacom_wac battery status Jason Gerecke
2015-03-06 19:47 ` Jason Gerecke [this message]
2015-03-06 19:47 ` [PATCH 4/7] HID: wacom: Provide battery charge state to system over USB if available Jason Gerecke
2015-03-06 19:47 ` [PATCH 5/7] HID: wacom: Report battery status for Intuos Pro and Intuos5 Jason Gerecke
2015-03-06 19:47 ` [PATCH 6/7] HID: wacom: Status packet provides 'charging', not 'powered' bit Jason Gerecke
2015-03-06 19:47 ` [PATCH 7/7] HID: wacom: Add battery presence indicator to wireless tablets Jason Gerecke
2015-03-11 15:50 ` Jiri Kosina
2015-03-11 17:25 ` [PATCH v2 " Jason Gerecke
2015-03-11 17:53 ` Jiri Kosina
2015-03-10 1:31 ` [PATCH 1/7] HID: wacom: Move handling of Intuos status packets to seperate function Ping Cheng
2015-03-10 16:22 ` Jason Gerecke
2015-03-11 15:49 ` Jiri Kosina
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=1425671264-4944-10-git-send-email-killertofu@gmail.com \
--to=killertofu@gmail.com \
--cc=benjamin.tissoires@redhat.com \
--cc=jkosina@suse.cz \
--cc=linux-input@vger.kernel.org \
--cc=pinglinux@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.