summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2026-06-02 11:32:43 +0300
committerJani Nikula <jani.nikula@intel.com>2026-06-04 13:50:09 +0300
commitbc16416bd7235abcd8c61ee30fc3d4d25fb74dbc (patch)
tree912b231ef4fc0bdda2a4323d3344621bb7431ad2 /drivers
parentb4843a4dece46bdbc7e3a5a64197edf0259ddcc9 (diff)
downloadlinux-bc16416bd7235abcd8c61ee30fc3d4d25fb74dbc.tar.gz
linux-bc16416bd7235abcd8c61ee30fc3d4d25fb74dbc.zip
drm/xe/display: relocate the xe_display_shutdown*() functions
Group the xe_display_shutdown() and xe_display_shutdown_late() functions together, away from the pm hooks. Reviewed-by: MichaƂ Grzelak <michal.grzelak@intel.com> Link: https://patch.msgid.link/ca79ec22c7d8961bc82debf2ccc9ece4d1c7c906.1780389001.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/xe/display/xe_display.c90
1 files changed, 45 insertions, 45 deletions
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index a97a5f134ad6..96ed98369415 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -212,6 +212,51 @@ void xe_display_unregister(struct xe_device *xe)
intel_display_driver_unregister(display);
}
+void xe_display_shutdown(struct xe_device *xe)
+{
+ struct intel_display *display = xe->display;
+
+ if (!xe->info.probe_display)
+ return;
+
+ intel_display_power_disable(display);
+ drm_client_dev_suspend(&xe->drm);
+
+ if (intel_display_device_present(display)) {
+ drm_kms_helper_poll_disable(&xe->drm);
+ intel_display_driver_disable_user_access(display);
+ intel_display_driver_pm_suspend(display);
+ }
+
+ intel_encoder_block_all_hpds(display);
+ intel_hpd_cancel_work(display);
+
+ if (intel_display_device_present(display))
+ intel_display_driver_suspend_access(display);
+
+ intel_encoder_suspend_all(display);
+ intel_encoder_shutdown_all(display);
+
+ intel_opregion_suspend(display, PCI_D3cold);
+
+ intel_dmc_suspend(display);
+}
+
+void xe_display_shutdown_late(struct xe_device *xe)
+{
+ struct intel_display *display = xe->display;
+
+ if (!xe->info.probe_display)
+ return;
+
+ /*
+ * The only requirement is to reboot with display DC states disabled,
+ * for now leaving all display power wells in the INIT power domain
+ * enabled.
+ */
+ intel_display_power_driver_remove(display);
+}
+
/* IRQ-related functions */
void xe_display_irq_handler(struct xe_device *xe, u32 master_ctl)
@@ -347,36 +392,6 @@ void xe_display_pm_suspend(struct xe_device *xe)
intel_dmc_suspend(display);
}
-void xe_display_shutdown(struct xe_device *xe)
-{
- struct intel_display *display = xe->display;
-
- if (!xe->info.probe_display)
- return;
-
- intel_display_power_disable(display);
- drm_client_dev_suspend(&xe->drm);
-
- if (intel_display_device_present(display)) {
- drm_kms_helper_poll_disable(&xe->drm);
- intel_display_driver_disable_user_access(display);
- intel_display_driver_pm_suspend(display);
- }
-
- intel_encoder_block_all_hpds(display);
- intel_hpd_cancel_work(display);
-
- if (intel_display_device_present(display))
- intel_display_driver_suspend_access(display);
-
- intel_encoder_suspend_all(display);
- intel_encoder_shutdown_all(display);
-
- intel_opregion_suspend(display, PCI_D3cold);
-
- intel_dmc_suspend(display);
-}
-
void xe_display_pm_runtime_suspend(struct xe_device *xe)
{
struct intel_display *display = xe->display;
@@ -421,21 +436,6 @@ void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
intel_dmc_wl_flush_release_work(display);
}
-void xe_display_shutdown_late(struct xe_device *xe)
-{
- struct intel_display *display = xe->display;
-
- if (!xe->info.probe_display)
- return;
-
- /*
- * The only requirement is to reboot with display DC states disabled,
- * for now leaving all display power wells in the INIT power domain
- * enabled.
- */
- intel_display_power_driver_remove(display);
-}
-
void xe_display_pm_resume_early(struct xe_device *xe)
{
struct intel_display *display = xe->display;