drm/{i915, xe}: add new intel_display_driver_runtime_pm_{enable, disable}()

Add new high-level functions intel_display_driver_runtime_pm_enable()
and intel_display_driver_runtime_pm_disable() to abstract the low-level
functions intel_display_power_enable() and
intel_display_power_disable(), respectively.

The asymmetry in the "runtime pm enable/disable" and "pm runtime
suspend/etc" naming is intentional, with the latter intended to be
called from the PM hooks.

Suggested-by: Ville Syrjala <ville.syrjala@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patch.msgid.link/c95cb644a35ede7d4d456fd1654ce0b42b6eea33.1782913901.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
Jani Nikula 2026-07-01 16:53:03 +03:00
parent 93094e9099
commit 3cad64a10e
4 changed files with 19 additions and 6 deletions

View File

@ -888,6 +888,16 @@ void intel_display_driver_pm_resume(struct intel_display *display)
intel_display_power_enable(display);
}
void intel_display_driver_runtime_pm_enable(struct intel_display *display)
{
intel_display_power_enable(display);
}
void intel_display_driver_runtime_pm_disable(struct intel_display *display)
{
intel_display_power_disable(display);
}
/* before irq suspend */
void intel_display_driver_pm_runtime_suspend(struct intel_display *display)
{

View File

@ -43,6 +43,9 @@ void intel_display_driver_suspend_access(struct intel_display *display);
void intel_display_driver_resume_access(struct intel_display *display);
bool intel_display_driver_check_access(struct intel_display *display);
void intel_display_driver_runtime_pm_enable(struct intel_display *display);
void intel_display_driver_runtime_pm_disable(struct intel_display *display);
void intel_display_driver_pm_runtime_suspend(struct intel_display *display);
void intel_display_driver_pm_runtime_suspend_late(struct intel_display *display);
void intel_display_driver_pm_runtime_resume_early(struct intel_display *display);

View File

@ -638,7 +638,7 @@ static int i915_driver_register(struct drm_i915_private *dev_priv)
intel_display_driver_register(display);
intel_display_power_enable(display);
intel_display_driver_runtime_pm_enable(display);
intel_runtime_pm_enable(&dev_priv->runtime_pm);
if (i915_switcheroo_register(dev_priv))
@ -660,7 +660,7 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv)
i915_switcheroo_unregister(dev_priv);
intel_runtime_pm_disable(&dev_priv->runtime_pm);
intel_display_power_disable(display);
intel_display_driver_runtime_pm_disable(display);
intel_display_driver_unregister(display);

View File

@ -158,7 +158,7 @@ void xe_display_register(struct xe_device *xe)
return;
intel_display_driver_register(display);
intel_display_power_enable(display);
intel_display_driver_runtime_pm_enable(display);
}
void xe_display_unregister(struct xe_device *xe)
@ -168,7 +168,7 @@ void xe_display_unregister(struct xe_device *xe)
if (!xe->info.probe_display)
return;
intel_display_power_disable(display);
intel_display_driver_runtime_pm_disable(display);
intel_display_driver_unregister(display);
}
@ -313,7 +313,7 @@ static void xe_display_enable_d3cold(struct xe_device *xe)
* We do a lot of poking in a lot of registers, make sure they work
* properly.
*/
intel_display_power_disable(display);
intel_display_driver_runtime_pm_disable(display);
intel_display_flush_cleanup_work(display);
@ -346,7 +346,7 @@ static void xe_display_disable_d3cold(struct xe_device *xe)
intel_opregion_resume(display);
intel_display_power_enable(display);
intel_display_driver_runtime_pm_enable(display);
}
void xe_display_pm_runtime_suspend(struct xe_device *xe)