Fix after-suspend-mediacard/sdhc-insert test failed

Bug #2042500 reported by koba
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
New
Undecided
Unassigned
linux (Ubuntu)
Status tracked in Noble
Jammy
In Progress
Undecided
koba
Mantic
In Progress
Undecided
koba
Noble
In Progress
Undecided
koba
linux-oem-6.1 (Ubuntu)
Status tracked in Noble
Jammy
In Progress
Undecided
koba
Mantic
Invalid
Undecided
Unassigned
Noble
Invalid
Undecided
Unassigned
linux-oem-6.5 (Ubuntu)
Status tracked in Noble
Jammy
Fix Committed
Undecided
koba
Mantic
Invalid
Undecided
Unassigned
Noble
Invalid
Undecided
Unassigned

Bug Description

[Impact]
checkbox test case, after-suspend-mediacard/sdhc-insert, failed.

[Fix]
Commit a7152be79b62 ("Revert "PCI/ASPM: Save L1 PM Substates Capability
for suspend/resume"") reverted saving and restoring of ASPM L1 Substates
due to a regression that caused resume from suspend to fail on certain
systems. However, we never added this capability back and this is now
causing systems fail to enter low power CPU states, drawing more power
from the battery.

The original revert mentioned that we restore L1 PM substate configuration
even though ASPM L1 may already be enabled. This is due the fact that
the pci_restore_aspm_l1ss_state() was called before pci_restore_pcie_state().

Try to enable this functionality again following PCIe r6.0.1, sec 5.5.4
more closely by:

1) Do not restore ASPM configuration in pci_restore_pcie_state() but
   do that after PCIe capability is restored in pci_restore_aspm_state()
   following PCIe r6.0, sec 5.5.4.

2) ASPM is first enabled on the upstream component and then downstream
   (this is already forced by the parent-child ordering of Linux
   Device Power Management framework).

3) Program ASPM L1 PM substate configuration before L1 enables.

4) Program ASPM L1 PM substate enables last after rest of the fields
   in the capability are programmed.

5) Add denylist that skips restoring on the ASUS and TUXEDO systems
   where these regressions happened, just in case. For the TUXEDO case
   we only skip restore if the BIOS is involved in system suspend
   (that's forcing "mem_sleep=deep" in the command line). This is to
   avoid possible power regression when the default suspend to idle is
   used, and at the same time make sure the devices continue working
   after resume when the BIOS is involved.

[Test Case]
1. suspend and resume.
2. check if the error appears in dmesg
~~~
 pcieport 0000:00:1c.0: pciehp: Slot(5): Card not present
 rtsx_pci 0000:05:00.0: Unable to change power state from D0 to D3hot, device inaccessible
 rtsx_pci 0000:05:00.0: Unable to change power state from D3cold to D0, device inaccessible
~~~

[where the issue could happen]
low, the patch works well on the reported malfunctioned ASUS platform too.

koba (kobako)
Changed in linux (Ubuntu Noble):
status: New → In Progress
assignee: nobody → koba (kobako)
Changed in linux-oem-6.1 (Ubuntu Jammy):
status: New → In Progress
assignee: nobody → koba (kobako)
Changed in linux-oem-6.5 (Ubuntu Jammy):
status: New → In Progress
assignee: nobody → koba (kobako)
tags: added: oem-priority originate-from-2035307 stella
koba (kobako)
description: updated
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-oem-6.5/6.5.0-1008.8 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-jammy-linux-oem-6.5' to 'verification-done-jammy-linux-oem-6.5'. If the problem still exists, change the tag 'verification-needed-jammy-linux-oem-6.5' to 'verification-failed-jammy-linux-oem-6.5'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-jammy-linux-oem-6.5-v2 verification-needed-jammy-linux-oem-6.5
Timo Aaltonen (tjaalton)
Changed in linux-oem-6.5 (Ubuntu Jammy):
status: In Progress → Fix Committed
koba (kobako)
Changed in linux (Ubuntu Mantic):
assignee: nobody → koba (kobako)
status: New → In Progress
Changed in linux (Ubuntu Jammy):
assignee: nobody → koba (kobako)
status: New → In Progress
Changed in linux-oem-6.1 (Ubuntu Mantic):
status: New → Invalid
Changed in linux-oem-6.1 (Ubuntu Noble):
status: New → Invalid
Changed in linux-oem-6.5 (Ubuntu Mantic):
status: New → Invalid
Changed in linux-oem-6.5 (Ubuntu Noble):
status: New → Invalid
Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :

Not seeing the issue with the kernel in proposed#2.

tags: added: verification-done-jammy-linux-oem-6.5
removed: verification-needed-jammy-linux-oem-6.5
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.