Merge branch 'battery' into release
This commit is contained in:
commit
3266d63c06
|
@ -92,7 +92,7 @@ struct acpi_battery {
|
||||||
#endif
|
#endif
|
||||||
struct acpi_device *device;
|
struct acpi_device *device;
|
||||||
unsigned long update_time;
|
unsigned long update_time;
|
||||||
int current_now;
|
int rate_now;
|
||||||
int capacity_now;
|
int capacity_now;
|
||||||
int voltage_now;
|
int voltage_now;
|
||||||
int design_capacity;
|
int design_capacity;
|
||||||
|
@ -196,7 +196,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
|
||||||
val->intval = battery->voltage_now * 1000;
|
val->intval = battery->voltage_now * 1000;
|
||||||
break;
|
break;
|
||||||
case POWER_SUPPLY_PROP_CURRENT_NOW:
|
case POWER_SUPPLY_PROP_CURRENT_NOW:
|
||||||
val->intval = battery->current_now * 1000;
|
case POWER_SUPPLY_PROP_POWER_NOW:
|
||||||
|
val->intval = battery->rate_now * 1000;
|
||||||
break;
|
break;
|
||||||
case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
|
case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
|
||||||
case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN:
|
case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN:
|
||||||
|
@ -247,6 +248,7 @@ static enum power_supply_property energy_battery_props[] = {
|
||||||
POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
|
POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
|
||||||
POWER_SUPPLY_PROP_VOLTAGE_NOW,
|
POWER_SUPPLY_PROP_VOLTAGE_NOW,
|
||||||
POWER_SUPPLY_PROP_CURRENT_NOW,
|
POWER_SUPPLY_PROP_CURRENT_NOW,
|
||||||
|
POWER_SUPPLY_PROP_POWER_NOW,
|
||||||
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN,
|
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN,
|
||||||
POWER_SUPPLY_PROP_ENERGY_FULL,
|
POWER_SUPPLY_PROP_ENERGY_FULL,
|
||||||
POWER_SUPPLY_PROP_ENERGY_NOW,
|
POWER_SUPPLY_PROP_ENERGY_NOW,
|
||||||
|
@ -273,7 +275,7 @@ struct acpi_offsets {
|
||||||
|
|
||||||
static struct acpi_offsets state_offsets[] = {
|
static struct acpi_offsets state_offsets[] = {
|
||||||
{offsetof(struct acpi_battery, state), 0},
|
{offsetof(struct acpi_battery, state), 0},
|
||||||
{offsetof(struct acpi_battery, current_now), 0},
|
{offsetof(struct acpi_battery, rate_now), 0},
|
||||||
{offsetof(struct acpi_battery, capacity_now), 0},
|
{offsetof(struct acpi_battery, capacity_now), 0},
|
||||||
{offsetof(struct acpi_battery, voltage_now), 0},
|
{offsetof(struct acpi_battery, voltage_now), 0},
|
||||||
};
|
};
|
||||||
|
@ -605,11 +607,11 @@ static int acpi_battery_print_state(struct seq_file *seq, int result)
|
||||||
else
|
else
|
||||||
seq_printf(seq, "charging state: charged\n");
|
seq_printf(seq, "charging state: charged\n");
|
||||||
|
|
||||||
if (battery->current_now == ACPI_BATTERY_VALUE_UNKNOWN)
|
if (battery->rate_now == ACPI_BATTERY_VALUE_UNKNOWN)
|
||||||
seq_printf(seq, "present rate: unknown\n");
|
seq_printf(seq, "present rate: unknown\n");
|
||||||
else
|
else
|
||||||
seq_printf(seq, "present rate: %d %s\n",
|
seq_printf(seq, "present rate: %d %s\n",
|
||||||
battery->current_now, acpi_battery_units(battery));
|
battery->rate_now, acpi_battery_units(battery));
|
||||||
|
|
||||||
if (battery->capacity_now == ACPI_BATTERY_VALUE_UNKNOWN)
|
if (battery->capacity_now == ACPI_BATTERY_VALUE_UNKNOWN)
|
||||||
seq_printf(seq, "remaining capacity: unknown\n");
|
seq_printf(seq, "remaining capacity: unknown\n");
|
||||||
|
|
|
@ -102,8 +102,8 @@ struct acpi_battery {
|
||||||
u16 cycle_count;
|
u16 cycle_count;
|
||||||
u16 temp_now;
|
u16 temp_now;
|
||||||
u16 voltage_now;
|
u16 voltage_now;
|
||||||
s16 current_now;
|
s16 rate_now;
|
||||||
s16 current_avg;
|
s16 rate_avg;
|
||||||
u16 capacity_now;
|
u16 capacity_now;
|
||||||
u16 state_of_charge;
|
u16 state_of_charge;
|
||||||
u16 state;
|
u16 state;
|
||||||
|
@ -202,9 +202,9 @@ static int acpi_sbs_battery_get_property(struct power_supply *psy,
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
switch (psp) {
|
switch (psp) {
|
||||||
case POWER_SUPPLY_PROP_STATUS:
|
case POWER_SUPPLY_PROP_STATUS:
|
||||||
if (battery->current_now < 0)
|
if (battery->rate_now < 0)
|
||||||
val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
|
val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
|
||||||
else if (battery->current_now > 0)
|
else if (battery->rate_now > 0)
|
||||||
val->intval = POWER_SUPPLY_STATUS_CHARGING;
|
val->intval = POWER_SUPPLY_STATUS_CHARGING;
|
||||||
else
|
else
|
||||||
val->intval = POWER_SUPPLY_STATUS_FULL;
|
val->intval = POWER_SUPPLY_STATUS_FULL;
|
||||||
|
@ -224,11 +224,13 @@ static int acpi_sbs_battery_get_property(struct power_supply *psy,
|
||||||
acpi_battery_vscale(battery) * 1000;
|
acpi_battery_vscale(battery) * 1000;
|
||||||
break;
|
break;
|
||||||
case POWER_SUPPLY_PROP_CURRENT_NOW:
|
case POWER_SUPPLY_PROP_CURRENT_NOW:
|
||||||
val->intval = abs(battery->current_now) *
|
case POWER_SUPPLY_PROP_POWER_NOW:
|
||||||
|
val->intval = abs(battery->rate_now) *
|
||||||
acpi_battery_ipscale(battery) * 1000;
|
acpi_battery_ipscale(battery) * 1000;
|
||||||
break;
|
break;
|
||||||
case POWER_SUPPLY_PROP_CURRENT_AVG:
|
case POWER_SUPPLY_PROP_CURRENT_AVG:
|
||||||
val->intval = abs(battery->current_avg) *
|
case POWER_SUPPLY_PROP_POWER_AVG:
|
||||||
|
val->intval = abs(battery->rate_avg) *
|
||||||
acpi_battery_ipscale(battery) * 1000;
|
acpi_battery_ipscale(battery) * 1000;
|
||||||
break;
|
break;
|
||||||
case POWER_SUPPLY_PROP_CAPACITY:
|
case POWER_SUPPLY_PROP_CAPACITY:
|
||||||
|
@ -293,6 +295,8 @@ static enum power_supply_property sbs_energy_battery_props[] = {
|
||||||
POWER_SUPPLY_PROP_VOLTAGE_NOW,
|
POWER_SUPPLY_PROP_VOLTAGE_NOW,
|
||||||
POWER_SUPPLY_PROP_CURRENT_NOW,
|
POWER_SUPPLY_PROP_CURRENT_NOW,
|
||||||
POWER_SUPPLY_PROP_CURRENT_AVG,
|
POWER_SUPPLY_PROP_CURRENT_AVG,
|
||||||
|
POWER_SUPPLY_PROP_POWER_NOW,
|
||||||
|
POWER_SUPPLY_PROP_POWER_AVG,
|
||||||
POWER_SUPPLY_PROP_CAPACITY,
|
POWER_SUPPLY_PROP_CAPACITY,
|
||||||
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN,
|
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN,
|
||||||
POWER_SUPPLY_PROP_ENERGY_FULL,
|
POWER_SUPPLY_PROP_ENERGY_FULL,
|
||||||
|
@ -301,6 +305,7 @@ static enum power_supply_property sbs_energy_battery_props[] = {
|
||||||
POWER_SUPPLY_PROP_MODEL_NAME,
|
POWER_SUPPLY_PROP_MODEL_NAME,
|
||||||
POWER_SUPPLY_PROP_MANUFACTURER,
|
POWER_SUPPLY_PROP_MANUFACTURER,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------
|
||||||
|
@ -330,8 +335,8 @@ static struct acpi_battery_reader info_readers[] = {
|
||||||
static struct acpi_battery_reader state_readers[] = {
|
static struct acpi_battery_reader state_readers[] = {
|
||||||
{0x08, SMBUS_READ_WORD, offsetof(struct acpi_battery, temp_now)},
|
{0x08, SMBUS_READ_WORD, offsetof(struct acpi_battery, temp_now)},
|
||||||
{0x09, SMBUS_READ_WORD, offsetof(struct acpi_battery, voltage_now)},
|
{0x09, SMBUS_READ_WORD, offsetof(struct acpi_battery, voltage_now)},
|
||||||
{0x0a, SMBUS_READ_WORD, offsetof(struct acpi_battery, current_now)},
|
{0x0a, SMBUS_READ_WORD, offsetof(struct acpi_battery, rate_now)},
|
||||||
{0x0b, SMBUS_READ_WORD, offsetof(struct acpi_battery, current_avg)},
|
{0x0b, SMBUS_READ_WORD, offsetof(struct acpi_battery, rate_avg)},
|
||||||
{0x0f, SMBUS_READ_WORD, offsetof(struct acpi_battery, capacity_now)},
|
{0x0f, SMBUS_READ_WORD, offsetof(struct acpi_battery, capacity_now)},
|
||||||
{0x0e, SMBUS_READ_WORD, offsetof(struct acpi_battery, state_of_charge)},
|
{0x0e, SMBUS_READ_WORD, offsetof(struct acpi_battery, state_of_charge)},
|
||||||
{0x16, SMBUS_READ_WORD, offsetof(struct acpi_battery, state)},
|
{0x16, SMBUS_READ_WORD, offsetof(struct acpi_battery, state)},
|
||||||
|
@ -589,9 +594,9 @@ static int acpi_battery_read_state(struct seq_file *seq, void *offset)
|
||||||
seq_printf(seq, "capacity state: %s\n",
|
seq_printf(seq, "capacity state: %s\n",
|
||||||
(battery->state & 0x0010) ? "critical" : "ok");
|
(battery->state & 0x0010) ? "critical" : "ok");
|
||||||
seq_printf(seq, "charging state: %s\n",
|
seq_printf(seq, "charging state: %s\n",
|
||||||
(battery->current_now < 0) ? "discharging" :
|
(battery->rate_now < 0) ? "discharging" :
|
||||||
((battery->current_now > 0) ? "charging" : "charged"));
|
((battery->rate_now > 0) ? "charging" : "charged"));
|
||||||
rate = abs(battery->current_now) * acpi_battery_ipscale(battery);
|
rate = abs(battery->rate_now) * acpi_battery_ipscale(battery);
|
||||||
rate *= (acpi_battery_mode(battery))?(battery->voltage_now *
|
rate *= (acpi_battery_mode(battery))?(battery->voltage_now *
|
||||||
acpi_battery_vscale(battery)/1000):1;
|
acpi_battery_vscale(battery)/1000):1;
|
||||||
seq_printf(seq, "present rate: %d%s\n", rate,
|
seq_printf(seq, "present rate: %d%s\n", rate,
|
||||||
|
|
|
@ -93,6 +93,8 @@ static struct device_attribute power_supply_attrs[] = {
|
||||||
POWER_SUPPLY_ATTR(voltage_avg),
|
POWER_SUPPLY_ATTR(voltage_avg),
|
||||||
POWER_SUPPLY_ATTR(current_now),
|
POWER_SUPPLY_ATTR(current_now),
|
||||||
POWER_SUPPLY_ATTR(current_avg),
|
POWER_SUPPLY_ATTR(current_avg),
|
||||||
|
POWER_SUPPLY_ATTR(power_now),
|
||||||
|
POWER_SUPPLY_ATTR(power_avg),
|
||||||
POWER_SUPPLY_ATTR(charge_full_design),
|
POWER_SUPPLY_ATTR(charge_full_design),
|
||||||
POWER_SUPPLY_ATTR(charge_empty_design),
|
POWER_SUPPLY_ATTR(charge_empty_design),
|
||||||
POWER_SUPPLY_ATTR(charge_full),
|
POWER_SUPPLY_ATTR(charge_full),
|
||||||
|
|
|
@ -73,6 +73,8 @@ enum power_supply_property {
|
||||||
POWER_SUPPLY_PROP_VOLTAGE_AVG,
|
POWER_SUPPLY_PROP_VOLTAGE_AVG,
|
||||||
POWER_SUPPLY_PROP_CURRENT_NOW,
|
POWER_SUPPLY_PROP_CURRENT_NOW,
|
||||||
POWER_SUPPLY_PROP_CURRENT_AVG,
|
POWER_SUPPLY_PROP_CURRENT_AVG,
|
||||||
|
POWER_SUPPLY_PROP_POWER_NOW,
|
||||||
|
POWER_SUPPLY_PROP_POWER_AVG,
|
||||||
POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
|
POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
|
||||||
POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN,
|
POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN,
|
||||||
POWER_SUPPLY_PROP_CHARGE_FULL,
|
POWER_SUPPLY_PROP_CHARGE_FULL,
|
||||||
|
|
Loading…
Reference in New Issue