Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
ACPI ( Battery ) issues on a DELL Inspiron 5100
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
alxcm
n00b
n00b


Joined: 09 Mar 2005
Posts: 5

PostPosted: Wed Mar 09, 2005 8:21 pm    Post subject: ACPI ( Battery ) issues on a DELL Inspiron 5100 Reply with quote

Can someone give me a hand diagnosing and fixing this extremely annoying problem:

/proc/acpi/battery is empty. /proc/acpi/ac_adapter works just fine, but no program is able to read battery information. Why?

I've read all kinds of stuff about DSDTs and smart batteries. I do not believe the battery is smart.

The BIOS of the computer is PhoenixBIOS version A06. I'm using the current gentoo-dev-sources ( 2.6.10-r6-gentoo )

dmesg | grep ACPI:
Code:

 BIOS-e820: 000000001ff70000 - 000000001ff7b000 (ACPI data)
 BIOS-e820: 000000001ff7b000 - 000000001ff80000 (ACPI NVS)
ACPI: RSDP (v000 PTLTD                                 ) @ 0x000f78e0
ACPI: RSDT (v001 PTLTD    RSDT   0x06040000  LTP 0x00000000) @ 0x1ff76dd0
ACPI: FADT (v001 INTEL  NBGV     0x06040000 PTL  0x00000003) @ 0x1ff7af64
ACPI: BOOT (v001 PTLTD  $SBFTBL$ 0x06040000  LTP 0x00000001) @ 0x1ff7afd8
ACPI: DSDT (v001  INTEL Brkdle_G 0x06040000 MSFT 0x0100000e) @ 0x00000000
ACPI: setting ELCR to 0200 (from 0c00)
ACPI: Subsystem revision 20041105
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.SLOT._PRT]
ACPI: Embedded Controller [EC0] (gpe 28)
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 *10 11 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 *10 11 14 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 10 *11 14 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 10 *11 14 15)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 *10 11 14 15)
pnp: PnP ACPI init
pnp: PnP ACPI: found 7 devices
PCI: Using ACPI for IRQ routing
ACPI: AC Adapter [ACAD] (on-line)
    ACPI-0352: *** Error: Looking up [Z000] in namespace, AE_NOT_FOUND
    ACPI-1138: *** Error: Method execution failed [\_SB_.PCI0.LPC0.BAT1._BIF] (Node dff4c1e0), AE_NOT_FOUND
ACPI: Power Button (FF) [PWRF]
ACPI: Sleep Button (CM) [SLPB]
ACPI: Lid Switch [LID]
ACPI: Processor [CPU0] (supports C1 C2)
ACPI: Processor [CPU0] (supports 8 throttling states)
ACPI: Thermal Zone [THRM] (51 C)
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1f.6[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 10
ACPI: PCI interrupt 0000:02:04.1[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.7[D] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11
ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI interrupt 0000:00:1f.5[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:00:1f.6[B] -> GSI 10 (level, low) -> IRQ 10
ACPI wakeup devices:
ACPI: (supports S0 S1 S3 S4 S5)
ACPI: PCI interrupt 0000:02:01.0[A] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI interrupt 0000:02:02.0[A] -> GSI 11 (level, low) -> IRQ 11


I'm dead sure it's those AE_NOT_FOUND errors from BAT1 that's causing the problem. I'd fix the DSDT myself but all the kernel patches seem to be for 2.4.x branches. Help!

With regards to Z000, when I recompile the dsdt ( cp /proc/acpi/dsdt dsdt && iasl -d dsdt && iasl -tc dsdt.dsl ):
Code:


Intel ACPI Component Architecture
ASL Optimizing Compiler / AML Disassembler version 20050211 [Mar  9 2005]
Copyright (C) 2000 - 2005 Intel Corporation
Supports ACPI Specification Revision 3.0

dsdt.dsl   881:                     Method (TGAD, 0, NotSerialized)
Warning  2019 -                                ^ Not all control paths return a value (TGAD)

dsdt.dsl  1354:                     Field (ERAM, AnyAcc, Lock, Preserve)
Error    1048 -                               ^ Host Operation Region requires ByteAcc access

dsdt.dsl  1559:                     Field (ECRM, AnyAcc, Lock, Preserve)
Error    1048 -                               ^ Host Operation Region requires ByteAcc access

dsdt.dsl  2950:                     SRST,   1
Error    1051 -                        ^ Access width of Field Unit extends beyond region limit
[b]
dsdt.dsl  3013:                             Z000,
Error    1022 -          Object does not exist ^  (Z000)

dsdt.dsl  3014:                             Z001,
Error    1022 -          Object does not exist ^  (Z001)

dsdt.dsl  3017:                             Z002,
Error    1022 -          Object does not exist ^  (Z002)

dsdt.dsl  3018:                             Z003,
Error    1022 -          Object does not exist ^  (Z003)

dsdt.dsl  3019:                             Z004,
Error    1022 -          Object does not exist ^  (Z004)

dsdt.dsl  3020:                             Z005,
Error    1022 -          Object does not exist ^  (Z005)
[/b]
dsdt.dsl  4139:     Method (_WAK, 1, NotSerialized)
Warning  2026 -                ^ Reserved method must return a value (_WAK)

dsdt.dsl  4164:                 If (LAnd (LEqual (\_SB.PCI0.LPC0.INF, 0x01), LNot (LLess (\_SB.OSTB, Z006))))
Error    1022 -                                                             Object does not exist ^  (\_SB.OSTB)

dsdt.dsl  4164:                 If (LAnd (LEqual (\_SB.PCI0.LPC0.INF, 0x01), LNot (LLess (\_SB.OSTB, Z006))))
Error    1022 -                                                                   Object does not exist ^  (Z006)

ASL Input:  dsdt.dsl - 4179 lines, 171592 bytes, 1970 keywords
Compilation complete. 11 Errors, 2 Warnings, 0 Remarks, 338 Optimizations


How the heck should I fix this? All I want is to be able to read my battery out!

Incidentally, how come the battery works so well in Windows?

TIA
-Alex
Back to top
View user's profile Send private message
entemoehre
n00b
n00b


Joined: 22 Jul 2003
Posts: 64

PostPosted: Sun Mar 13, 2005 1:45 pm    Post subject: Reply with quote

You can try a patched DSDT from acpi.sourceforge.net:

http://acpi.sourceforge.net/dsdt/view.php?manufacturer=Dell

Copy the compiled version to

/DIRECTORY/OF/KERNEL-SOURCES/include/acpi/dsdt_table.h

and try this patch:
Code:
--- linux/drivers/acpi/osl.c    2005-02-06 15:51:15.887981600 +0100
+++ linux/drivers/acpi/osl.c    2005-02-06 15:51:15.887981600 +0100
@@ -25,6 +25,7 @@
  *
  */
 
+#include <acpi/dsdt_table.h>
 #include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
@@ -55,9 +56,6 @@
     void                   *context;
 };
 
-#ifdef CONFIG_ACPI_CUSTOM_DSDT
-#include CONFIG_ACPI_CUSTOM_DSDT_FILE
-#endif
 
 #ifdef ENABLE_DEBUGGER
 #include <linux/kdb.h>
@@ -244,14 +242,10 @@
        if (!existing_table || !new_table)
                return AE_BAD_PARAMETER;
 
-#ifdef CONFIG_ACPI_CUSTOM_DSDT
        if (strncmp(existing_table->signature, "DSDT", 4) == 0)
                *new_table = (struct acpi_table_header*)AmlCode;
        else
                *new_table = NULL;
-#else
-       *new_table = NULL;
-#endif
        return AE_OK;
 }


The patch works for me against 2.6.9 to 2.6.11vanilla so far.

Recompile your kernel and reboot, the new DSDT should get loaded now.

Good luck!

soenke

P.S: The battery works so well in windows because the DSDT was compiled with MS's compiler. This can be seen from the line
Code:
ACPI: DSDT (v001  INTEL Brkdle_G 0x06040000 MSFT 0x0100000e) @ 0x00000000

(Note the "MSFT")
This compiler lets some errors slip through, and just by coincidence, the DSDT works in windows despite the bugs, but nowhere else...
Back to top
View user's profile Send private message
euphorium
n00b
n00b


Joined: 28 Feb 2007
Posts: 14

PostPosted: Tue Apr 24, 2007 3:14 pm    Post subject: Reply with quote

I am also running into similiar issues as stated above.

I have went through the gentoo-eiki guide here and downloaded the appropriate dsdt file for my laptop from sourceforge. However, I am getting an error that I can't find in google and have only found this thread that has any relation to it.

I am getting the following Warning when I recompile with the file from sourceforge. "Which I must say, doesnt put out as many errors as the default.

Code:
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20060912 [Apr 24 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a

Dell-Inspiron_5100-A02-custom.asl   593:                 Method(TGAD) {
Warning  1086 -               Not all control paths return a value ^  (TGAD)

ASL Input:  Dell-Inspiron_5100-A02-custom.asl - 2928 lines, 123660 bytes, 1969 keywords
AML Output: acpi_dsdt.aml - 15578 bytes 502 named objects 1467 executable opcodes

Compilation complete. 0 Errors, 1 Warnings, 0 Remarks, 348 Optimizations


I tried changing line 593 to

Code:
Method(_TGAD) {


and it gave me object not found errors.

Code:
Intel ACPI Component Architecture
Intel ACPI Component Architecture0060912 [Apr 24 2007]
ASL Optimizing Compiler version 20060912 [Apr 24 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a
Dell-Inspiron_5100-A02-custom.asl   593:                 Method(TGAD) {
Dell-Inspiron_5100-A02-custom.asl    50:         Notify(\_SB_.PCI0.USB1, 0x2)
Error    4062 -                                 Object does not exist ^  (\_SB_.PCI0.USB1)
ASL Input:  Dell-Inspiron_5100-A02-custom.asl - 2928 lines, 123660 bytes, 1969 keywords
Dell-Inspiron_5100-A02-custom.asl    53:         Notify(\_SB_.PCI0.USB2, 0x2)odes
Error    4062 -                                 Object does not exist ^  (\_SB_.PCI0.USB2)
Compilation complete. 0 Errors, 1 Warnings, 0 Remarks, 348 Optimizations
Dell-Inspiron_5100-A02-custom.asl    56:         Notify(\_SB_.PCI0.AC97, 0x2)
Error    4062 -                                 Object does not exist ^  (\_SB_.PCI0.AC97)

Dell-Inspiron_5100-A02-custom.asl    59:         Notify(\_SB_.PCI0.SLOT, 0x2)
Error    4062 -                                 Object does not exist ^  (\_SB_.PCI0.SLOT)

Dell-Inspiron_5100-A02-custom.asl    62:         Notify(\_SB_.PCI0.EUSB, 0x2)
Error    4062 -                                 Object does not exist ^  (\_SB_.PCI0.EUSB)

Dell-Inspiron_5100-A02-custom.asl    65:         Not(\_SB_.PCI0.LPC0.ACNV, \_SB_.PCI0.LPC0.ACNV)
Error    4062 -                                   Object does not exist ^  (\_SB_.PCI0.LPC0.ACNV)

etc...


any ideas on what I am doing wrong?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum