Commit 62bb6b49 authored by Jani Nikula's avatar Jani Nikula

drm/i915/display: add intel_display_driver_early_probe()

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: default avatarGustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/0b02311e5343527b501b44671d2188f2a1b30a7d.1681465222.git.jani.nikula@intel.com
parent cde4bd87
...@@ -8019,15 +8019,6 @@ static const struct intel_display_funcs i9xx_display_funcs = { ...@@ -8019,15 +8019,6 @@ static const struct intel_display_funcs i9xx_display_funcs = {
*/ */
void intel_init_display_hooks(struct drm_i915_private *dev_priv) 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) { if (DISPLAY_VER(dev_priv) >= 9) {
dev_priv->display.funcs.display = &skl_display_funcs; dev_priv->display.funcs.display = &skl_display_funcs;
} else if (HAS_DDI(dev_priv)) { } else if (HAS_DDI(dev_priv)) {
...@@ -8040,8 +8031,6 @@ void intel_init_display_hooks(struct drm_i915_private *dev_priv) ...@@ -8040,8 +8031,6 @@ void intel_init_display_hooks(struct drm_i915_private *dev_priv)
} else { } else {
dev_priv->display.funcs.display = &i9xx_display_funcs; dev_priv->display.funcs.display = &i9xx_display_funcs;
} }
intel_fdi_init_hook(dev_priv);
} }
int intel_initial_commit(struct drm_device *dev) int intel_initial_commit(struct drm_device *dev)
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include "intel_display_types.h" #include "intel_display_types.h"
#include "intel_dmc.h" #include "intel_dmc.h"
#include "intel_dp.h" #include "intel_dp.h"
#include "intel_dpll.h"
#include "intel_dpll_mgr.h" #include "intel_dpll_mgr.h"
#include "intel_fb.h" #include "intel_fb.h"
#include "intel_fbc.h" #include "intel_fbc.h"
...@@ -169,6 +170,19 @@ static void intel_plane_possible_crtcs_init(struct drm_i915_private *dev_priv) ...@@ -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 */ /* part #1: call before irq install */
int intel_display_driver_probe_noirq(struct drm_i915_private *i915) int intel_display_driver_probe_noirq(struct drm_i915_private *i915)
{ {
......
...@@ -15,6 +15,7 @@ struct pci_dev; ...@@ -15,6 +15,7 @@ struct pci_dev;
bool intel_display_driver_probe_defer(struct pci_dev *pdev); 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_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_noirq(struct drm_i915_private *i915);
int intel_display_driver_probe_nogem(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); int intel_display_driver_probe(struct drm_i915_private *i915);
......
...@@ -252,7 +252,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) ...@@ -252,7 +252,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv)
intel_detect_pch(dev_priv); intel_detect_pch(dev_priv);
intel_irq_init(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_clock_gating_hooks_init(dev_priv);
intel_detect_preproduction_hw(dev_priv); intel_detect_preproduction_hw(dev_priv);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment