Revert "power: remove POWER_SUPPLY_PROP_CAPACITY_LEVEL"
This reverts commit8efe444038
and4cbc76eadf
. Richard@laptop.org was apparently using CAPACITY_LEVEL for debugging battery/EC problems, and was upset that it was removed. This readds it. Conflicts: Documentation/power_supply_class.txt Signed-off-by: Andres Salomon <dilinger@collabora.co.uk> Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
This commit is contained in:
parent
bfdb46ce84
commit
b294a290d2
@ -108,6 +108,8 @@ relative, time-based measurements.
|
|||||||
ENERGY_FULL, ENERGY_EMPTY - same as above but for energy.
|
ENERGY_FULL, ENERGY_EMPTY - same as above but for energy.
|
||||||
|
|
||||||
CAPACITY - capacity in percents.
|
CAPACITY - capacity in percents.
|
||||||
|
CAPACITY_LEVEL - capacity level. This corresponds to
|
||||||
|
POWER_SUPPLY_CAPACITY_LEVEL_*.
|
||||||
|
|
||||||
TEMP - temperature of the power supply.
|
TEMP - temperature of the power supply.
|
||||||
TEMP_AMBIENT - ambient temperature.
|
TEMP_AMBIENT - ambient temperature.
|
||||||
|
@ -276,6 +276,14 @@ static int olpc_bat_get_property(struct power_supply *psy,
|
|||||||
return ret;
|
return ret;
|
||||||
val->intval = ec_byte;
|
val->intval = ec_byte;
|
||||||
break;
|
break;
|
||||||
|
case POWER_SUPPLY_PROP_CAPACITY_LEVEL:
|
||||||
|
if (ec_byte & BAT_STAT_FULL)
|
||||||
|
val->intval = POWER_SUPPLY_CAPACITY_LEVEL_FULL;
|
||||||
|
else if (ec_byte & BAT_STAT_LOW)
|
||||||
|
val->intval = POWER_SUPPLY_CAPACITY_LEVEL_LOW;
|
||||||
|
else
|
||||||
|
val->intval = POWER_SUPPLY_CAPACITY_LEVEL_NORMAL;
|
||||||
|
break;
|
||||||
case POWER_SUPPLY_PROP_TEMP:
|
case POWER_SUPPLY_PROP_TEMP:
|
||||||
ret = olpc_ec_cmd(EC_BAT_TEMP, NULL, 0, (void *)&ec_word, 2);
|
ret = olpc_ec_cmd(EC_BAT_TEMP, NULL, 0, (void *)&ec_word, 2);
|
||||||
if (ret)
|
if (ret)
|
||||||
@ -321,6 +329,7 @@ static enum power_supply_property olpc_bat_props[] = {
|
|||||||
POWER_SUPPLY_PROP_VOLTAGE_AVG,
|
POWER_SUPPLY_PROP_VOLTAGE_AVG,
|
||||||
POWER_SUPPLY_PROP_CURRENT_AVG,
|
POWER_SUPPLY_PROP_CURRENT_AVG,
|
||||||
POWER_SUPPLY_PROP_CAPACITY,
|
POWER_SUPPLY_PROP_CAPACITY,
|
||||||
|
POWER_SUPPLY_PROP_CAPACITY_LEVEL,
|
||||||
POWER_SUPPLY_PROP_TEMP,
|
POWER_SUPPLY_PROP_TEMP,
|
||||||
POWER_SUPPLY_PROP_TEMP_AMBIENT,
|
POWER_SUPPLY_PROP_TEMP_AMBIENT,
|
||||||
POWER_SUPPLY_PROP_MANUFACTURER,
|
POWER_SUPPLY_PROP_MANUFACTURER,
|
||||||
|
@ -51,6 +51,9 @@ static ssize_t power_supply_show_property(struct device *dev,
|
|||||||
"Unknown", "NiMH", "Li-ion", "Li-poly", "LiFe", "NiCd",
|
"Unknown", "NiMH", "Li-ion", "Li-poly", "LiFe", "NiCd",
|
||||||
"LiMn"
|
"LiMn"
|
||||||
};
|
};
|
||||||
|
static char *capacity_level_text[] = {
|
||||||
|
"Unknown", "Critical", "Low", "Normal", "High", "Full"
|
||||||
|
};
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
struct power_supply *psy = dev_get_drvdata(dev);
|
struct power_supply *psy = dev_get_drvdata(dev);
|
||||||
const ptrdiff_t off = attr - power_supply_attrs;
|
const ptrdiff_t off = attr - power_supply_attrs;
|
||||||
@ -71,6 +74,8 @@ static ssize_t power_supply_show_property(struct device *dev,
|
|||||||
return sprintf(buf, "%s\n", health_text[value.intval]);
|
return sprintf(buf, "%s\n", health_text[value.intval]);
|
||||||
else if (off == POWER_SUPPLY_PROP_TECHNOLOGY)
|
else if (off == POWER_SUPPLY_PROP_TECHNOLOGY)
|
||||||
return sprintf(buf, "%s\n", technology_text[value.intval]);
|
return sprintf(buf, "%s\n", technology_text[value.intval]);
|
||||||
|
else if (off == POWER_SUPPLY_PROP_CAPACITY_LEVEL)
|
||||||
|
return sprintf(buf, "%s\n", capacity_level_text[value.intval]);
|
||||||
else if (off >= POWER_SUPPLY_PROP_MODEL_NAME)
|
else if (off >= POWER_SUPPLY_PROP_MODEL_NAME)
|
||||||
return sprintf(buf, "%s\n", value.strval);
|
return sprintf(buf, "%s\n", value.strval);
|
||||||
|
|
||||||
@ -109,6 +114,7 @@ static struct device_attribute power_supply_attrs[] = {
|
|||||||
POWER_SUPPLY_ATTR(energy_now),
|
POWER_SUPPLY_ATTR(energy_now),
|
||||||
POWER_SUPPLY_ATTR(energy_avg),
|
POWER_SUPPLY_ATTR(energy_avg),
|
||||||
POWER_SUPPLY_ATTR(capacity),
|
POWER_SUPPLY_ATTR(capacity),
|
||||||
|
POWER_SUPPLY_ATTR(capacity_level),
|
||||||
POWER_SUPPLY_ATTR(temp),
|
POWER_SUPPLY_ATTR(temp),
|
||||||
POWER_SUPPLY_ATTR(temp_ambient),
|
POWER_SUPPLY_ATTR(temp_ambient),
|
||||||
POWER_SUPPLY_ATTR(time_to_empty_now),
|
POWER_SUPPLY_ATTR(time_to_empty_now),
|
||||||
|
@ -58,6 +58,15 @@ enum {
|
|||||||
POWER_SUPPLY_TECHNOLOGY_LiMn,
|
POWER_SUPPLY_TECHNOLOGY_LiMn,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN = 0,
|
||||||
|
POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL,
|
||||||
|
POWER_SUPPLY_CAPACITY_LEVEL_LOW,
|
||||||
|
POWER_SUPPLY_CAPACITY_LEVEL_NORMAL,
|
||||||
|
POWER_SUPPLY_CAPACITY_LEVEL_HIGH,
|
||||||
|
POWER_SUPPLY_CAPACITY_LEVEL_FULL,
|
||||||
|
};
|
||||||
|
|
||||||
enum power_supply_property {
|
enum power_supply_property {
|
||||||
/* Properties of type `int' */
|
/* Properties of type `int' */
|
||||||
POWER_SUPPLY_PROP_STATUS = 0,
|
POWER_SUPPLY_PROP_STATUS = 0,
|
||||||
@ -89,6 +98,7 @@ enum power_supply_property {
|
|||||||
POWER_SUPPLY_PROP_ENERGY_NOW,
|
POWER_SUPPLY_PROP_ENERGY_NOW,
|
||||||
POWER_SUPPLY_PROP_ENERGY_AVG,
|
POWER_SUPPLY_PROP_ENERGY_AVG,
|
||||||
POWER_SUPPLY_PROP_CAPACITY, /* in percents! */
|
POWER_SUPPLY_PROP_CAPACITY, /* in percents! */
|
||||||
|
POWER_SUPPLY_PROP_CAPACITY_LEVEL,
|
||||||
POWER_SUPPLY_PROP_TEMP,
|
POWER_SUPPLY_PROP_TEMP,
|
||||||
POWER_SUPPLY_PROP_TEMP_AMBIENT,
|
POWER_SUPPLY_PROP_TEMP_AMBIENT,
|
||||||
POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW,
|
POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW,
|
||||||
|
Loading…
Reference in New Issue
Block a user