無法從 D3 睡眠狀態喚醒 pci 總線 (Unable to wake pci bus form D3 sleep satate)


問題描述

無法從 D3 睡眠狀態喚醒 pci 總線 (Unable to wake pci bus form D3 sleep satate)

在我的主板(x86_64,Android Lollipop,內核:3.14)上,“pci 總線”進入 D3 睡眠狀態,當我試圖通過將其設置為 D0 狀態來喚醒它時,它失敗並顯示消息:

Error log: Refused to change power state, current in D3.

通過pci架構後,我知道我們無法將pci從D3hot調到D0初始化後,我們需要遵循以下內容:D3hot ‑> D0Uninitialized ‑> D0Initialized

但我無法弄清楚如何做到這一點,請幫我找出合適的解決方案

進一步調試後,我發現,當在 pci 驅動程序(即 pcieport)中請求時,pci 設備(即 D3 到 D0)的電源狀態轉換工作正常,但正如我我試圖通過面臨上述問題的 iwlwifi 驅動程序喚醒 pci 設備,因為它無法將喚醒請求寫入 pci 芯片。

任何幫助或任何線索將不勝感激。


參考解法

方法 1:

After a lot of research I found that, If any device wants to use acpi features to communicate to OS, should be registered in ACPI table.

In my case my wifi chip was not registered with ACPI table, because of it was unable to use ACPI features.

(by BhanuSinghBhanuSingh)

參考文件

  1. Unable to wake pci bus form D3 sleep satate (CC BY‑SA 2.5/3.0/4.0)

#linux-kernel #power-management #pci-bus






相關問題

選擇 Linux I/O 調度程序 (Selecting a Linux I/O Scheduler)

Android可加載內核模塊錯誤:賦值使指針從沒有強制轉換的整數 (Android Loadable Kernel Module Error: assignment makes integer from pointer without a cast)

文件描述符中實際存儲了多少信息? (How much information is actually stored in a file descriptor?)

hrtimer mengulangi tugas di kernel Linux (hrtimer repeating task in the Linux kernel)

我可以在 C 代碼中使用 LKM 內核代碼中的“getpwuid”嗎? (Can I use "getpwuid" from kernel code in LKM in c code?)

將傳入數據包注入網絡接口 (Injecting an incoming packet to a network interface)

無法從 D3 睡眠狀態喚醒 pci 總線 (Unable to wake pci bus form D3 sleep satate)

在 Linux 中使用 DMA 的最簡單方法 (Easiest way to use DMA in Linux)

Linux I2C 通信問題 (Linux I2C communication issues)

理解 perf stat 輸出中的數字 (Make sense of numbers in perf stat output)

我如何在 amazon Linux AMI 上找到我的 Linux 發行版? (How i could find my Linux distribution on amazon Linux AMI?)

將參數傳遞給系統調用 (Passing arguments to system calls)







留言討論