Udostępnij przez


DeviceWake

Element członkowski DeviceWakeDEVICE_CAPABILITIES zawiera najniższy stan zasilania urządzenia o najniższym poziomie zasilania, z którego urządzenie może sygnalizować zdarzenie wznawiania lub PowerDeviceUnspecified, jeśli urządzenie nie może wznawiać w odpowiedzi na sygnał zewnętrzny.

Sterownik magistrali ustawia tę wartość. Sterownik wyższego poziomu może zmienić wartość na stan o wyższej mocy. Jeśli na przykład sterownik magistrali ustawi wartość DeviceWake na D3, ale sterownik wyższego poziomu w stosie urządzeń obsługuje wznawianie tylko z D2, ten sterownik może zmienić wartość na D2.

Należy pamiętać, że jeśli sterownik zmieni DeviceWake, może być również konieczne zmienienie SystemWake, aby uniknąć konfliktów z mapowaniami system-urządzenie w tablicy DeviceState. Załóżmy na przykład, że kierowca autobusu ustawia następujące ustawienia:

  • DeviceState[PowerSystemSleeping1] = PowerDeviceD1

  • DeviceState[PowerSystemSleeping2] = PowerDeviceD3

  • DeviceWake = PowerDeviceD3

  • SystemWake = PowerSystemSleeping2

Jeśli sterownik wyższego poziomu ustali, że jego urządzenie nie może wznawiać systemu z D3, ale tylko z D2 lub wyższego, może zmienić DeviceWake na D2. Jednak ta zmiana powoduje, że mapowanie z S2 do D3 jest niemożliwe. Pamiętaj, że tablica DeviceState zawiera najwyższy stan zasilania urządzenia, który może obsługiwać urządzenie dla danego stanu zasilania systemu. Jeśli stan zasilania systemu w przykładzie to PowerSystemSleeping2, stan zasilania urządzenia nie może być PowerDeviceD2. Aby wyeliminować ten problem, sterownik musi również zmienić wartość SystemWake na PowerSystemSleeping1. To samo dotyczy ustawień WakeFromDx i DeviceDx . Sterownik musi upewnić się, że wszelkie zmiany wprowadzone w systemWake lub DeviceWake nie powodują konfliktu z wartościami WakeFromDx i DeviceDx . Wartości WakeFromDx i DeviceDx odzwierciedlają cechy sprzętowe, których sterownik nie może zmienić.

Jeśli zarówno elementy członkowskie SystemWake , jak i DeviceWake są niezerowe (czyli nie PowerSystemUnspecified), urządzenie i jego sterowniki obsługują wznawianie w tym systemie.

W przypadku sprzętu innego niż ACPI pole DeviceWake zawiera zero (PowerSystemUnspecified).