diff options
-rw-r--r-- | drivers/acpi/battery.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index a0a178dd189c..4fb3c12ac1d8 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
@@ -173,14 +173,17 @@ static int acpi_battery_get_property(struct power_supply *psy, | |||
173 | val->intval = battery->voltage_now * 1000; | 173 | val->intval = battery->voltage_now * 1000; |
174 | break; | 174 | break; |
175 | case POWER_SUPPLY_PROP_CURRENT_NOW: | 175 | case POWER_SUPPLY_PROP_CURRENT_NOW: |
176 | val->intval = battery->current_now * 1000; | 176 | val->intval = battery->current_now; |
177 | /* if power units are mW, convert to mA by | 177 | if (battery->power_unit) { |
178 | dividing by current voltage (mV/1000) */ | 178 | val->intval *= 1000; |
179 | if (!battery->power_unit) { | 179 | } else { |
180 | if (battery->voltage_now) { | 180 | /* |
181 | * If power units are mW, convert to mA by dividing by | ||
182 | * current voltage. | ||
183 | */ | ||
184 | if (battery->voltage_now) | ||
181 | val->intval /= battery->voltage_now; | 185 | val->intval /= battery->voltage_now; |
182 | val->intval *= 1000; | 186 | else |
183 | } else | ||
184 | val->intval = -1; | 187 | val->intval = -1; |
185 | } | 188 | } |
186 | break; | 189 | break; |