Add intel_display_driver_early_probe() as the early probe call to
replace intel_init_display_hooks(). The latter will be "demoted" to
setting up hooks in intel_display.c only.

Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_display.c       | 11 -----------
 .../gpu/drm/i915/display/intel_display_driver.c    | 14 ++++++++++++++
 .../gpu/drm/i915/display/intel_display_driver.h    |  1 +
 drivers/gpu/drm/i915/i915_driver.c                 |  2 +-
 4 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 9eb9898885bb..afc5bc38d006 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -8005,15 +8005,6 @@ static const struct intel_display_funcs 
i9xx_display_funcs = {
  */
 void intel_init_display_hooks(struct drm_i915_private *dev_priv)
 {
-       if (!HAS_DISPLAY(dev_priv))
-               return;
-
-       intel_color_init_hooks(dev_priv);
-       intel_init_cdclk_hooks(dev_priv);
-       intel_audio_hooks_init(dev_priv);
-
-       intel_dpll_init_clock_hook(dev_priv);
-
        if (DISPLAY_VER(dev_priv) >= 9) {
                dev_priv->display.funcs.display = &skl_display_funcs;
        } else if (HAS_DDI(dev_priv)) {
@@ -8026,8 +8017,6 @@ void intel_init_display_hooks(struct drm_i915_private 
*dev_priv)
        } else {
                dev_priv->display.funcs.display = &i9xx_display_funcs;
        }
-
-       intel_fdi_init_hook(dev_priv);
 }
 
 int intel_initial_commit(struct drm_device *dev)
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c 
b/drivers/gpu/drm/i915/display/intel_display_driver.c
index d20a279fdf51..b3dbfe2a892e 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.c
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -32,6 +32,7 @@
 #include "intel_display_types.h"
 #include "intel_dmc.h"
 #include "intel_dp.h"
+#include "intel_dpll.h"
 #include "intel_dpll_mgr.h"
 #include "intel_fb.h"
 #include "intel_fbc.h"
@@ -169,6 +170,19 @@ static void intel_plane_possible_crtcs_init(struct 
drm_i915_private *dev_priv)
        }
 }
 
+void intel_display_driver_early_probe(struct drm_i915_private *i915)
+{
+       if (!HAS_DISPLAY(i915))
+               return;
+
+       intel_color_init_hooks(i915);
+       intel_init_cdclk_hooks(i915);
+       intel_audio_hooks_init(i915);
+       intel_dpll_init_clock_hook(i915);
+       intel_init_display_hooks(i915);
+       intel_fdi_init_hook(i915);
+}
+
 /* part #1: call before irq install */
 int intel_display_driver_probe_noirq(struct drm_i915_private *i915)
 {
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.h 
b/drivers/gpu/drm/i915/display/intel_display_driver.h
index 84e7977f265a..c276a58ee329 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.h
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.h
@@ -15,6 +15,7 @@ struct pci_dev;
 
 bool intel_display_driver_probe_defer(struct pci_dev *pdev);
 void intel_display_driver_init_hw(struct drm_i915_private *i915);
+void intel_display_driver_early_probe(struct drm_i915_private *i915);
 int intel_display_driver_probe_noirq(struct drm_i915_private *i915);
 int intel_display_driver_probe_nogem(struct drm_i915_private *i915);
 int intel_display_driver_probe(struct drm_i915_private *i915);
diff --git a/drivers/gpu/drm/i915/i915_driver.c 
b/drivers/gpu/drm/i915/i915_driver.c
index 082393ea3833..8a0a893443b4 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -252,7 +252,7 @@ static int i915_driver_early_probe(struct drm_i915_private 
*dev_priv)
        intel_detect_pch(dev_priv);
 
        intel_irq_init(dev_priv);
-       intel_init_display_hooks(dev_priv);
+       intel_display_driver_early_probe(dev_priv);
        intel_clock_gating_hooks_init(dev_priv);
 
        intel_detect_preproduction_hw(dev_priv);
-- 
2.39.2

Reply via email to