Bagikan melalui


DeviceWake

Anggota DeviceWakedari DEVICE_CAPABILITIES berisi status daya perangkat terendah (paling sedikit bertenaga) tempat perangkat dapat memberi sinyal peristiwa bangun, atau PowerDeviceUnspecified jika perangkat tidak dapat bangun sebagai respons terhadap sinyal eksternal.

Sopir bus menetapkan nilai ini. Driver tingkat yang lebih tinggi dapat mengubah nilai ke status bertenaga lebih tinggi. Misalnya, jika driver bus mengatur DeviceWake ke D3 tetapi driver lebih jauh ke tumpukan perangkat mendukung bangun hanya dari D2, driver tingkat yang lebih tinggi dapat mengubah nilai menjadi D2.

Perhatikan bahwa jika driver mengubah DeviceWake, driver mungkin juga harus mengubah SystemWake untuk menghindari konflik dengan pemetaan sistem-ke-perangkat di array DeviceState . Misalnya, asumsikan bahwa pengemudi bus menetapkan hal berikut:

  • DeviceState[PowerSystemSleeping1] = PowerDeviceD1

  • DeviceState[PowerSystemSleeping2] = PowerDeviceD3

  • DeviceWake = PowerDeviceD3

  • SystemWake = PowerSystemSleeping2

Jika driver tingkat yang lebih tinggi menentukan bahwa perangkatnya tidak dapat membangunkan sistem dari D3, tetapi hanya dari D2 atau yang lebih tinggi, ia dapat mengubah DeviceWake ke D2. Namun, perubahan ini menyebabkan pemetaan dari S2 ke D3 menjadi tidak mungkin. Ingatlah bahwa array DeviceState mencantumkan status daya perangkat tertinggi yang dapat didukung perangkat untuk status daya sistem tertentu. Jika status daya sistem dalam contoh adalah PowerSystemSleeping2, status daya perangkat tidak boleh PowerDeviceD2. Untuk menghilangkan masalah ini, driver juga harus mengubah SystemWake ke PowerSystemSleeping1. Hal yang sama berlaku untuk pengaturan WakeFromDx dan DeviceDx . Driver harus memastikan bahwa setiap perubahan yang dilakukannya pada SystemWake atau DeviceWake tidak bertentangan dengan nilai WakeFromDx dan DeviceDx . Nilai WakeFromDx dan DeviceDx mencerminkan karakteristik perangkat keras yang tidak dapat diubah oleh driver.

Jika anggota SystemWake dan DeviceWake bukan nol (yaitu, bukan PowerSystemUnspecified), maka perangkat dan drivernya mendukung bangun pada sistem ini.

Pada perangkat keras non-ACPI, anggota DeviceWake berisi nol (PowerSystemUnspecified).