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

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
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -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)
+14 −0
Original line number Diff line number Diff line
@@ -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)
{
+1 −0
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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);