diff options
author | Alexey Starikovskiy <aystarik@gmail.com> | 2008-11-21 15:41:01 +0100 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-11-26 23:23:10 +0100 |
commit | 558073dd56707864f09d563b64e7c37c021e89d2 (patch) | |
tree | 0dcf13ad7676da7ac229b58a758546a70849cbe0 /drivers/acpi | |
parent | ACPI: EC: count interrupts only if called from interrupt handler. (diff) | |
download | linux-558073dd56707864f09d563b64e7c37c021e89d2.tar.xz linux-558073dd56707864f09d563b64e7c37c021e89d2.zip |
ACPI: battery: Convert discharge energy rate to current properly
ACPI battery interface reports its state either in mW or in mA, and
discharge rate in your case is reported in mW. power_supply interface
does not have such a parameter, so current_now parameter is used
for all cases. But in case of mW, reported discharge should
be converted into mA.
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Tested-by: Ferenc Wagner <wferi@niif.hu>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/battery.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index 1423b0c0cd2e..a0a178dd189c 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c @@ -174,6 +174,15 @@ static int acpi_battery_get_property(struct power_supply *psy, break; case POWER_SUPPLY_PROP_CURRENT_NOW: val->intval = battery->current_now * 1000; + /* if power units are mW, convert to mA by + dividing by current voltage (mV/1000) */ + if (!battery->power_unit) { + if (battery->voltage_now) { + val->intval /= battery->voltage_now; + val->intval *= 1000; + } else + val->intval = -1; + } break; case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN: |