Marcin Jessa wrote: > On Sun, 24 Jul 2005 17:15:12 -0700 > Nate Lawson <nate_at_root.org> wrote: >>As far as Eric's result, I'll check that on my systems as well. I >>_think_ the previous behavior was more correct (-1 = unknown) so I'll >>commit this minor change. The "state" variable should not have changed >>so please let me know for sure if it has. "1" means "discharging" which >>doesn't sound right if you're on AC power. If you just recently plugged >>in the laptop, try polling the status a few more times (apm(8) gives >>more detail) and see if it catches up. Some systems lag reporting >>various values until they are sure they've restabilized after an AC line >>change. >> >>Marcin, if your system reports a valid rate of use, we can calculate >>time. If you're on AC power, there is no time available (since your >>batteries aren't discharging at any rate). Try a previous >>kernel/acpi.ko to be certain what the behavior used to be. > > > [yazzy_at_lapdance:~]> uname -a > FreeBSD lapdance.yazzy.net 6.0-BETA1 FreeBSD 6.0-BETA1 #4: Sat Jul 23 17:35:13 CEST 2005 root_at_lapdance.yazzy.net:/usr/obj/usr/src/sys/LAPDANCE-6.0 i386 > > Running on AC: > [yazzy_at_lapdance:~]> sysctl -a | grep battery > hw.acpi.battery.life: 23 > hw.acpi.battery.time: -1 > hw.acpi.battery.state: 2 > hw.acpi.battery.units: 1 > hw.acpi.battery.info_expire: 5 > > Running on battery: > [yazzy_at_lapdance:~]> sysctl -a | grep battery > hw.acpi.battery.life: 23 > hw.acpi.battery.time: 41 > hw.acpi.battery.state: 1 > hw.acpi.battery.units: 1 > hw.acpi.battery.info_expire: 5 > [yazzy_at_lapdance:~]> And with a 7-current kernel, everything is the same except "time" is always -1 both on and off AC power? Please try this patch with 7-current and report its output both on and off power. It prints out more debugging info each time the battery is read. -- Nate Index: sys/dev/acpica/acpi_battery.c =================================================================== RCS file: /home/ncvs/src/sys/dev/acpica/acpi_battery.c,v retrieving revision 1.13 diff -u -r1.13 acpi_battery.c --- sys/dev/acpica/acpi_battery.c 23 Jul 2005 19:35:59 -0000 1.13 +++ sys/dev/acpica/acpi_battery.c 25 Jul 2005 15:59:29 -0000 _at__at_ -161,6 +161,7 _at__at_ error = ENOMEM; goto out; } +printf("batt pass1: dev %p ", batt_dev); /* Default info for every battery is "not present". */ acpi_reset_battinfo(&bi[i]); _at__at_ -174,11 +175,13 _at__at_ ACPI_BATT_GET_STATUS(batt_dev, &bst[i]) != 0 || ACPI_BATT_GET_INFO(batt_dev, bif) != 0) continue; +printf("ok "); /* If a battery is not installed, we sometimes get strange values. */ if (!acpi_battery_bst_valid(&bst[i]) || !acpi_battery_bif_valid(bif)) continue; +printf("valid "); /* Record state and calculate percent capacity remaining. */ valid_units++; _at__at_ -204,10 +207,12 _at__at_ */ if (bst[i].rate > 0 && (bst[i].state & ACPI_BATT_STAT_DISCHARG)) valid_rate += bst[i].rate; +printf("state %d cap %d valid_rate %d\n", bi[i].state, bi[i].cap, valid_rate); } /* If the caller asked for a device but we didn't find it, error. */ if (dev != NULL && dev_idx < 0) { +printf("batt: couldn't find dev %p\n", dev); error = ENXIO; goto out; } _at__at_ -226,6 +231,8 _at__at_ bi[i].min = 0; total_min += bi[i].min; total_cap += bi[i].cap; +printf("batt pass2: min %d total_min %d total_cap %d\n", bi[i].min, total_min, +total_cap); } /*Received on Mon Jul 25 2005 - 14:29:07 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:39 UTC