diff options
author | Alexey Starikovskiy <astarikovskiy@suse.de> | 2007-12-08 05:02:46 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-12-14 15:14:23 -0500 |
commit | 5a21e4fe587ebb793bf3a1c02755f8a845170328 (patch) | |
tree | ed138219505186db6c8d347ba935f104f3339e25 | |
parent | c2d00f2d1bf8dd721f5557b0df23729addc1898d (diff) |
ACPI: SBS: Return rate in mW if capacity in mWh
klaptopd assumes rate to be in same units as capacity.
http://bugzilla.kernel.org/show_bug.cgi?id=9362
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r-- | drivers/acpi/sbs.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c index 813ef328f743..22cb95b349e4 100644 --- a/drivers/acpi/sbs.c +++ b/drivers/acpi/sbs.c | |||
@@ -533,7 +533,7 @@ static struct proc_dir_entry *acpi_battery_dir = NULL; | |||
533 | 533 | ||
534 | static inline char *acpi_battery_units(struct acpi_battery *battery) | 534 | static inline char *acpi_battery_units(struct acpi_battery *battery) |
535 | { | 535 | { |
536 | return acpi_battery_mode(battery) ? " mWh" : " mAh"; | 536 | return acpi_battery_mode(battery) ? " mW" : " mA"; |
537 | } | 537 | } |
538 | 538 | ||
539 | 539 | ||
@@ -550,10 +550,10 @@ static int acpi_battery_read_info(struct seq_file *seq, void *offset) | |||
550 | if (!battery->present) | 550 | if (!battery->present) |
551 | goto end; | 551 | goto end; |
552 | 552 | ||
553 | seq_printf(seq, "design capacity: %i%s\n", | 553 | seq_printf(seq, "design capacity: %i%sh\n", |
554 | battery->design_capacity * acpi_battery_scale(battery), | 554 | battery->design_capacity * acpi_battery_scale(battery), |
555 | acpi_battery_units(battery)); | 555 | acpi_battery_units(battery)); |
556 | seq_printf(seq, "last full capacity: %i%s\n", | 556 | seq_printf(seq, "last full capacity: %i%sh\n", |
557 | battery->full_charge_capacity * acpi_battery_scale(battery), | 557 | battery->full_charge_capacity * acpi_battery_scale(battery), |
558 | acpi_battery_units(battery)); | 558 | acpi_battery_units(battery)); |
559 | seq_printf(seq, "battery technology: rechargeable\n"); | 559 | seq_printf(seq, "battery technology: rechargeable\n"); |
@@ -584,7 +584,7 @@ static int acpi_battery_read_state(struct seq_file *seq, void *offset) | |||
584 | { | 584 | { |
585 | struct acpi_battery *battery = seq->private; | 585 | struct acpi_battery *battery = seq->private; |
586 | struct acpi_sbs *sbs = battery->sbs; | 586 | struct acpi_sbs *sbs = battery->sbs; |
587 | int result = 0; | 587 | int rate; |
588 | 588 | ||
589 | mutex_lock(&sbs->lock); | 589 | mutex_lock(&sbs->lock); |
590 | seq_printf(seq, "present: %s\n", | 590 | seq_printf(seq, "present: %s\n", |
@@ -598,9 +598,12 @@ static int acpi_battery_read_state(struct seq_file *seq, void *offset) | |||
598 | seq_printf(seq, "charging state: %s\n", | 598 | seq_printf(seq, "charging state: %s\n", |
599 | (battery->current_now < 0) ? "discharging" : | 599 | (battery->current_now < 0) ? "discharging" : |
600 | ((battery->current_now > 0) ? "charging" : "charged")); | 600 | ((battery->current_now > 0) ? "charging" : "charged")); |
601 | seq_printf(seq, "present rate: %d mA\n", | 601 | rate = abs(battery->current_now) * acpi_battery_ipscale(battery); |
602 | abs(battery->current_now) * acpi_battery_ipscale(battery)); | 602 | rate *= (acpi_battery_mode(battery))?(battery->voltage_now * |
603 | seq_printf(seq, "remaining capacity: %i%s\n", | 603 | acpi_battery_vscale(battery)/1000):1; |
604 | seq_printf(seq, "present rate: %d%s\n", rate, | ||
605 | acpi_battery_units(battery)); | ||
606 | seq_printf(seq, "remaining capacity: %i%sh\n", | ||
604 | battery->capacity_now * acpi_battery_scale(battery), | 607 | battery->capacity_now * acpi_battery_scale(battery), |
605 | acpi_battery_units(battery)); | 608 | acpi_battery_units(battery)); |
606 | seq_printf(seq, "present voltage: %i mV\n", | 609 | seq_printf(seq, "present voltage: %i mV\n", |
@@ -608,7 +611,7 @@ static int acpi_battery_read_state(struct seq_file *seq, void *offset) | |||
608 | 611 | ||
609 | end: | 612 | end: |
610 | mutex_unlock(&sbs->lock); | 613 | mutex_unlock(&sbs->lock); |
611 | return result; | 614 | return 0; |
612 | } | 615 | } |
613 | 616 | ||
614 | static int acpi_battery_state_open_fs(struct inode *inode, struct file *file) | 617 | static int acpi_battery_state_open_fs(struct inode *inode, struct file *file) |
@@ -632,7 +635,7 @@ static int acpi_battery_read_alarm(struct seq_file *seq, void *offset) | |||
632 | acpi_battery_get_alarm(battery); | 635 | acpi_battery_get_alarm(battery); |
633 | seq_printf(seq, "alarm: "); | 636 | seq_printf(seq, "alarm: "); |
634 | if (battery->alarm_capacity) | 637 | if (battery->alarm_capacity) |
635 | seq_printf(seq, "%i%s\n", | 638 | seq_printf(seq, "%i%sh\n", |
636 | battery->alarm_capacity * | 639 | battery->alarm_capacity * |
637 | acpi_battery_scale(battery), | 640 | acpi_battery_scale(battery), |
638 | acpi_battery_units(battery)); | 641 | acpi_battery_units(battery)); |