Event handler for ACAD
Hello!
I have a notebook.
System doesn't change energy consumption policy when I unplug ACAD.
# service acpid stop # cat /proc/acpi/event processor CPU0 00000080 00000001 <----- unplug ACAD processor CPU0 00000080 00000000
No any messages about ACAD.
My dsdt.dsl have two following interesting sections:
1.
Device (AC)
{
Name (_HID, "ACPI0003")
Name (_PCL, Package (0x01)
{
\_SB
})
Method (_PSR, 0, NotSerialized)
{
If (\_SB.PCI0.EC.ADP)
{
Store (0x03, \DBUG)
Store (Zero, \_PR.CPU0._PPC)
}
Else
{
Store (0x01, \DBUG)
Store (0x01, \_PR.CPU0._PPC)
}
Notify (\_PR.CPU0, 0x80)
If (\_SB.PCI0.EC.ECOK)
{
Return (\_SB.PCI0.EC.ADP)
}
}2.
Method (_Q16, 0, NotSerialized)
{
Notify (\_SB.AC, 0x80)
If (\_SB.PCI0.EC.ADP)
{
Store (0x03, \DBUG)
Store (Zero, \_PR.CPU0._PPC)
}
Else
{
Store (0x01, \DBUG)
Store (0x01, \_PR.CPU0._PPC)
}
Notify (\_PR.CPU0, 0x80)
}Method _Q16 always called when I unplug ACAD.
For instruction: Notify (\_SB.AC, 0x80)
ACPI debug subsystem print:
<4> nsdump-0087 [33] ns_print_pathname : [_SB_.AC__] <4>nssearch-0104 [35] ns_search_node : Searching \ (c0352bd0) For [_SB_] (Untyped) <4>nssearch-0138 [35] ns_search_node : Name [_SB_] (Device) cbf09ca8 found in scope ["\" ] c0352bd0 <4>nssearch-0104 [35] ns_search_node : Searching \_SB_ (cbf09ca8) For [AC__] (Untyped) <4>nssearch-0138 [35] ns_search_node : Name [AC__] (Device) cbf092e8 found in scope [_SB_] cbf09ca8 <4> psloop-0378 [30] ps_parse_loop : Opcode 000A [ByteConst] Op cbba1250 Aml cc809a6a aml_offset 0000B <4> psscope-0228 [31] ps_pop_scope : Popped Op cbba1218 Args 0 <4> psloop-0793 [30] ps_parse_loop : Popped scope, Op=cbba1218 <4> dsutils-0475 [33] ds_create_operand : Getting a name: Arg=cbba1234 <4> exnames-0276 [34] ex_get_name_string : root_prefix(\) at cc809a5f <4> exnames-0318 [34] ex_get_name_string : dual_name_prefix at cc809a60 <4> exnames-0175 [35] ex_name_segment : Bytes from stream: <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0181 [35] ex_name_segment : S <4> exnames-0181 [35] ex_name_segment : B <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0194 [35] ex_name_segment : Appended to - \._SB_ <4> exnames-0175 [35] ex_name_segment : Bytes from stream: <4> exnames-0181 [35] ex_name_segment : A <4> exnames-0181 [35] ex_name_segment : C <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0194 [35] ex_name_segment : Appended to - \._SB_AC__ <4>nsaccess-0403 [34] ns_lookup : Path is absolute from root [c0352bd0] <4>nsaccess-0489 [34] ns_lookup : Dual Pathname (2 segments, Flags=3) <4> nsdump-0087 [34] ns_print_pathname : [_SB_.AC__] <4>nssearch-0104 [36] ns_search_node : Searching \ (c0352bd0) For [_SB_] (Untyped) <4>nssearch-0138 [36] ns_search_node : Name [_SB_] (Device) cbf09ca8 found in scope ["\" ] c0352bd0 <4>nssearch-0104 [36] ns_search_node : Searching \_SB_ (cbf09ca8) For [AC__] (Untyped) <4>nssearch-0138 [36] ns_search_node : Name [AC__] (Device) cbf092e8 found in scope [_SB_] cbf09ca8 <4>dswstate-0424 [33] ds_obj_stack_push : Obj=cbf092e8 [Device] State=c1e6b828 #Ops=1 <4> dsutils-0712 [32] ds_create_operands : Arg #0 (cbba1234) done, Arg1=cbba1234 <4>dswstate-0424 [33] ds_obj_stack_push : Obj=cbd9bb8c [Integer] State=c1e6b828 #Ops=2 <4> dsutils-0712 [32] ds_create_operands : Arg #1 (cbba1250) done, Arg1=cbba1234 <4>dswstate-0380 [31] ds_result_stack_pop : Result=ca92e244 remaining_results=0 State=c1e6b828 <4> exresop-0162 [32] ex_resolve_operands : Opcode 86 [Notify] required_operand_types=000001A6 <4>exresolv-0119 [33] ex_resolve_to_value : Resolved object cbd9bb8c <4> exdump-0792 [31] ex_dump_operands : ************* Operand Stack Contents (Opcode [Notify], 2 Operands) <4> exdump-0494 [31] ex_dump_operand : cbd9bb8c Integer 0000000000000080 <4> exdump-0474 [31] ex_dump_operand : cbf092e8 Namespace Node: 0 AC__ Device cbf092e8 06 <4> exdump-0806 [31] ex_dump_operands : ************* Operand Stack dump from dswexec(426), after ex_resolve_operands <4> evmisc-0138 [32] ev_queue_notify_reques: Dispatching Notify(80) on node cbf092e8 <4> evmisc-0146 [32] ev_queue_notify_reques: Notify value: 0x80 **Device Specific** <4> evmisc-0208 [32] ev_queue_notify_reques: No notify handler for Notify(AC__, 80) node cbf092e8
Why there is string "No notify handler for Notify(AC__, 80) .... ???
Another notify (Notify (\_PR.CPU0, 0x80)) works fine!
Why there is "AC__" not "AC" ?
Thanks!
1. ACPI names are 4 bytes long, so AC will be padded with _.
2. Your output shows that there is no handler for AC event, do you have ACPI AC driver compiled and loaded?
Quoted 131 lines · Andriy Stepanov
Hello!
I have a notebook.System doesn't change energy consumption policy when I unplug ACAD.
# service acpid stop # cat /proc/acpi/event processor CPU0 00000080 00000001 <----- unplug ACAD processor CPU0 00000080 00000000No any messages about ACAD.
My dsdt.dsl have two following interesting sections:
1.
Device (AC){ Name (_HID, "ACPI0003") Name (_PCL, Package (0x01) { \_SB }) Method (_PSR, 0, NotSerialized) { If (\_SB.PCI0.EC.ADP) { Store (0x03, \DBUG) Store (Zero, \_PR.CPU0._PPC) } Else { Store (0x01, \DBUG) Store (0x01, \_PR.CPU0._PPC) } Notify (\_PR.CPU0, 0x80) If (\_SB.PCI0.EC.ECOK) { Return (\_SB.PCI0.EC.ADP) } }2.
Method (_Q16, 0, NotSerialized){ Notify (\_SB.AC, 0x80) If (\_SB.PCI0.EC.ADP) { Store (0x03, \DBUG) Store (Zero, \_PR.CPU0._PPC) } Else { Store (0x01, \DBUG) Store (0x01, \_PR.CPU0._PPC) } Notify (\_PR.CPU0, 0x80) }Method
_Q16always called when I unplug ACAD.For instruction: Notify (\_SB.AC,
0x80)
ACPI debug subsystem print:<4> nsdump-0087 [33] ns_print_pathname : [_SB_.AC__] <4>nssearch-0104 [35] ns_search_node : Searching \ (c0352bd0) For [_SB_] (Untyped) <4>nssearch-0138 [35] ns_search_node : Name [_SB_] (Device) cbf09ca8 found in scope ["\" ] c0352bd0 <4>nssearch-0104 [35] ns_search_node : Searching \_SB_ (cbf09ca8) For [AC__] (Untyped) <4>nssearch-0138 [35] ns_search_node : Name [AC__] (Device) cbf092e8 found in scope [_SB_] cbf09ca8 <4> psloop-0378 [30] ps_parse_loop : Opcode 000A [ByteConst] Op cbba1250 Aml cc809a6a aml_offset 0000B <4> psscope-0228 [31] ps_pop_scope : Popped Op cbba1218 Args 0 <4> psloop-0793 [30] ps_parse_loop : Popped scope, Op=cbba1218 <4> dsutils-0475 [33] ds_create_operand : Getting a name: Arg=cbba1234 <4> exnames-0276 [34] ex_get_name_string : root_prefix(\) at cc809a5f <4> exnames-0318 [34] ex_get_name_string : dual_name_prefix at cc809a60 <4> exnames-0175 [35] ex_name_segment : Bytes from stream: <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0181 [35] ex_name_segment : S <4> exnames-0181 [35] ex_name_segment : B <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0194 [35] ex_name_segment : Appended to - \._SB_ <4> exnames-0175 [35] ex_name_segment : Bytes from stream: <4> exnames-0181 [35] ex_name_segment : A <4> exnames-0181 [35] ex_name_segment : C <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0194 [35] ex_name_segment : Appended to - \._SB_AC__ <4>nsaccess-0403 [34] ns_lookup : Path is absolute from root [c0352bd0] <4>nsaccess-0489 [34] ns_lookup : Dual Pathname (2 segments, Flags=3) <4> nsdump-0087 [34] ns_print_pathname : [_SB_.AC__] <4>nssearch-0104 [36] ns_search_node : Searching \ (c0352bd0) For [_SB_] (Untyped) <4>nssearch-0138 [36] ns_search_node : Name [_SB_] (Device) cbf09ca8 found in scope ["\" ] c0352bd0 <4>nssearch-0104 [36] ns_search_node : Searching \_SB_ (cbf09ca8) For [AC__] (Untyped) <4>nssearch-0138 [36] ns_search_node : Name [AC__] (Device) cbf092e8 found in scope [_SB_] cbf09ca8 <4>dswstate-0424 [33] ds_obj_stack_push : Obj=cbf092e8 [Device] State=c1e6b828 #Ops=1 <4> dsutils-0712 [32] ds_create_operands : Arg #0 (cbba1234) done, Arg1=cbba1234 <4>dswstate-0424 [33] ds_obj_stack_push : Obj=cbd9bb8c [Integer] State=c1e6b828 #Ops=2 <4> dsutils-0712 [32] ds_create_operands : Arg #1 (cbba1250) done, Arg1=cbba1234 <4>dswstate-0380 [31] ds_result_stack_pop : Result=ca92e244 remaining_results=0 State=c1e6b828 <4> exresop-0162 [32] ex_resolve_operands : Opcode 86 [Notify] required_operand_types=000001A6 <4>exresolv-0119 [33] ex_resolve_to_value : Resolved object cbd9bb8c <4> exdump-0792 [31] ex_dump_operands : ************* Operand Stack Contents (Opcode [Notify], 2 Operands) <4> exdump-0494 [31] ex_dump_operand : cbd9bb8c Integer 0000000000000080 <4> exdump-0474 [31] ex_dump_operand : cbf092e8 Namespace Node: 0 AC__ Device cbf092e8 06 <4> exdump-0806 [31] ex_dump_operands : ************* Operand Stack dump from dswexec(426), after ex_resolve_operands <4> evmisc-0138 [32] ev_queue_notify_reques: Dispatching Notify(80) on node cbf092e8 <4> evmisc-0146 [32] ev_queue_notify_reques: Notify value: 0x80 **Device Specific** <4> evmisc-0208 [32] ev_queue_notify_reques: No notify handler for Notify(AC__, 80) node cbf092e8Why there is string "No notify handler for
Notify(AC__, 80).... ???Another notify (Notify (\_PR.CPU0,
0x80)) works fine!Why there is "
AC__" not "AC" ?Thanks!
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Thanks!
With:
# modprobe ac all works fine!
Quoted 143 lines · Alexey Starikovskiy
1. ACPI names are 4 bytes long, so AC will be padded with _.
2. Your output shows that there is no handler for AC event, do you have ACPI AC driver compiled and loaded?Quoted 122 lines · Andriy Stepanov
Hello!
I have a notebook.System doesn't change energy consumption policy when I unplug ACAD.
# service acpid stop # cat /proc/acpi/event processor CPU0 00000080 00000001 <----- unplug ACAD processor CPU0 00000080 00000000No any messages about ACAD.
My dsdt.dsl have two following interesting sections:
1.
Device (AC){ Name (_HID, "ACPI0003") Name (_PCL, Package (0x01) { \_SB }) Method (_PSR, 0, NotSerialized) { If (\_SB.PCI0.EC.ADP) { Store (0x03, \DBUG) Store (Zero, \_PR.CPU0._PPC) } Else { Store (0x01, \DBUG) Store (0x01, \_PR.CPU0._PPC) } Notify (\_PR.CPU0, 0x80) If (\_SB.PCI0.EC.ECOK) { Return (\_SB.PCI0.EC.ADP) } }2.
Method (_Q16, 0, NotSerialized){ Notify (\_SB.AC, 0x80) If (\_SB.PCI0.EC.ADP) { Store (0x03, \DBUG) Store (Zero, \_PR.CPU0._PPC) } Else { Store (0x01, \DBUG) Store (0x01, \_PR.CPU0._PPC) } Notify (\_PR.CPU0, 0x80) }Method
_Q16always called when I unplug ACAD.For instruction: Notify (\_SB.AC,
0x80)
ACPI debug subsystem print:<4> nsdump-0087 [33] ns_print_pathname : [_SB_.AC__] <4>nssearch-0104 [35] ns_search_node : Searching \ (c0352bd0) For [_SB_] (Untyped) <4>nssearch-0138 [35] ns_search_node : Name [_SB_] (Device) cbf09ca8 found in scope ["\" ] c0352bd0 <4>nssearch-0104 [35] ns_search_node : Searching \_SB_ (cbf09ca8) For [AC__] (Untyped) <4>nssearch-0138 [35] ns_search_node : Name [AC__] (Device) cbf092e8 found in scope [_SB_] cbf09ca8 <4> psloop-0378 [30] ps_parse_loop : Opcode 000A [ByteConst] Op cbba1250 Aml cc809a6a aml_offset 0000B <4> psscope-0228 [31] ps_pop_scope : Popped Op cbba1218 Args 0 <4> psloop-0793 [30] ps_parse_loop : Popped scope, Op=cbba1218 <4> dsutils-0475 [33] ds_create_operand : Getting a name: Arg=cbba1234 <4> exnames-0276 [34] ex_get_name_string : root_prefix(\) at cc809a5f <4> exnames-0318 [34] ex_get_name_string : dual_name_prefix at cc809a60 <4> exnames-0175 [35] ex_name_segment : Bytes from stream: <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0181 [35] ex_name_segment : S <4> exnames-0181 [35] ex_name_segment : B <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0194 [35] ex_name_segment : Appended to - \._SB_ <4> exnames-0175 [35] ex_name_segment : Bytes from stream: <4> exnames-0181 [35] ex_name_segment : A <4> exnames-0181 [35] ex_name_segment : C <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0181 [35] ex_name_segment : _ <4> exnames-0194 [35] ex_name_segment : Appended to - \._SB_AC__ <4>nsaccess-0403 [34] ns_lookup : Path is absolute from root [c0352bd0] <4>nsaccess-0489 [34] ns_lookup : Dual Pathname (2 segments, Flags=3) <4> nsdump-0087 [34] ns_print_pathname : [_SB_.AC__] <4>nssearch-0104 [36] ns_search_node : Searching \ (c0352bd0) For [_SB_] (Untyped) <4>nssearch-0138 [36] ns_search_node : Name [_SB_] (Device) cbf09ca8 found in scope ["\" ] c0352bd0 <4>nssearch-0104 [36] ns_search_node : Searching \_SB_ (cbf09ca8) For [AC__] (Untyped) <4>nssearch-0138 [36] ns_search_node : Name [AC__] (Device) cbf092e8 found in scope [_SB_] cbf09ca8 <4>dswstate-0424 [33] ds_obj_stack_push : Obj=cbf092e8 [Device] State=c1e6b828 #Ops=1 <4> dsutils-0712 [32] ds_create_operands : Arg #0 (cbba1234) done, Arg1=cbba1234 <4>dswstate-0424 [33] ds_obj_stack_push : Obj=cbd9bb8c [Integer] State=c1e6b828 #Ops=2 <4> dsutils-0712 [32] ds_create_operands : Arg #1 (cbba1250) done, Arg1=cbba1234 <4>dswstate-0380 [31] ds_result_stack_pop : Result=ca92e244 remaining_results=0 State=c1e6b828 <4> exresop-0162 [32] ex_resolve_operands : Opcode 86 [Notify] required_operand_types=000001A6 <4>exresolv-0119 [33] ex_resolve_to_value : Resolved object cbd9bb8c <4> exdump-0792 [31] ex_dump_operands : ************* Operand Stack Contents (Opcode [Notify], 2 Operands) <4> exdump-0494 [31] ex_dump_operand : cbd9bb8c Integer 0000000000000080 <4> exdump-0474 [31] ex_dump_operand : cbf092e8 Namespace Node: 0 AC__ Device cbf092e8 06 <4> exdump-0806 [31] ex_dump_operands : ************* Operand Stack dump from dswexec(426), after ex_resolve_operands <4> evmisc-0138 [32] ev_queue_notify_reques: Dispatching Notify(80) on node cbf092e8 <4> evmisc-0146 [32] ev_queue_notify_reques: Notify value: 0x80 **Device Specific** <4> evmisc-0208 [32] ev_queue_notify_reques: No notify handler for Notify(AC__, 80) node cbf092e8Why there is string "No notify handler for
Notify(AC__, 80).... ???Another notify (Notify (\_PR.CPU0,
0x80)) works fine!Quoted 9 lines
Why there is "
AC__" not "AC" ?Thanks!
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html