[Bug 613381] [NEW] S3 resume hang when PCI Express wakeups don't clear the PM1 PCI_WAKE_DISABLE bit

Colin King 613381 at bugs.launchpad.net
Wed Aug 4 09:48:27 UTC 2010


Public bug reported:

It has been observed on a AMD K325 netbook that resumes hang in the BIOS
if PCI Express ethernet is enabled on the 2nd or 3rd resume.  Disabling
the ethernet has shown that the resume works flawlessly.  This has been
tracked down to the fact that a PCI Express Wake event has occurred and
the kernel is not clearing the PM1 PCIEXP_WAKE_STS bit when coming out
of resume.

Section 4.7.3.1.1 of version 4.0 of the acpi spec
(http://www.acpi.info/spec40.htm) in table 4-11 concerning
PCIEXP_WAKE_STS states:

"Software writes a 1 to clear this bit. If the WAKE# pin is still active during
the write, one or more PCI Express ports is in the beacon state or the PME
message received indication has not been cleared in the root port, then the bit
will remain active (i.e. all inputs to this bit are level-sensitive)."

"Note: This bit does not itself cause a wake event or prevent entry to a
sleeping state. Thus if the bit is 1 and the system is put into a sleeping state,
the system will not automatically wake."

A suitable fix is to define ACPI_BITMASK_ALL_FIXED_STATUS to:

#define ACPI_BITMASK_ALL_FIXED_STATUS           (\
        ACPI_BITMASK_TIMER_STATUS          | \
        ACPI_BITMASK_BUS_MASTER_STATUS     | \
        ACPI_BITMASK_GLOBAL_LOCK_STATUS    | \
        ACPI_BITMASK_POWER_BUTTON_STATUS   | \
        ACPI_BITMASK_SLEEP_BUTTON_STATUS   | \
        ACPI_BITMASK_RT_CLOCK_STATUS       | \
        ACPI_BITMASK_PCIEXP_WAKE_DISABLE   | \
        ACPI_BITMASK_WAKE_STATUS)

..and this ensures PCIEXP_WAKE_STS is cleared by
acpi_hw_clear_acpi_status() when coming out of S3.

** Affects: linux (Ubuntu)
     Importance: Medium
     Assignee: Colin King (colin-king)
         Status: In Progress

** Changed in: linux (Ubuntu)
       Status: New => In Progress

** Changed in: linux (Ubuntu)
   Importance: Undecided => Medium

** Changed in: linux (Ubuntu)
     Assignee: (unassigned) => Colin King (colin-king)

-- 
S3 resume hang when PCI Express wakeups don't clear the PM1 PCI_WAKE_DISABLE bit
https://bugs.launchpad.net/bugs/613381
You received this bug notification because you are a member of Kernel
Bugs, which is subscribed to linux in ubuntu.




More information about the kernel-bugs mailing list