From b6ce65a7bb922059072424ac7049dfc468de79dc Mon Sep 17 00:00:00 2001 From: jsg Date: Thu, 19 Mar 2026 23:04:02 +0000 Subject: [PATCH] Call freeze and restore functions for hibernate. These call the equivalent suspend and resume functions so no functional change. Closer matches the amdgpu activate function. ok kettenis@ --- sys/dev/pci/drm/i915/i915_driver.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/sys/dev/pci/drm/i915/i915_driver.c b/sys/dev/pci/drm/i915/i915_driver.c index 92492983f99..4034976677c 100644 --- a/sys/dev/pci/drm/i915/i915_driver.c +++ b/sys/dev/pci/drm/i915/i915_driver.c @@ -2541,8 +2541,13 @@ inteldrm_activate(struct device *self, int act) case DVACT_QUIESCE: rv = config_suspend(dev->dev, act); i915_pm_prepare(self); - i915_pm_suspend(self); - i915_pm_suspend_late(self); + if (acpi_softc && acpi_softc->sc_state == ACPI_STATE_S4) { + i915_pm_freeze(self); + i915_pm_freeze_late(self); + } else { + i915_pm_suspend(self); + i915_pm_suspend_late(self); + } break; case DVACT_SUSPEND: if (dev->agp) @@ -2553,8 +2558,13 @@ inteldrm_activate(struct device *self, int act) config_suspend(dev->agp->agpdev->sc_chipc, act); break; case DVACT_WAKEUP: - i915_pm_resume_early(self); - i915_pm_resume(self); + if (acpi_softc && acpi_softc->sc_state == ACPI_STATE_S4) { + i915_pm_restore_early(self); + i915_pm_restore(self); + } else { + i915_pm_resume_early(self); + i915_pm_resume(self); + } drm_client_dev_restore(dev); rv = config_suspend(dev->dev, act); break;