diff options
| author | Jani Nikula <jani.nikula@intel.com> | 2026-06-02 11:32:43 +0300 |
|---|---|---|
| committer | Jani Nikula <jani.nikula@intel.com> | 2026-06-04 13:50:09 +0300 |
| commit | bc16416bd7235abcd8c61ee30fc3d4d25fb74dbc (patch) | |
| tree | 912b231ef4fc0bdda2a4323d3344621bb7431ad2 /drivers | |
| parent | b4843a4dece46bdbc7e3a5a64197edf0259ddcc9 (diff) | |
| download | linux-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.c | 90 |
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; |
