может вы имеете ввиду вместо \_SB.PCI0.LPC0.EC0.SBTN использовать
18 Авг 2006 - 10:05 Unknown BIOS
может вы имеете ввиду вместо \_SB.PCI0.LPC0.EC0.SBTN использовать "\_SB.PCI0.LPC0.EC0.VOLU" или "\_SB.PCI0.LPC0.EC0.VOLD" ? Могу попробовать, но вечером, когда буду дома. Может я чего не доганяю, что может быть вполне, но "\_SB.VOLU" не есть девайс.
Добавлено спустя 10 минут 32 секунды:
вот что пишет ACPI spec об sleep кнопке:
When using the two button model, ACPI supports a second button that when pressed will request OSPM to
transition the platform between the G0 working and G1 sleeping states. Support for a sleep button is
indicated by a combination of the SLEEP_BUTTON flag and the sleep button device object:
Table 4-9 Sleep Button Support
Indicated Support SLEEP_BUTTON Flag Sleep Button Device Object
No sleep button Set Absent
Fixed hardware sleep button Clear Absent
Control method sleep button Set Present
Fixed Hardware Sleeping Button
The fixed hardware sleep button has its event programming model in the PM1x_EVT_BLK. This logic
consists of a single enable bit and sticky status bit. When the user presses the sleep button, the sleep button
status bit (SLPBTN_STS) is unconditionally set. Additionally, if the sleep button enable bit (SLPBTN_EN)
is set, and the sleep button status bit is set (SLPBTN_STS, due to a button press) while the system is in the
G0 state, then an SCI is generated. OSPM responds to the event by clearing the SLPBTN_STS bit. The
sleep button logic provides debounce logic that sets the SLPBTN_STS bit on the button press “edge.”
While the system is sleeping (in either the S0, S1, S2, S3 or S4 states), any further sleep button press (after
the button press that caused the system transition into the sleeping state) sets the sleep button status bit
(SLPBTN_STS) and wakes the system if the SLP_EN bit is set. OSPM responds by clearing the sleep
button status bit and waking the system.
Control Method Sleeping Button
The sleep button programming model can also use the generic hardware programming model. This allows
the sleep button to reside in any of the generic hardware address spaces (for example, the embedded
controller) instead of fixed space. If the sleep button is implemented via generic hardware, then the OEM
needs to define the sleep button as a device with an _HID object value of “PNP0C0E”, which then
identifies this device as the sleep button to OSPM. The AML event handler then generates a Notify
command to notify OSPM that a sleep button event was generated. While in the working state, a sleep
button press is a user request to transition the system into the sleeping (G1) state. In these cases the sleep
button event handler issues the Notify command with the device specific code of 0x80. This will indicate to
OSPM to pass control to the sleep button driver (PNP0C0E) with the knowledge that the user is requesting
a transition out of the G0 state. Upon waking-up from a G1 sleeping state, the AML event handler
generates a Notify command with the code of 0x2 to indicate it was responsible for waking the system.
The sleep button device needs to be declared as a device within the ACPI Namespace for the platform and
only requires an _HID. An example definition is shown below.
The AML code below does the following:
· Creates a device named “SLPB” and associates the Plug and Play identifier (through the _HID object)
of “PNP0C0E.”
The Plug and Play identifier associates this device object with the sleep button driver.
· Creates an operational region for the control method sleep button’s programming model:
System I/O space at 0x201.
Fields that are not accessed are written as “1s” (these status bits clear upon writing a “1” to their bit
position, hence preserved would fail in this case).
· Creates a field within the operational region for the sleep button status bit (called PBP). In this case the
sleep button status bit is a child of the general-purpose status bit 0. When this bit is set it is the
responsibility of the AML code to clear it (OSPM clears the general-purpose status bits). The address
of the status bit is 0x201.0 (bit 0 at address 0x201).
· Creates an additional status bit called PBW for the sleep button wake event. This is the next bit and its
physical address would be 0x201.1 (bit 1 at address 0x201).
· Generates an event handler for the sleep button that is connected to bit 0 of the general-purpose status
register 0. The event handler does the following:
Clears the sleep button status bit in hardware (writes a “1” to it).
Notifies OSPM of the event by calling the Notify command passing the sleep button object and the
device specific event indicator 0x80.
// Define a control method sleep button
Device(\_SB.SLPB){
Name(_HID, EISAID(“PNP0C0E”))
Name(_PRW, Package(){0x01, 0x04})
OperationRegion(\Boo, SystemIO, 0x201, 0x1)
Field(\Boo, ByteAcc, NoLock, WriteAsZeros){
SBP, 1, // sleep request
SBW, 1 // wakeup request
} // end of field definition
}
Scope(\_GPE){ // Root level event handlers
Method(_L01){ // uses bit 1 of GP0_STS register
If(SBP){
Store(One, SBP) // clear sleep button status
Notify(\_SB.SLPB, 0x80) // Notify OS of event
}
IF(SBW){
Store(One, SBW)
Notify(\_SB.SLPB, 0x2)
}
} // end of _L01 handler
} // end of \_GPE scope
может вы имеете ввиду вместо \_SB.PCI0.LPC0.EC0.SBTN использовать "\_SB.PCI0.LPC0.EC0.VOLU" или "\_SB.PCI0.LPC0.EC0.VOLD" ? Могу попробовать, но вечером, когда буду дома. Может я чего не доганяю, что может быть вполне, но "\_SB.VOLU" не есть девайс.
Добавлено спустя 10 минут 32 секунды:
вот что пишет ACPI spec об sleep кнопке:
мне как то это не сильно помогает