2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/drivers/gpu/drm/nouveau
Christoph Rudorff 4c4d9b7b6c drm/nouveau: fix hibernate on disabled GPU
Hibernate bricks the machine if a discrete GPU was disabled via

echo IGD > /sys/kernel/debug/vgaswitcheroo/switch

The freeze and thaw handler lacks checking the GPU power state,
as suspend and resume do.

This patch add the checks and fix this issue.

Signed-off-by: Christoph Rudorff <chris@rudorff.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://lore.kernel.org/r/20250325-nouveau-fix-hibernate-v2-1-2bd5c13fb953@rudorff.com
2025-03-28 18:05:53 -04:00
..
dispnv04 drm/nouveau: vendor in drm_encoder_slave API 2025-01-07 15:05:11 +01:00
dispnv50 Merge drm/drm-next into drm-misc-next 2025-02-06 13:47:32 +01:00
include drm/nouveau/nvkm: introduce new GSP reply policy NVKM_GSP_RPC_REPLY_POLL 2025-03-09 13:42:10 +01:00
nvif drm/nouveau/outp: Avoid -Wflex-array-member-not-at-end warning 2025-03-28 17:17:30 +01:00
nvkm drm/nouveau/nvkm: introduce new GSP reply policy NVKM_GSP_RPC_REPLY_POLL 2025-03-09 13:42:10 +01:00
Kbuild drm/nouveau: handle limited nvif ioctl in abi16 2024-07-27 03:05:22 +02:00
Kconfig drm/nouveau: incorporate I2C TV encoder drivers 2025-01-07 15:05:04 +01:00
nouveau_abi16.c drm/nouveau: pass cli to nouveau_channel_new() instead of drm+device 2024-07-27 03:05:43 +02:00
nouveau_abi16.h drm/nouveau: remove abi16->handles 2024-07-27 03:05:24 +02:00
nouveau_acpi.c ACPI: video: Fix random crashes due to bad kfree() 2025-01-13 21:09:10 +01:00
nouveau_acpi.h
nouveau_backlight.c
nouveau_bios.c Merge drm/drm-next into drm-misc-next 2024-07-29 09:35:54 +02:00
nouveau_bios.h drm/nouveau: move nvxx_* definitions to nouveau_drv.h 2024-07-27 03:05:38 +02:00
nouveau_bo74c1.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo85b5.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo90b5.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo0039.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo5039.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo9039.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo.c drm-misc-next for v6.12: 2024-08-08 18:58:46 +02:00
nouveau_bo.h drm/nouveau: use GEM references instead of TTMs 2024-07-22 22:46:45 +02:00
nouveau_boa0b5.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_chan.c drivers: remove get_task_comm() and print task comm directly 2025-01-12 20:21:16 -08:00
nouveau_chan.h drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_connector.c drm/nouveau: vendor in drm_encoder_slave API 2025-01-07 15:05:11 +01:00
nouveau_connector.h
nouveau_crtc.h
nouveau_debugfs.c drm/nouveau: create module debugfs root 2024-12-04 21:43:46 +01:00
nouveau_debugfs.h drm/nouveau: create module debugfs root 2024-12-04 21:43:46 +01:00
nouveau_display.c drm/nouveau/disp: Move tiling functions to dispnv50/tile.h 2024-11-04 12:38:06 +01:00
nouveau_display.h drm/nouveau: replace drm_device* with nouveau_drm* as dev drvdata 2024-07-27 03:05:19 +02:00
nouveau_dma.c drm/nouveau: remove chan->drm 2024-07-27 03:05:47 +02:00
nouveau_dma.h
nouveau_dmem.c nouveau/dmem: Fix vulnerability in migrate_to_ram upon copy error 2024-10-08 14:23:38 +02:00
nouveau_dmem.h
nouveau_dp.c drm/nouveau/dp: Use the generic helper to control LTTPR transparent mode 2025-02-25 18:33:48 +02:00
nouveau_drm.c drm/nouveau: fix hibernate on disabled GPU 2025-03-28 18:05:53 -04:00
nouveau_drv.h drm: remove driver date from struct drm_driver and all drivers 2024-12-05 12:35:42 +02:00
nouveau_encoder.h drm/nouveau: vendor in drm_encoder_slave API 2025-01-07 15:05:11 +01:00
nouveau_exec.c drm/nouveau: Constify struct nouveau_job_ops 2024-06-17 17:22:06 +02:00
nouveau_exec.h
nouveau_fence.c nouveau/fence: handle cross device fences properly 2025-01-13 15:49:49 +01:00
nouveau_fence.h Revert "nouveau: rip out busy fence waits" 2024-08-02 14:38:28 +10:00
nouveau_gem.c drm-misc-next for v6.12: 2024-08-08 18:58:46 +02:00
nouveau_gem.h
nouveau_hwmon.c drm/nouveau: move nvxx_* definitions to nouveau_drv.h 2024-07-27 03:05:38 +02:00
nouveau_hwmon.h
nouveau_ioc32.c
nouveau_ioctl.h
nouveau_led.c drm/nouveau: move nvxx_* definitions to nouveau_drv.h 2024-07-27 03:05:38 +02:00
nouveau_led.h
nouveau_mem.c drm/nouveau: remove master 2024-07-27 03:05:48 +02:00
nouveau_mem.h drm/nouveau: pass drm to nouveau_mem_new(), instead of cli 2024-07-27 03:05:41 +02:00
nouveau_nvif.c drm/nouveau/nvif: remove driver keep/fini 2024-07-27 03:05:31 +02:00
nouveau_platform.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
nouveau_platform.h
nouveau_prime.c drm/nouveau: prime: fix refcount underflow 2024-07-22 22:53:38 +02:00
nouveau_reg.h
nouveau_sched.c drm/sched: Use struct for drm_sched_init() params 2025-02-12 11:59:52 +01:00
nouveau_sched.h drm/nouveau: Constify struct nouveau_job_ops 2024-06-17 17:22:06 +02:00
nouveau_sgdma.c drm/nouveau: pass drm to nouveau_mem_new(), instead of cli 2024-07-27 03:05:41 +02:00
nouveau_svm.c drm/nouveau: Avoid multiple -Wflex-array-member-not-at-end warnings 2025-02-27 19:16:43 +01:00
nouveau_svm.h
nouveau_ttm.c drm/nouveau: pass drm to nouveau_mem_new(), instead of cli 2024-07-27 03:05:41 +02:00
nouveau_ttm.h
nouveau_uvmm.c nouveau: set placement to original placement on uvmm validate. 2024-08-01 01:22:12 +02:00
nouveau_uvmm.h
nouveau_vga.c drm/client: Move client event handlers to drm_client_event.c 2024-10-18 09:23:03 +02:00
nouveau_vga.h drm/nouveau: Do not set struct drm_driver.lastclose 2024-08-13 16:21:09 +02:00
nouveau_vmm.c
nouveau_vmm.h
nv04_fence.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nv10_fence.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nv10_fence.h
nv17_fence.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nv50_display.h
nv50_fence.c drm/nouveau: remove chan->drm 2024-07-27 03:05:47 +02:00
nv84_fence.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nvc0_fence.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00