From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
To: Jiri Kosina <jikos@kernel.org>,
Bastien Nocera <hadess@hadess.net>,
Peter Hutterer <peter.hutterer@who-t.net>,
Nestor Lopez Casado <nlopezcasad@logitech.com>,
Olivier Gay <ogay@logitech.com>, Simon Wood <simon@mungewell.org>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 04/15] HID: logitech-hidpp: battery: remove overloads and provide ONLINE
Date: Thu, 2 Feb 2017 15:12:18 +0100 [thread overview]
Message-ID: <20170202141229.17322-5-benjamin.tissoires@redhat.com> (raw)
In-Reply-To: <20170202141229.17322-1-benjamin.tissoires@redhat.com>
When ONLINE isn't set, upower should ignore the battery capacity, so there
is no need to overload it with some random values.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---
no changes in v2
---
drivers/hid/hid-logitech-hidpp.c | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
index 1cda29e..3c57886 100644
--- a/drivers/hid/hid-logitech-hidpp.c
+++ b/drivers/hid/hid-logitech-hidpp.c
@@ -632,48 +632,39 @@ static int hidpp20_batterylevel_map_status_level(u8 data[3], int *level,
int *next_level)
{
int status;
- int level_override;
- *level = data[0];
+ if (data[0])
+ *level = data[0];
*next_level = data[1];
/* When discharging, we can rely on the device reported level.
- * For all other states the device reports level 0 (unknown). Make up
- * a number instead
+ * For all other states the device reports level 0 (unknown).
*/
switch (data[2]) {
case 0: /* discharging (in use) */
status = POWER_SUPPLY_STATUS_DISCHARGING;
- level_override = 0;
break;
case 1: /* recharging */
status = POWER_SUPPLY_STATUS_CHARGING;
- level_override = 80;
break;
case 2: /* charge in final stage */
status = POWER_SUPPLY_STATUS_CHARGING;
- level_override = 90;
break;
case 3: /* charge complete */
status = POWER_SUPPLY_STATUS_FULL;
- level_override = 100;
+ *level = 100;
break;
case 4: /* recharging below optimal speed */
status = POWER_SUPPLY_STATUS_CHARGING;
- level_override = 50;
break;
/* 5 = invalid battery type
6 = thermal error
7 = other charging error */
default:
status = POWER_SUPPLY_STATUS_NOT_CHARGING;
- level_override = 0;
break;
}
- if (level_override != 0 && *level == 0)
- *level = level_override;
-
return status;
}
@@ -719,6 +710,8 @@ static int hidpp20_query_battery_info(struct hidpp_device *hidpp)
return ret;
}
+ level = 0;
+ next_level = 0;
ret = hidpp20_batterylevel_get_battery_level(hidpp,
hidpp->battery.feature_index,
&status, &level, &next_level);
@@ -742,6 +735,8 @@ static int hidpp20_battery_event(struct hidpp_device *hidpp,
report->fap.funcindex_clientid != EVENT_BATTERY_LEVEL_STATUS_BROADCAST)
return 0;
+ level = hidpp->battery.level;
+
status = hidpp20_batterylevel_map_status_level(report->fap.params,
&level, &next_level);
@@ -759,6 +754,7 @@ static int hidpp20_battery_event(struct hidpp_device *hidpp,
}
static enum power_supply_property hidpp_battery_props[] = {
+ POWER_SUPPLY_PROP_ONLINE,
POWER_SUPPLY_PROP_STATUS,
POWER_SUPPLY_PROP_CAPACITY,
POWER_SUPPLY_PROP_SCOPE,
@@ -781,6 +777,12 @@ static int hidpp_battery_get_property(struct power_supply *psy,
case POWER_SUPPLY_PROP_SCOPE:
val->intval = POWER_SUPPLY_SCOPE_DEVICE;
break;
+ case POWER_SUPPLY_PROP_ONLINE:
+ val->intval = hidpp->battery.status ==
+ POWER_SUPPLY_STATUS_DISCHARGING ||
+ hidpp->battery.status ==
+ POWER_SUPPLY_STATUS_FULL;
+ break;
default:
ret = -EINVAL;
break;
--
2.9.3
next prev parent reply other threads:[~2017-02-02 14:15 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-02 14:12 [PATCH v2 00/15] Report power supply from hid-logitech-hidpp Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 01/15] HID: logitech-dj: allow devices to request full pairing information Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 02/15] HID: logitech-hidpp: Add scope to battery Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 03/15] HID: logitech-hidpp: make sure we only register one battery per device Benjamin Tissoires
2017-02-02 14:12 ` Benjamin Tissoires [this message]
2017-02-08 13:48 ` [PATCH v2 04/15] HID: logitech-hidpp: battery: remove overloads and provide ONLINE Bastien Nocera
2017-03-16 9:20 ` Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 05/15] HID: logitech-hidpp: forward device info in power_supply Benjamin Tissoires
2017-02-03 15:08 ` Bastien Nocera
2017-02-07 8:35 ` Benjamin Tissoires
2017-03-06 12:18 ` Jiri Kosina
2017-03-06 12:27 ` Bastien Nocera
2017-03-06 13:39 ` Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 06/15] HID: logitech-hidpp: create the battery for all types of HID++ devices Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 07/15] HID: logitech-hidpp: return an error if the feature is not present Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 08/15] HID: logitech-hidpp: add support for battery status for the K750 Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 09/15] HID: logitech-hidpp: enable HID++ 1.0 battery reporting Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 10/15] HID: logitech-hidpp: notify battery on connect Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 11/15] HID: logitech-hidpp: add a sysfs file to tell we support power_supply Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 12/15] HID: logitech-hidpp: do not query the name through HID++ for 1.0 devices Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 13/15] HID: logitech-hidpp: rework probe path for unifying devices Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 14/15] HID: logitech-hidpp: retrieve the HID++ device name when available Benjamin Tissoires
2017-02-02 14:12 ` [PATCH v2 15/15] HID: logitech-hidpp: rework hidpp_connect_event() Benjamin Tissoires
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=20170202141229.17322-5-benjamin.tissoires@redhat.com \
--to=benjamin.tissoires@redhat.com \
--cc=hadess@hadess.net \
--cc=jikos@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nlopezcasad@logitech.com \
--cc=ogay@logitech.com \
--cc=peter.hutterer@who-t.net \
--cc=simon@mungewell.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®