> git bisect log
# bad: [b423347fe0063a7ef60f6f313810d9f1a551f31b] UBUNTU: Ubuntu-6.14.0-24.24
# good: [2591c2ac99fc6fcedb56aeba132d99351753f522] UBUNTU: Ubuntu-6.14.0-22.22
git bisect start 'HEAD' 'Ubuntu-6.14.0-22.22'
# good: [5a71be1ddaf2a85a049ceb2ffed342049c1ad234] pds_core: specify auxiliary_device to be created
git bisect good 5a71be1ddaf2a85a049ceb2ffed342049c1ad234
# good: [79f860ba43b4bb5608e7e99e442b4cccb0fc50e2] platform/x86: alienware-wmi-wmax: Add support for Alienware m15 R7
git bisect good 79f860ba43b4bb5608e7e99e442b4cccb0fc50e2
# good: [4a41bd7ba5607fc2d59d98e81b9b1d3a799d5459] mm: Provide address mask in struct follow_pfnmap_args
git bisect good 4a41bd7ba5607fc2d59d98e81b9b1d3a799d5459
# bad: [a1203fd595a8602a3c26f042fadb74b5115c5de5] s390/pci: Serialize device addition and removal
git bisect bad a1203fd595a8602a3c26f042fadb74b5115c5de5
# bad: [f1f13fe547ded398963103f3e666a8b011b2b32e] KVM: PPC: Book3S HV: Fix IRQ map warnings with XICS on pSeries KVM Guest
git bisect bad f1f13fe547ded398963103f3e666a8b011b2b32e
# good: [2530de1587dd43da379c84e2d1f53f02b7f3bd41] vfio/type1: Use vfio_batch for vaddr_get_pfns()
git bisect good 2530de1587dd43da379c84e2d1f53f02b7f3bd41
# good: [eb9f27a297a6e24d76265d7611a6363b4d5cc604] vfio/type1: Use mapping page mask for pfnmaps
git bisect good eb9f27a297a6e24d76265d7611a6363b4d5cc604
# bad: [35fedc31ac99519f6eb6514eeca9c6e235ab0a7e] PCI: Explicitly put devices into D0 when initializing
git bisect bad 35fedc31ac99519f6eb6514eeca9c6e235ab0a7e
# first bad commit: [35fedc31ac99519f6eb6514eeca9c6e235ab0a7e] PCI: Explicitly put devices into D0 when initializing
commit 35fedc31ac99519f6eb6514eeca9c6e235ab0a7e (HEAD)
Author: Mario Limonciello <mario.limonciello@amd.com>
Date: Thu May 29 09:07:28 2025 +0800
PCI: Explicitly put devices into D0 when initializing
BugLink: https://bugs.launchpad.net/bugs/2110090
AMD BIOS team has root caused an issue that NVMe storage failed to come
back from suspend to a lack of a call to _REG when NVMe device was probed.
112a7f9c8edbf ("PCI/ACPI: Call _REG when transitioning D-states") added
support for calling _REG when transitioning D-states, but this only works
if the device actually "transitions" D-states.
967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices")
added support for runtime PM on PCI devices, but never actually
'explicitly' sets the device to D0.
To make sure that devices are in D0 and that platform methods such as
_REG are called, explicitly set all devices into D0 during initialization.
Fixes: 967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices")
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Tested-by: Denis Benato <benato.denis96@gmail.com>
Tested-By: Yijun Shen <Yijun_Shen@Dell.com>
Tested-By: David Perry <david.perry@amd.com>
Reviewed-by: Rafael J. Wysocki <rafael@kernel.org>
Link: https://patch.msgid.link/20250424043232.1848107-1-superm1@kernel.org
(cherry picked from commit 4d4c10f763d7808fbade28d83d237411603bca05)
Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Thibault Ferrante <thibault.ferrante@canonical.com>
Acked-by: Edoardo Canepa <edoardo.canepa@canonical.com>
Signed-off-by: Mehmet Basaran <mehmet.basaran@canonical.com>