27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Advanced</strong> <strong>Configuration</strong> <strong>and</strong> <strong>Power</strong> <strong>Interface</strong> <strong>Specification</strong><br />

5. The OS looks to see what _EJx control methods are present for the device. If the removal event<br />

will cause the system to switch to battery power (in other words, an undock) <strong>and</strong> the battery is<br />

low, dead, or not present, OSPM uses the lowest supported sleep state _EJx listed; otherwise it<br />

uses the highest state _EJx. Having made this decision, OSPM runs the appropriate _EJx control<br />

method to prepare the hardware for eject.<br />

6. Warm removal requires that the system be put in a sleep state. If the removal will be a warm<br />

removal, OSPM puts the system in the appropriate Sx state. If the removal will be a hot removal,<br />

OSPM skips to step 8, below.<br />

7. For warm removal, the system is put in a sleep state. Hardware then uses any motors, <strong>and</strong> so on,<br />

to eject the device. Immediately after ejection, the hardware transitions the computer to S0. If<br />

the system was sleeping when the eject notification came in, the OS returns the computer to a<br />

sleeping state consistent with the user’s wake settings.<br />

8. OSPM calls _STA to determine if the eject successfully occurred. (In this case, control methods<br />

do not need to use the Notify(device,3) comm<strong>and</strong> to tell OSPM of the change in _STA) If there<br />

were any mechanical failures, _STA returns 3: device present <strong>and</strong> not functioning, <strong>and</strong> OSPM<br />

informs the user of the problem.<br />

Note: This mechanism is the same for removing a single device <strong>and</strong> for removing several devices, as in<br />

an undock.<br />

ACPI does not disallow surprise-style removal of devices; however, this type of removal is not<br />

recommended because system <strong>and</strong> data integrity cannot be guaranteed when a surprise-style removal<br />

occurs. Because the OS is not informed, its device drivers cannot save data buffers <strong>and</strong> it cannot stop<br />

accesses to the device before the device is removed. To h<strong>and</strong>le surprise-style removal, a generalpurpose<br />

event must be raised. Its associated control method must use the Notify comm<strong>and</strong> to<br />

indicate which bus the device was removed from.<br />

The device insertion <strong>and</strong> removal objects are listed in Table 6-184.<br />

Table 6-184 Device Insertion, Removal, <strong>and</strong> Status Objects<br />

Object<br />

_EDL<br />

_EJD<br />

_EJx<br />

_LCK<br />

_OST<br />

_RMV<br />

_STA<br />

Description<br />

Object that evaluates to a package of namespace references of device objects that depend on<br />

the device containing _EDL.<br />

Object that evaluates to the name of a device object on which a device depends. Whenever the<br />

named device is ejected, the dependent device must receive an ejection notification.<br />

Control method that ejects a device.<br />

Control method that locks or unlocks a device.<br />

Control method invoked by OSPM to convey processing status to the platform.<br />

Object that indicates that the given device is removable.<br />

Control method that returns a device’s status.<br />

6.3.1 _EDL (Eject Device List)<br />

This object evaluates to a package of namespace references containing the names of device objects<br />

that depend on the device under which the _EDL object is declared. This is primarily used to support<br />

docking stations. Before the device under which the _EDL object is declared may be ejected, OSPM<br />

prepares the devices listed in the _EDL object for physical removal.<br />

332 April, 2015 Version 6.0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!