Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9df7575f authored by Jesse Barnes's avatar Jesse Barnes Committed by Daniel Vetter
Browse files

drm/i915: add helper for checking whether IRQs are enabled



Now that we use the runtime IRQ enable/disable functions in our suspend
path, we can simply check the pm._irqs_disabled flag everywhere.  So
rename it to catch the users, and add an inline for it to make the
checks clear everywhere.

Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 9a76e495
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1996,7 +1996,7 @@ static int i915_pc8_status(struct seq_file *m, void *unused)

	seq_printf(m, "GPU idle: %s\n", yesno(!dev_priv->mm.busy));
	seq_printf(m, "IRQs disabled: %s\n",
		   yesno(dev_priv->pm.irqs_disabled));
		   yesno(!intel_irqs_enabled(dev_priv)));

	return 0;
}
+1 −1
Original line number Diff line number Diff line
@@ -1339,7 +1339,7 @@ struct ilk_wm_values {
 */
struct i915_runtime_pm {
	bool suspended;
	bool irqs_disabled;
	bool _irqs_disabled;
};

enum intel_pipe_crc_source {
+1 −1
Original line number Diff line number Diff line
@@ -1161,7 +1161,7 @@ static int __wait_seqno(struct intel_engine_cs *ring, u32 seqno,
	unsigned long timeout_expire;
	int ret;

	WARN(dev_priv->pm.irqs_disabled, "IRQs disabled\n");
	WARN(!intel_irqs_enabled(dev_priv), "IRQs disabled");

	if (i915_seqno_passed(ring->get_seqno(ring, true), seqno))
		return 0;
+8 −8
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ ironlake_enable_display_irq(struct drm_i915_private *dev_priv, u32 mask)
{
	assert_spin_locked(&dev_priv->irq_lock);

	if (WARN_ON(dev_priv->pm.irqs_disabled))
	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
		return;

	if ((dev_priv->irq_mask & mask) != 0) {
@@ -151,7 +151,7 @@ ironlake_disable_display_irq(struct drm_i915_private *dev_priv, u32 mask)
{
	assert_spin_locked(&dev_priv->irq_lock);

	if (dev_priv->pm.irqs_disabled)
	if (!intel_irqs_enabled(dev_priv))
		return;

	if ((dev_priv->irq_mask & mask) != mask) {
@@ -173,7 +173,7 @@ static void ilk_update_gt_irq(struct drm_i915_private *dev_priv,
{
	assert_spin_locked(&dev_priv->irq_lock);

	if (WARN_ON(dev_priv->pm.irqs_disabled))
	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
		return;

	dev_priv->gt_irq_mask &= ~interrupt_mask;
@@ -206,7 +206,7 @@ static void snb_update_pm_irq(struct drm_i915_private *dev_priv,

	assert_spin_locked(&dev_priv->irq_lock);

	if (WARN_ON(dev_priv->pm.irqs_disabled))
	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
		return;

	new_val = dev_priv->pm_irq_mask;
@@ -264,7 +264,7 @@ static void bdw_update_pm_irq(struct drm_i915_private *dev_priv,

	assert_spin_locked(&dev_priv->irq_lock);

	if (WARN_ON(dev_priv->pm.irqs_disabled))
	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
		return;

	new_val = dev_priv->pm_irq_mask;
@@ -420,7 +420,7 @@ static void ibx_display_interrupt_update(struct drm_i915_private *dev_priv,

	assert_spin_locked(&dev_priv->irq_lock);

	if (WARN_ON(dev_priv->pm.irqs_disabled))
	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
		return;

	I915_WRITE(SDEIMR, sdeimr);
@@ -4774,7 +4774,7 @@ void intel_runtime_pm_disable_interrupts(struct drm_device *dev)
	struct drm_i915_private *dev_priv = dev->dev_private;

	dev->driver->irq_uninstall(dev);
	dev_priv->pm.irqs_disabled = true;
	dev_priv->pm._irqs_disabled = true;
}

/* Restore interrupts so we can recover from runtime PM. */
@@ -4782,7 +4782,7 @@ void intel_runtime_pm_restore_interrupts(struct drm_device *dev)
{
	struct drm_i915_private *dev_priv = dev->dev_private;

	dev_priv->pm.irqs_disabled = false;
	dev_priv->pm._irqs_disabled = false;
	dev->driver->irq_preinstall(dev);
	dev->driver->irq_postinstall(dev);
}
+1 −1
Original line number Diff line number Diff line
@@ -7341,7 +7341,7 @@ static void assert_can_disable_lcpll(struct drm_i915_private *dev_priv)
	 * gen-specific and since we only disable LCPLL after we fully disable
	 * the interrupts, the check below should be enough.
	 */
	WARN(!dev_priv->pm.irqs_disabled, "IRQs enabled\n");
	WARN(intel_irqs_enabled(dev_priv), "IRQs enabled\n");
}

static uint32_t hsw_read_dcomp(struct drm_i915_private *dev_priv)
Loading