On Tue, Aug 08, 2023 at 06:53:28PM +0300, Jani Nikula wrote: > Continue splitting display from the rest. > > Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > .../gpu/drm/i915/display/intel_display_driver.c | 2 ++ > .../gpu/drm/i915/display/intel_display_irq.c | 17 +++++++++++++++++ > .../gpu/drm/i915/display/intel_display_irq.h | 2 ++ > drivers/gpu/drm/i915/i915_irq.c | 17 ----------------- > 4 files changed, 21 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c > index b909814ae02b..8f144d4d3c39 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_driver.c > +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c > @@ -28,6 +28,7 @@ > #include "intel_crtc.h" > #include "intel_display_debugfs.h" > #include "intel_display_driver.h" > +#include "intel_display_irq.h" > #include "intel_display_power.h" > #include "intel_display_types.h" > #include "intel_dkl_phy.h" > @@ -177,6 +178,7 @@ void intel_display_driver_early_probe(struct drm_i915_private *i915) > if (!HAS_DISPLAY(i915)) > return; > > + intel_display_irq_init(i915); nice clean up, even the order of the calls stayed absolutely the same Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > intel_dkl_phy_init(i915); > intel_color_init_hooks(i915); > intel_init_cdclk_hooks(i915); > diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c > index e6f172cc665a..168f6d4ce208 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_irq.c > +++ b/drivers/gpu/drm/i915/display/intel_display_irq.c > @@ -1699,3 +1699,20 @@ void gen11_de_irq_postinstall(struct drm_i915_private *dev_priv) > GEN11_DISPLAY_IRQ_ENABLE); > } > > +void intel_display_irq_init(struct drm_i915_private *i915) > +{ > + i915->drm.vblank_disable_immediate = true; > + > + /* > + * Most platforms treat the display irq block as an always-on power > + * domain. vlv/chv can disable it at runtime and need special care to > + * avoid writing any of the display block registers outside of the power > + * domain. We defer setting up the display irqs in this case to the > + * runtime pm. > + */ > + i915->display_irqs_enabled = true; > + if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915)) > + i915->display_irqs_enabled = false; > + > + intel_hotplug_irq_init(i915); > +} > diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.h b/drivers/gpu/drm/i915/display/intel_display_irq.h > index 874893f4f16d..8a2d069d3aac 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_irq.h > +++ b/drivers/gpu/drm/i915/display/intel_display_irq.h > @@ -78,4 +78,6 @@ void i965_pipestat_irq_handler(struct drm_i915_private *i915, u32 iir, u32 pipe_ > void valleyview_pipestat_irq_handler(struct drm_i915_private *i915, u32 pipe_stats[I915_MAX_PIPES]); > void i8xx_pipestat_irq_handler(struct drm_i915_private *i915, u16 iir, u32 pipe_stats[I915_MAX_PIPES]); > > +void intel_display_irq_init(struct drm_i915_private *i915); > + > #endif /* __INTEL_DISPLAY_IRQ_H__ */ > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index 512fc0ef94a4..1723c215dcf6 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -1343,23 +1343,6 @@ void intel_irq_init(struct drm_i915_private *dev_priv) > /* pre-gen11 the guc irqs bits are in the upper 16 bits of the pm reg */ > if (HAS_GT_UC(dev_priv) && GRAPHICS_VER(dev_priv) < 11) > to_gt(dev_priv)->pm_guc_events = GUC_INTR_GUC2HOST << 16; > - > - if (!HAS_DISPLAY(dev_priv)) > - return; > - > - dev_priv->drm.vblank_disable_immediate = true; > - > - /* Most platforms treat the display irq block as an always-on > - * power domain. vlv/chv can disable it at runtime and need > - * special care to avoid writing any of the display block registers > - * outside of the power domain. We defer setting up the display irqs > - * in this case to the runtime pm. > - */ > - dev_priv->display_irqs_enabled = true; > - if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) > - dev_priv->display_irqs_enabled = false; > - > - intel_hotplug_irq_init(dev_priv); > } > > /** > -- > 2.39.2 >