HID: logitech-hidpp: rename battery level into capacity
The power_supply term for the percentage is capacity. Capacity level can be given when non accurate mileage is provided by the device, so better stick to the terms used in power_supply. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Tested-by: Bastien Nocera <hadess@hadess.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
284f8d7592
commit
14f437a1d7
@ -119,7 +119,7 @@ struct hidpp_battery {
|
|||||||
struct power_supply *ps;
|
struct power_supply *ps;
|
||||||
char name[64];
|
char name[64];
|
||||||
int status;
|
int status;
|
||||||
int level;
|
int capacity;
|
||||||
bool online;
|
bool online;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -683,17 +683,16 @@ static char *hidpp_get_device_name(struct hidpp_device *hidpp)
|
|||||||
|
|
||||||
#define EVENT_BATTERY_LEVEL_STATUS_BROADCAST 0x00
|
#define EVENT_BATTERY_LEVEL_STATUS_BROADCAST 0x00
|
||||||
|
|
||||||
static int hidpp20_batterylevel_map_status_level(u8 data[3], int *level,
|
static int hidpp20_batterylevel_map_status_capacity(u8 data[3], int *capacity,
|
||||||
int *next_level)
|
int *next_capacity)
|
||||||
{
|
{
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
*level = data[0];
|
*capacity = data[0];
|
||||||
*next_level = data[1];
|
*next_capacity = data[1];
|
||||||
|
|
||||||
/* When discharging, we can rely on the device reported level.
|
/* When discharging, we can rely on the device reported capacity.
|
||||||
* For all other states the device reports level 0 (unknown). Make up
|
* For all other states the device reports 0 (unknown).
|
||||||
* a number instead
|
|
||||||
*/
|
*/
|
||||||
switch (data[2]) {
|
switch (data[2]) {
|
||||||
case 0: /* discharging (in use) */
|
case 0: /* discharging (in use) */
|
||||||
@ -707,7 +706,7 @@ static int hidpp20_batterylevel_map_status_level(u8 data[3], int *level,
|
|||||||
break;
|
break;
|
||||||
case 3: /* charge complete */
|
case 3: /* charge complete */
|
||||||
status = POWER_SUPPLY_STATUS_FULL;
|
status = POWER_SUPPLY_STATUS_FULL;
|
||||||
*level = 100;
|
*capacity = 100;
|
||||||
break;
|
break;
|
||||||
case 4: /* recharging below optimal speed */
|
case 4: /* recharging below optimal speed */
|
||||||
status = POWER_SUPPLY_STATUS_CHARGING;
|
status = POWER_SUPPLY_STATUS_CHARGING;
|
||||||
@ -723,11 +722,11 @@ static int hidpp20_batterylevel_map_status_level(u8 data[3], int *level,
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hidpp20_batterylevel_get_battery_level(struct hidpp_device *hidpp,
|
static int hidpp20_batterylevel_get_battery_capacity(struct hidpp_device *hidpp,
|
||||||
u8 feature_index,
|
u8 feature_index,
|
||||||
int *status,
|
int *status,
|
||||||
int *level,
|
int *capacity,
|
||||||
int *next_level)
|
int *next_capacity)
|
||||||
{
|
{
|
||||||
struct hidpp_report response;
|
struct hidpp_report response;
|
||||||
int ret;
|
int ret;
|
||||||
@ -744,8 +743,8 @@ static int hidpp20_batterylevel_get_battery_level(struct hidpp_device *hidpp,
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
*status = hidpp20_batterylevel_map_status_level(params, level,
|
*status = hidpp20_batterylevel_map_status_capacity(params, capacity,
|
||||||
next_level);
|
next_capacity);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -754,7 +753,7 @@ static int hidpp20_query_battery_info(struct hidpp_device *hidpp)
|
|||||||
{
|
{
|
||||||
u8 feature_type;
|
u8 feature_type;
|
||||||
int ret;
|
int ret;
|
||||||
int status, level, next_level;
|
int status, capacity, next_capacity;
|
||||||
|
|
||||||
if (hidpp->battery.feature_index == 0) {
|
if (hidpp->battery.feature_index == 0) {
|
||||||
ret = hidpp_root_get_feature(hidpp,
|
ret = hidpp_root_get_feature(hidpp,
|
||||||
@ -765,14 +764,15 @@ static int hidpp20_query_battery_info(struct hidpp_device *hidpp)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = hidpp20_batterylevel_get_battery_level(hidpp,
|
ret = hidpp20_batterylevel_get_battery_capacity(hidpp,
|
||||||
hidpp->battery.feature_index,
|
hidpp->battery.feature_index,
|
||||||
&status, &level, &next_level);
|
&status, &capacity,
|
||||||
|
&next_capacity);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
hidpp->battery.status = status;
|
hidpp->battery.status = status;
|
||||||
hidpp->battery.level = level;
|
hidpp->battery.capacity = capacity;
|
||||||
/* the capacity is only available when discharging or full */
|
/* the capacity is only available when discharging or full */
|
||||||
hidpp->battery.online = status == POWER_SUPPLY_STATUS_DISCHARGING ||
|
hidpp->battery.online = status == POWER_SUPPLY_STATUS_DISCHARGING ||
|
||||||
status == POWER_SUPPLY_STATUS_FULL;
|
status == POWER_SUPPLY_STATUS_FULL;
|
||||||
@ -784,25 +784,26 @@ static int hidpp20_battery_event(struct hidpp_device *hidpp,
|
|||||||
u8 *data, int size)
|
u8 *data, int size)
|
||||||
{
|
{
|
||||||
struct hidpp_report *report = (struct hidpp_report *)data;
|
struct hidpp_report *report = (struct hidpp_report *)data;
|
||||||
int status, level, next_level;
|
int status, capacity, next_capacity;
|
||||||
bool changed;
|
bool changed;
|
||||||
|
|
||||||
if (report->fap.feature_index != hidpp->battery.feature_index ||
|
if (report->fap.feature_index != hidpp->battery.feature_index ||
|
||||||
report->fap.funcindex_clientid != EVENT_BATTERY_LEVEL_STATUS_BROADCAST)
|
report->fap.funcindex_clientid != EVENT_BATTERY_LEVEL_STATUS_BROADCAST)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
status = hidpp20_batterylevel_map_status_level(report->fap.params,
|
status = hidpp20_batterylevel_map_status_capacity(report->fap.params,
|
||||||
&level, &next_level);
|
&capacity,
|
||||||
|
&next_capacity);
|
||||||
|
|
||||||
/* the capacity is only available when discharging or full */
|
/* the capacity is only available when discharging or full */
|
||||||
hidpp->battery.online = status == POWER_SUPPLY_STATUS_DISCHARGING ||
|
hidpp->battery.online = status == POWER_SUPPLY_STATUS_DISCHARGING ||
|
||||||
status == POWER_SUPPLY_STATUS_FULL;
|
status == POWER_SUPPLY_STATUS_FULL;
|
||||||
|
|
||||||
changed = level != hidpp->battery.level ||
|
changed = capacity != hidpp->battery.capacity ||
|
||||||
status != hidpp->battery.status;
|
status != hidpp->battery.status;
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
hidpp->battery.level = level;
|
hidpp->battery.capacity = capacity;
|
||||||
hidpp->battery.status = status;
|
hidpp->battery.status = status;
|
||||||
if (hidpp->battery.ps)
|
if (hidpp->battery.ps)
|
||||||
power_supply_changed(hidpp->battery.ps);
|
power_supply_changed(hidpp->battery.ps);
|
||||||
@ -833,7 +834,7 @@ static int hidpp_battery_get_property(struct power_supply *psy,
|
|||||||
val->intval = hidpp->battery.status;
|
val->intval = hidpp->battery.status;
|
||||||
break;
|
break;
|
||||||
case POWER_SUPPLY_PROP_CAPACITY:
|
case POWER_SUPPLY_PROP_CAPACITY:
|
||||||
val->intval = hidpp->battery.level;
|
val->intval = hidpp->battery.capacity;
|
||||||
break;
|
break;
|
||||||
case POWER_SUPPLY_PROP_SCOPE:
|
case POWER_SUPPLY_PROP_SCOPE:
|
||||||
val->intval = POWER_SUPPLY_SCOPE_DEVICE;
|
val->intval = POWER_SUPPLY_SCOPE_DEVICE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user