All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexey Starikovskiy <aystarik@gmail.com>
To: Andrey Borzenkov <arvidjaar@mail.ru>
Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [2.624-rc1 regression] lost battery information
Date: Fri, 26 Oct 2007 22:32:51 +0400	[thread overview]
Message-ID: <472232D3.6000807@gmail.com> (raw)
In-Reply-To: <200710262215.42939.arvidjaar@mail.ru>

[-- Attachment #1: Type: text/plain, Size: 2159 bytes --]

Andrey Borzenkov wrote:
> On Friday 26 October 2007, Alexey Starikovskiy wrote:
>> Andrey Borzenkov wrote:
>>> On Friday 26 October 2007, Alexey Starikovskiy wrote:
>>>> Andrey Borzenkov wrote:
>>>>> I have lost battery in 2.6.24-rc1. Without CONFIG_ACPI_PROCFS I have
>>>>> no /proc/acpi/battery and cannot test netlink interface because right
>>>>> now there is no consumer of this.
>>>> for /sysfs interface you need to enable power_supply driver.
>>>> or you could apply this patch and power_supply will be selected by
>>>> battery itself.
>>> I already have power_supply module, battery depends on it and it is
>>> autloaded. But I fail to see where I can get battery info in /sys
>> Intent was to put into /sysfs same information:
>> aystarik@samsung:~/client_conf$ ls /sys/class/power_supply/BAT1/
>> alarm  charge_full  charge_full_design  charge_now  current_now  device 
>> manufacturer  model_name  present  status  subsystem  technology  type 
>> uevent  voltage_min_design  voltage_now
>>
> 
> is it in -rc1 or can you point me to the patch (I'd rather avoid having to 
> pull from different git trees). Thank you.
No, it should be rc1.
> 
> And what about ACPI_PROCFS case? It still needs attention I believe.
As you can see, there is info in /proc too:
>> aystarik@samsung:~/client_conf$ cat /proc/acpi/battery/BAT1/*
>> alarm:                   unsupported
>> present:                 yes
>> design capacity:         4300 mAh
>> last full capacity:      4172 mAh
>> battery technology:      rechargeable
>> design voltage:          14800 mV
>> design capacity warning: 208 mAh
>> design capacity low:     41 mAh
>> capacity granularity 1:  41 mAh
>> capacity granularity 2:  41 mAh
>> model number:            Bat1
>> serial number:           001
>> battery type:            LION
>> OEM info:                Pacifi
>> present:                 yes
>> capacity state:          ok
>> charging state:          charged
>> present rate:            0 mA
>> remaining capacity:      4172 mAh
>> present voltage:         16518 mV

Your cat's "Bad address" means -EFAULT, according to "man errno".
Please apply this patch to see what exactly failed...


[-- Attachment #2: x.patch --]
[-- Type: text/x-diff, Size: 1372 bytes --]

diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 02a396d..55e9a8e 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -262,21 +262,29 @@ static int extract_package(struct acpi_battery *battery,
 {
 	int i, *x;
 	union acpi_object *element;
-	if (package->type != ACPI_TYPE_PACKAGE)
+	if (package->type != ACPI_TYPE_PACKAGE) {
+printk (KERN_ERR PREFIX "package->type = %x\n", package->type);
 		return -EFAULT;
+	}
 	for (i = 0; i < num; ++i) {
-		if (package->package.count <= i)
+		if (package->package.count <= i) {
+printk (KERN_ERR PREFIX "package.count = %d, i = %d\n", package->package.count, i);
 			return -EFAULT;
+		}
 		element = &package->package.elements[i];
 		if (offsets[i].mode) {
 			if (element->type != ACPI_TYPE_STRING &&
-			    element->type != ACPI_TYPE_BUFFER)
+			    element->type != ACPI_TYPE_BUFFER) {
+printk (KERN_ERR PREFIX "element[%d]->type = %x, expected string\n", i, element->type);
 				return -EFAULT;
+			}
 			strncpy((u8 *)battery + offsets[i].offset,
 				element->string.pointer, 32);
 		} else {
-			if (element->type != ACPI_TYPE_INTEGER)
+			if (element->type != ACPI_TYPE_INTEGER) {
+printk (KERN_ERR PREFIX "element[%d]->type = %x, expected integer\n", i, element->type);
 				return -EFAULT;
+			}
 			x = (int *)((u8 *)battery + offsets[i].offset);
 			*x = element->integer.value;
 		}

  reply	other threads:[~2007-10-26 18:33 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-26 16:24 [2.624-rc1 regression] lost battery information Andrey Borzenkov
2007-10-26 16:44 ` Frans Pop
2007-10-26 16:57 ` Alexey Starikovskiy
2007-10-26 17:20   ` Andrey Borzenkov
2007-10-26 18:00     ` Frans Pop
2007-10-26 18:12     ` Alexey Starikovskiy
2007-10-26 18:15       ` Andrey Borzenkov
2007-10-26 18:32         ` Alexey Starikovskiy [this message]
2007-10-26 20:57           ` Frans Pop
2007-10-26 21:07             ` Alexey Starikovskiy
2007-10-27  7:22           ` Andrey Borzenkov
2007-10-27 13:45             ` Alexey Starikovskiy
2007-10-27 14:55               ` Andrey Borzenkov
2007-10-27 15:20                 ` Alexey Starikovskiy
2007-10-27 16:16                   ` Frans Pop
2007-10-27 16:49                   ` Andrey Borzenkov
2007-10-27 16:59                     ` Alexey Starikovskiy
2007-10-26 21:05   ` ACPI: use select POWER_SUPPLY for AC, BATTERY and SBS (was: [2.624-rc1 regression] lost battery information) Matej Laitl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=472232D3.6000807@gmail.com \
    --to=aystarik@gmail.com \
    --cc=arvidjaar@mail.ru \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.