WSL2-Linux-Kernel/drivers/pci
Mario Limonciello 3992ce79c9 PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports
[ Upstream commit 256df20c590bf0e4d63ac69330cf23faddac3e08 ]

Hewlett-Packard HP Pavilion 17 Notebook PC/1972 is an Intel Ivy Bridge
system with a muxless AMD Radeon dGPU.  Attempting to use the dGPU fails
with the following sequence:

  ACPI Error: Aborting method \AMD3._ON due to previous error (AE_AML_LOOP_TIMEOUT) (20230628/psparse-529)
  radeon 0000:01:00.0: not ready 1023ms after resume; waiting
  radeon 0000:01:00.0: not ready 2047ms after resume; waiting
  radeon 0000:01:00.0: not ready 4095ms after resume; waiting
  radeon 0000:01:00.0: not ready 8191ms after resume; waiting
  radeon 0000:01:00.0: not ready 16383ms after resume; waiting
  radeon 0000:01:00.0: not ready 32767ms after resume; waiting
  radeon 0000:01:00.0: not ready 65535ms after resume; giving up
  radeon 0000:01:00.0: Unable to change power state from D3cold to D0, device inaccessible

The issue is that the Root Port the dGPU is connected to can't handle the
transition from D3cold to D0 so the dGPU can't properly exit runtime PM.

The existing logic in pci_bridge_d3_possible() checks for systems that are
newer than 2015 to decide that D3 is safe.  This would nominally work for
an Ivy Bridge system (which was discontinued in 2015), but this system
appears to have continued to receive BIOS updates until 2017 and so this
existing logic doesn't appropriately capture it.

Add the system to bridge_d3_blacklist to prevent D3cold from being used.

Link: https://lore.kernel.org/r/20240307163709.323-1-mario.limonciello@amd.com
Reported-by: Eric Heintzmann <heintzmann.eric@free.fr>
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3229
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Tested-by: Eric Heintzmann <heintzmann.eric@free.fr>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-07-05 09:14:28 +02:00
..
controller PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id 2024-07-05 09:14:21 +02:00
endpoint NTB: fix possible name leak in ntb_register_device() 2024-03-26 18:21:28 -04:00
hotplug Revert "PCI: acpiphp: Reassign resources on bridge if necessary" 2023-12-20 15:17:38 +01:00
pcie PCI/EDR: Align EDR_PORT_LOCATE_DSM with PCI Firmware r3.3 2024-06-16 13:39:39 +02:00
switch PCI: switchtec: Fix an error handling path in switchtec_pci_probe() 2024-03-26 18:21:27 -04:00
Kconfig
Makefile
access.c
ats.c
bus.c PCI: s390: Fix use-after-free of PCI resources with per-function hotplug 2023-03-22 13:31:24 +01:00
ecam.c
host-bridge.c
iov.c PCI/IOV: Enlarge virtfn sysfs name buffer 2023-03-10 09:39:37 +01:00
irq.c PCI: Check for alloc failure in pci_request_irq() 2022-12-31 13:14:24 +01:00
mmap.c
msi.c PCI/MSI: Prevent MSI hardware interrupt number truncation 2024-03-01 13:21:48 +01:00
of.c
p2pdma.c PCI/P2PDMA: Fix a sleeping issue in a RCU read section 2024-03-26 18:21:27 -04:00
pci-acpi.c PCI/sysfs: Protect driver's D3cold preference from user space 2023-11-28 16:56:28 +00:00
pci-bridge-emul.c PCI: pci-bridge-emul: Add definitions for missing capabilities registers 2022-05-12 12:30:27 +02:00
pci-bridge-emul.h
pci-driver.c PCI/PM: Drain runtime-idle callbacks before driver removal 2024-04-10 16:18:38 +02:00
pci-label.c
pci-mid.c
pci-pf-stub.c
pci-stub.c
pci-sysfs.c PCI/sysfs: Protect driver's D3cold preference from user space 2023-11-28 16:56:28 +00:00
pci.c PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports 2024-07-05 09:14:28 +02:00
pci.h PCI: Make pci_dev_is_disconnected() helper public for other drivers 2024-03-26 18:21:21 -04:00
probe.c
proc.c
quirks.c PCI/DPC: Quirk PIO log size for Intel Ice Lake Root Ports 2024-04-10 16:19:34 +02:00
remove.c
rom.c
search.c
setup-bus.c PCI: Take other bus devices into account when distributing resources 2023-03-11 13:57:37 +01:00
setup-irq.c
setup-res.c PCI: Work around Intel I210 ROM BAR overlap defect 2024-04-10 16:18:38 +02:00
slot.c
syscall.c
vc.c
vpd.c
xen-pcifront.c