power: remove POWER_SUPPLY_PROP_CAPACITY_LEVEL
authorAndres Salomon <dilinger@queued.net>
Wed, 12 Dec 2007 19:12:56 +0000 (14:12 -0500)
committerAnton Vorontsov <cbouatmailru@gmail.com>
Fri, 1 Feb 2008 23:42:59 +0000 (02:42 +0300)
The CAPACITY_LEVEL stuff defines various levels of charge; however, what
is the difference between them?  What differentiates between HIGH and NORMAL,
LOW and CRITICAL, etc?

As it appears that these are fairly arbitrary, we end up making such policy
decisions in the kernel (or in hardware).  This is the sort of decision that
should be made in userspace, not in the kernel.

If the hardware does not support _CAPACITY and it cannot be easily calculated,
then perhaps the driver should register a custom CAPACITY_LEVEL attribute;
however, userspace should not become accustomed to looking for such a thing,
and we should certainly not encourage drivers to provide CAPACITY_LEVEL
stubs.

The following removes support for POWER_SUPPLY_PROP_CAPACITY_LEVEL.  The
OLPC battery driver is the only driver making use of this, so it's
removed from there as well.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Documentation/power_supply_class.txt
drivers/power/olpc_battery.c
drivers/power/power_supply_sysfs.c
include/linux/power_supply.h

index 9758cf433c0660f7f971f3958c5ffddbcb1a884a..a032c316b3bcdeb45a12b892b1abdfb77d1229b5 100644 (file)
@@ -100,8 +100,6 @@ age)". I.e. these attributes represents real thresholds, not design values.
 ENERGY_FULL, ENERGY_EMPTY - same as above but for energy.
 
 CAPACITY - capacity in percents.
-CAPACITY_LEVEL - capacity level. This corresponds to
-POWER_SUPPLY_CAPACITY_LEVEL_*.
 
 TEMP - temperature of the power supply.
 TEMP_AMBIENT - ambient temperature.
index c998e68d060f912ffe49b90edf482a1cc8640746..af7a231092a461052af4408f6e127901622e4f29 100644 (file)
@@ -226,14 +226,6 @@ static int olpc_bat_get_property(struct power_supply *psy,
                        return ret;
                val->intval = ec_byte;
                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:
                ret = olpc_ec_cmd(EC_BAT_TEMP, NULL, 0, (void *)&ec_word, 2);
                if (ret)
@@ -265,7 +257,6 @@ static enum power_supply_property olpc_bat_props[] = {
        POWER_SUPPLY_PROP_VOLTAGE_AVG,
        POWER_SUPPLY_PROP_CURRENT_AVG,
        POWER_SUPPLY_PROP_CAPACITY,
-       POWER_SUPPLY_PROP_CAPACITY_LEVEL,
        POWER_SUPPLY_PROP_TEMP,
        POWER_SUPPLY_PROP_TEMP_AMBIENT,
        POWER_SUPPLY_PROP_MANUFACTURER,
index e8ad1fd0f09fd3d1b9dc8ef7dbf7b0f948cd47b2..7a2163fa61c3591d9b9c97420997bb4142bd3404 100644 (file)
@@ -50,9 +50,6 @@ static ssize_t power_supply_show_property(struct device *dev,
        static char *technology_text[] = {
                "Unknown", "NiMH", "Li-ion", "Li-poly", "LiFe", "NiCd"
        };
-       static char *capacity_level_text[] = {
-               "Unknown", "Critical", "Low", "Normal", "High", "Full"
-       };
        ssize_t ret;
        struct power_supply *psy = dev_get_drvdata(dev);
        const ptrdiff_t off = attr - power_supply_attrs;
@@ -73,9 +70,6 @@ static ssize_t power_supply_show_property(struct device *dev,
                return sprintf(buf, "%s\n", health_text[value.intval]);
        else if (off == POWER_SUPPLY_PROP_TECHNOLOGY)
                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)
                return sprintf(buf, "%s\n", value.strval);
 
index 606c0957997f8b59d87c61611b1dddd96d7e206f..358b38d09fe0562048659c95cb1d4606f576dc7c 100644 (file)
@@ -56,15 +56,6 @@ enum {
        POWER_SUPPLY_TECHNOLOGY_NiCd,
 };
 
-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 {
        /* Properties of type `int' */
        POWER_SUPPLY_PROP_STATUS = 0,
@@ -91,7 +82,6 @@ enum power_supply_property {
        POWER_SUPPLY_PROP_ENERGY_NOW,
        POWER_SUPPLY_PROP_ENERGY_AVG,
        POWER_SUPPLY_PROP_CAPACITY, /* in percents! */
-       POWER_SUPPLY_PROP_CAPACITY_LEVEL,
        POWER_SUPPLY_PROP_TEMP,
        POWER_SUPPLY_PROP_TEMP_AMBIENT,
        POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW,