Skip to content

Commit 1486d04

Browse files
committed
drm/i915/irq: add dedicated intel_display_irq_init()
Continue splitting display from the rest. Signed-off-by: Jani Nikula <[email protected]> Reviewed-by: Rodrigo Vivi <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/45c247c9f5104f3e25bd8913644402a11ec3afaf.1691509966.git.jani.nikula@intel.com
1 parent bf9e1bd commit 1486d04

File tree

4 files changed

+21
-17
lines changed

4 files changed

+21
-17
lines changed

drivers/gpu/drm/i915/display/intel_display_driver.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "intel_crtc.h"
2929
#include "intel_display_debugfs.h"
3030
#include "intel_display_driver.h"
31+
#include "intel_display_irq.h"
3132
#include "intel_display_power.h"
3233
#include "intel_display_types.h"
3334
#include "intel_dkl_phy.h"
@@ -177,6 +178,7 @@ void intel_display_driver_early_probe(struct drm_i915_private *i915)
177178
if (!HAS_DISPLAY(i915))
178179
return;
179180

181+
intel_display_irq_init(i915);
180182
intel_dkl_phy_init(i915);
181183
intel_color_init_hooks(i915);
182184
intel_init_cdclk_hooks(i915);

drivers/gpu/drm/i915/display/intel_display_irq.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1699,3 +1699,20 @@ void gen11_de_irq_postinstall(struct drm_i915_private *dev_priv)
16991699
GEN11_DISPLAY_IRQ_ENABLE);
17001700
}
17011701

1702+
void intel_display_irq_init(struct drm_i915_private *i915)
1703+
{
1704+
i915->drm.vblank_disable_immediate = true;
1705+
1706+
/*
1707+
* Most platforms treat the display irq block as an always-on power
1708+
* domain. vlv/chv can disable it at runtime and need special care to
1709+
* avoid writing any of the display block registers outside of the power
1710+
* domain. We defer setting up the display irqs in this case to the
1711+
* runtime pm.
1712+
*/
1713+
i915->display_irqs_enabled = true;
1714+
if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915))
1715+
i915->display_irqs_enabled = false;
1716+
1717+
intel_hotplug_irq_init(i915);
1718+
}

drivers/gpu/drm/i915/display/intel_display_irq.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,6 @@ void i965_pipestat_irq_handler(struct drm_i915_private *i915, u32 iir, u32 pipe_
7878
void valleyview_pipestat_irq_handler(struct drm_i915_private *i915, u32 pipe_stats[I915_MAX_PIPES]);
7979
void i8xx_pipestat_irq_handler(struct drm_i915_private *i915, u16 iir, u32 pipe_stats[I915_MAX_PIPES]);
8080

81+
void intel_display_irq_init(struct drm_i915_private *i915);
82+
8183
#endif /* __INTEL_DISPLAY_IRQ_H__ */

drivers/gpu/drm/i915/i915_irq.c

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1343,23 +1343,6 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
13431343
/* pre-gen11 the guc irqs bits are in the upper 16 bits of the pm reg */
13441344
if (HAS_GT_UC(dev_priv) && GRAPHICS_VER(dev_priv) < 11)
13451345
to_gt(dev_priv)->pm_guc_events = GUC_INTR_GUC2HOST << 16;
1346-
1347-
if (!HAS_DISPLAY(dev_priv))
1348-
return;
1349-
1350-
dev_priv->drm.vblank_disable_immediate = true;
1351-
1352-
/* Most platforms treat the display irq block as an always-on
1353-
* power domain. vlv/chv can disable it at runtime and need
1354-
* special care to avoid writing any of the display block registers
1355-
* outside of the power domain. We defer setting up the display irqs
1356-
* in this case to the runtime pm.
1357-
*/
1358-
dev_priv->display_irqs_enabled = true;
1359-
if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
1360-
dev_priv->display_irqs_enabled = false;
1361-
1362-
intel_hotplug_irq_init(dev_priv);
13631346
}
13641347

13651348
/**

0 commit comments

Comments
 (0)