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
 {
        struct nouveau_drm *drm = dev_get_drvdata(dev);
 
+       if (drm->dev->switch_power_state == DRM_SWITCH_POWER_OFF ||
+           drm->dev->switch_power_state == DRM_SWITCH_POWER_DYNAMIC_OFF)
+               return 0;
+
        return nouveau_do_suspend(drm, false);
 }
 
 {
        struct nouveau_drm *drm = dev_get_drvdata(dev);
 
+       if (drm->dev->switch_power_state == DRM_SWITCH_POWER_OFF ||
+           drm->dev->switch_power_state == DRM_SWITCH_POWER_DYNAMIC_OFF)
+               return 0;
+
        return nouveau_do_resume(drm, false);
 }