View previous topic :: View next topic |
Author |
Message |
alxcm n00b
Joined: 09 Mar 2005 Posts: 5
|
Posted: Wed Mar 09, 2005 8:21 pm Post subject: ACPI ( Battery ) issues on a DELL Inspiron 5100 |
|
|
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 |
|
|
entemoehre n00b
Joined: 22 Jul 2003 Posts: 64
|
Posted: Sun Mar 13, 2005 1:45 pm Post subject: |
|
|
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 |
|
|
euphorium n00b
Joined: 28 Feb 2007 Posts: 14
|
Posted: Tue Apr 24, 2007 3:14 pm Post subject: |
|
|
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
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 |
|
|
|
|
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
|
|