mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-23 04:59:20 +07:00
692a17dcc2
Since "PCI: Add runtime PM support for PCIe ports", the parent PCIe port can be runtime-suspended which disables power resources via ACPI. This is incompatible with DSM, resulting in a GPU device which is still in D3 and locks up the kernel on resume (on a Clevo P651RA, GTX965M). Mirror the behavior of Windows 8 and newer[1] (as observed via an AMLi debugger trace) and stop using the DSM functions for D3cold when power resources are available on the parent PCIe port. pci_d3cold_disable() is not used because on some machines, the old DSM method is broken. On a Lenovo T440p (GT 730M) memory and disk corruption would occur, but that is fixed with this patch[2]. [1]: https://msdn.microsoft.com/windows/hardware/drivers/bringup/firmware-requirements-for-d3cold [2]: https://github.com/Bumblebee-Project/bbswitch/issues/78#issuecomment-223549072 v2: simply check directly for _PR3. Added affected machines. v3: fixed block comment coding style. Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Peter Wu <peter@lekensteyn.nl> Acked-by: Dave Airlie <airlied@redhat.com Signed-off-by: Ben Skeggs <bskeggs@redhat.com> |
||
---|---|---|
.. | ||
dispnv04 | ||
include | ||
nvif | ||
nvkm | ||
Kbuild | ||
Kconfig | ||
nouveau_abi16.c | ||
nouveau_abi16.h | ||
nouveau_acpi.c | ||
nouveau_acpi.h | ||
nouveau_backlight.c | ||
nouveau_bios.c | ||
nouveau_bios.h | ||
nouveau_bo.c | ||
nouveau_bo.h | ||
nouveau_chan.c | ||
nouveau_chan.h | ||
nouveau_connector.c | ||
nouveau_connector.h | ||
nouveau_crtc.h | ||
nouveau_debugfs.c | ||
nouveau_debugfs.h | ||
nouveau_display.c | ||
nouveau_display.h | ||
nouveau_dma.c | ||
nouveau_dma.h | ||
nouveau_dp.c | ||
nouveau_drm.c | ||
nouveau_drv.h | ||
nouveau_encoder.h | ||
nouveau_fbcon.c | ||
nouveau_fbcon.h | ||
nouveau_fence.c | ||
nouveau_fence.h | ||
nouveau_gem.c | ||
nouveau_gem.h | ||
nouveau_hwmon.c | ||
nouveau_hwmon.h | ||
nouveau_ioc32.c | ||
nouveau_ioctl.h | ||
nouveau_nvif.c | ||
nouveau_platform.c | ||
nouveau_platform.h | ||
nouveau_prime.c | ||
nouveau_reg.h | ||
nouveau_sgdma.c | ||
nouveau_ttm.c | ||
nouveau_ttm.h | ||
nouveau_usif.c | ||
nouveau_usif.h | ||
nouveau_vga.c | ||
nouveau_vga.h | ||
nv04_fbcon.c | ||
nv04_fence.c | ||
nv10_fence.c | ||
nv10_fence.h | ||
nv17_fence.c | ||
nv50_display.c | ||
nv50_display.h | ||
nv50_fbcon.c | ||
nv50_fence.c | ||
nv84_fence.c | ||
nvc0_fbcon.c | ||
nvc0_fence.c |