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. With CONFIG_ACPI_PROCFS I get {pts/1}% LC_ALL=C ll /proc/acpi/battery/BAT1 total 0 -rw-r--r-- 1 root root 0 Oct 26 20:18 alarm -r--r--r-- 1 root root 0 Oct 26 20:18 info -r--r--r-- 1 root root 0 Oct 26 20:18 state {pts/1}% LC_ALL=C cat /proc/acpi/battery/BAT1/* cat: /proc/acpi/battery/BAT1/alarm: Bad address cat: /proc/acpi/battery/BAT1/info: Bad address cat: /proc/acpi/battery/BAT1/state: Bad address {pts/1}% LC_ALL=C ll /proc/acpi/battery/BAT2 total 0 -rw-r--r-- 1 root root 0 Oct 26 20:18 alarm -r--r--r-- 1 root root 0 Oct 26 20:18 info -r--r--r-- 1 root root 0 Oct 26 20:18 state {pts/1}% LC_ALL=C cat /proc/acpi/battery/BAT2/* present: no present: no present: no BAT2 is correct - it is not present. BAT1 is lying. There is nothing in dmesg. battery is loaded (obviously) ACPI related stuff from dmesg: {pts/1}% dmesg |grep ACPI [ 0.000000] BIOS-e820: 00000000000eee00 - 00000000000ef000 (ACPI NVS) [ 0.000000] BIOS-e820: 000000001ef60000 - 000000001ef70000 (ACPI data) [ 0.000000] ACPI: RSDP 000F0090, 0014 (r0 TOSHIB) [ 0.000000] ACPI: RSDT 1EF60000, 0028 (r1 TOSHIB 750 970814 TASM 4010000) [ 0.000000] ACPI: FACP 1EF60054, 0084 (r2 TOSHIB 750 970814 TASM 4010000) [ 0.000000] ACPI: DSDT 1EF600D8, 68DA (r1 TOSHIB 4000 20020417 MSFT 100000A) [ 0.000000] ACPI: FACS 000EEE00, 0040 [ 0.000000] ACPI: PM-Timer IO Port: 0xee08 [ 896.112009] ACPI: Core revision 20070126 [ 896.112775] ACPI: Looking for DSDT in initramfs... error, file /DSDT.aml not found. [ 896.123590] tbxface-0598 [00] tb_load_namespace : ACPI Tables successfully acquired [ 896.123631] ACPI: setting ELCR to 0200 (from 0a00) [ 896.124208] evxfevnt-0091 [00] enable : Transition to ACPI mode successful [ 896.131744] ACPI: bus type pci registered [ 896.149165] ACPI: EC: Look up EC in DSDT [ 896.163343] ACPI: Interpreter enabled [ 896.163362] ACPI: (supports S0 S3 S4 S5) [ 896.163510] ACPI: Using PIC for interrupt routing [ 896.195892] ACPI: PCI Root Bridge [PCI0] (0000:00) [ 896.197650] PCI quirk: region ee00-ee3f claimed by ali7101 ACPI [ 896.200015] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] [ 896.200588] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT] [ 896.227797] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11) [ 896.228562] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 10 *11) [ 896.229271] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 10 *11) [ 896.230101] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 10 *11) [ 896.230818] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 10 *11) [ 896.231527] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 10 *11) [ 896.232912] ACPI: Power Resource [PFAN] (off) [ 896.233622] pnp: PnP ACPI init [ 896.233766] ACPI: bus type pnp registered [ 896.257679] pnp: PnP ACPI: found 12 devices [ 896.257737] ACPI: ACPI bus type pnp unregistered [ 896.258820] PCI: Using ACPI for IRQ routing [ 896.325763] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11 [ 896.325805] ACPI: PCI Interrupt 0000:00:10.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11 [ 896.327116] ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11 [ 896.327143] ACPI: PCI Interrupt 0000:00:11.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11 [ 896.328392] ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11 [ 896.328416] ACPI: PCI Interrupt 0000:00:11.1[B] -> Link [LNKB] -> GSI 11 (level, low) -> IRQ 11 [ 896.978962] ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11 [ 896.980097] ACPI: PCI Interrupt 0000:00:0a.0[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11 [ 902.378588] ACPI: Unable to derive IRQ for device 0000:00:04.0 [ 902.406719] ACPI: PCI Interrupt 0000:00:04.0[A]: no GSI [ 919.051426] ACPI: PCI Interrupt Link [LNKG] enabled at IRQ 11 [ 919.051451] ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LNKG] -> GSI 11 (level, low) -> IRQ 11 [ 920.132284] ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 11 [ 920.132307] ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKH] -> GSI 11 (level, low) -> IRQ 11 [ 927.120073] ACPI: AC Adapter [ADP1] (on-line) [ 927.195942] ACPI: Battery Slot [BAT1] (battery present) [ 927.200475] ACPI: Battery Slot [BAT2] (battery absent) [ 927.277564] ACPI: Power Button (FF) [PWRF] [ 927.290786] ACPI: Lid Switch [LID] [ 927.324850] ACPI: Transitioning device [FAN] to D3 [ 927.324867] ACPI: Transitioning device [FAN] to D3 [ 927.324891] ACPI: Fan [FAN] (off) [ 927.535960] ACPI: CPU0 (power states: C1[C1] C2[C2]) [ 927.638487] ACPI: Thermal Zone [THRM] (55 C) [ 927.770100] toshiba_acpi: Toshiba Laptop ACPI Extras version 0.18 [ 927.920519] ACPI: Video Device [VGA] (multi-head: yes rom: yes post: no) [ 1055.552624] ACPI: PCI interrupt for device 0000:00:0a.0 disabled [ 1055.554812] ACPI: PCI interrupt for device 0000:00:06.0 disabled [ 1055.555479] ACPI: PCI interrupt for device 0000:00:02.0 disabled [ 0.901020] ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LNKG] -> GSI 11 (level, low) -> IRQ 11 [ 0.901271] ACPI: Unable to derive IRQ for device 0000:00:04.0 [ 0.901278] ACPI: PCI Interrupt 0000:00:04.0[A]: no GSI [ 0.904594] ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKH] -> GSI 11 (level, low) -> IRQ 11 As for the case without ACPI_PROCFS ... well, I do not have it in /proc - which is expected - but neither I do have it in /sys. And Kconfig help reads The deprecated files (and their replacements) include: /proc/acpi/sleep (/sys/power/state) /proc/acpi/info (/sys/modules/acpi/parameters/acpica_version) /proc/acpi/dsdt (/sys/firmware/acpi/tables/DSDT) /proc/acpi/fadt (/sys/firmware/acpi/tables/FACP) /proc/acpi/debug_layer (/sys/module/acpi/parameters/debug_layer) /proc/acpi/debug_level (/sys/module/acpi/parameters/debug_level) neither does it mention /proc/acpi/battery not do I actually have any battery information in /sys. Personally I do not like it (if it is intentional). Leaving only netlink interface means user has no way to query for actual state. We need something running all the time and hope, it never loses any event and thus reflects actual state. But it also means we are not allowed to restart it (whatever it is) as it will have no way to query for actual state on restart ... -andrey
Attachment:
signature.asc
Description: This is a digitally signed message part.