The intel_display_driver_register() and
intel_display_driver_unregister() calls are followed and preceded by
intel_display_power_enable() and intel_display_power_disable() calls,
respectively. Move them inside the register/unregister calls.

Semantically, this is a weird location, as there's nothing really
"register" or "unregister" about them, but they retain the existing
sequence. Add comments to note that.

There's a slight functional change for !HAS_DISPLAY() in that
register/unregister return early. Assume this is what we want, and there
are no cases where display engine is present but all pipes have been
fused off.

Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_display_driver.c | 6 ++++++
 drivers/gpu/drm/i915/i915_driver.c                  | 2 --
 drivers/gpu/drm/xe/display/xe_display.c             | 2 --
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c 
b/drivers/gpu/drm/i915/display/intel_display_driver.c
index 77fa4497b442..7fee9ef88224 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.c
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -578,6 +578,9 @@ void intel_display_driver_register(struct intel_display 
*display)
                                        DISPLAY_RUNTIME_INFO(display), &p);
 
        intel_register_dsm_handler();
+
+       /* Semantically out of place, just for the sequence */
+       intel_display_power_enable(display);
 }
 
 /* part #1: call before irq uninstall */
@@ -652,6 +655,9 @@ void intel_display_driver_unregister(struct intel_display 
*display)
        if (!HAS_DISPLAY(display))
                return;
 
+       /* Semantically out of place, just for the sequence */
+       intel_display_power_disable(display);
+
        intel_unregister_dsm_handler();
 
        drm_client_dev_unregister(display->drm);
diff --git a/drivers/gpu/drm/i915/i915_driver.c 
b/drivers/gpu/drm/i915/i915_driver.c
index 6fd3e8b155b1..b637c4dedf1b 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -661,7 +661,6 @@ static int i915_driver_register(struct drm_i915_private 
*dev_priv)
 
        intel_display_driver_register(display);
 
-       intel_display_power_enable(display);
        intel_runtime_pm_enable(&dev_priv->runtime_pm);
 
        if (i915_switcheroo_register(dev_priv))
@@ -683,7 +682,6 @@ 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_unregister(display);
 
diff --git a/drivers/gpu/drm/xe/display/xe_display.c 
b/drivers/gpu/drm/xe/display/xe_display.c
index bbd4f527d5e3..e17e05a8854c 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -177,7 +177,6 @@ void xe_display_register(struct xe_device *xe)
                return;
 
        intel_display_driver_register(display);
-       intel_display_power_enable(display);
 }
 
 void xe_display_unregister(struct xe_device *xe)
@@ -187,7 +186,6 @@ void xe_display_unregister(struct xe_device *xe)
        if (!xe->info.probe_display)
                return;
 
-       intel_display_power_disable(display);
        intel_display_driver_unregister(display);
 }
 
-- 
2.47.3

Reply via email to