drm/i915/display: add intel_display_driver_early_probe()
authorJani Nikula <jani.nikula@intel.com>
Fri, 14 Apr 2023 09:42:02 +0000 (12:42 +0300)
committerJani Nikula <jani.nikula@intel.com>
Mon, 17 Apr 2023 08:18:04 +0000 (11:18 +0300)
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.

Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/0b02311e5343527b501b44671d2188f2a1b30a7d.1681465222.git.jani.nikula@intel.com
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_display_driver.c
drivers/gpu/drm/i915/display/intel_display_driver.h
drivers/gpu/drm/i915/i915_driver.c

index 9c9b0ef..1c264c1 100644 (file)
@@ -8019,15 +8019,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)) {
@@ -8040,8 +8031,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)
index d20a279..b3dbfe2 100644 (file)
@@ -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)
 {
index 84e7977..c276a58 100644 (file)
@@ -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);
index d36e4b0..6ad4190 100644 (file)
@@ -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);