drm/i915/irq: Move irqs_enabled out of runtime_pm
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 12 Sep 2024 17:25:38 +0000 (13:25 -0400)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 16 Sep 2024 16:08:24 +0000 (12:08 -0400)
This information is used in many places and it doesn't have
anything to do with runtime_pm directly. Let's move it to
the driver, where it belongs.

Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240912172539.418957-2-rodrigo.vivi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_runtime_pm.h

index aa30003..def3ca1 100644 (file)
@@ -234,6 +234,7 @@ struct drm_i915_private {
 
        /* protects the irq masks */
        spinlock_t irq_lock;
+       bool irqs_enabled;
 
        /* Sideband mailbox protection */
        struct mutex sb_lock;
index 9f1a6f6..2c0fdb5 100644 (file)
@@ -1404,14 +1404,14 @@ int intel_irq_install(struct drm_i915_private *dev_priv)
         * interrupts as enabled _before_ actually enabling them to avoid
         * special cases in our ordering checks.
         */
-       dev_priv->runtime_pm.irqs_enabled = true;
+       dev_priv->irqs_enabled = true;
 
        intel_irq_reset(dev_priv);
 
        ret = request_irq(irq, intel_irq_handler(dev_priv),
                          IRQF_SHARED, DRIVER_NAME, dev_priv);
        if (ret < 0) {
-               dev_priv->runtime_pm.irqs_enabled = false;
+               dev_priv->irqs_enabled = false;
                return ret;
        }
 
@@ -1437,7 +1437,7 @@ void intel_irq_uninstall(struct drm_i915_private *dev_priv)
         * intel_display_driver_remove() calling us out of sequence.
         * Would be nice if it didn't do that...
         */
-       if (!dev_priv->runtime_pm.irqs_enabled)
+       if (!dev_priv->irqs_enabled)
                return;
 
        intel_irq_reset(dev_priv);
@@ -1445,7 +1445,7 @@ void intel_irq_uninstall(struct drm_i915_private *dev_priv)
        free_irq(irq, dev_priv);
 
        intel_hpd_cancel_work(dev_priv);
-       dev_priv->runtime_pm.irqs_enabled = false;
+       dev_priv->irqs_enabled = false;
 }
 
 /**
@@ -1458,7 +1458,7 @@ void intel_irq_uninstall(struct drm_i915_private *dev_priv)
 void intel_runtime_pm_disable_interrupts(struct drm_i915_private *dev_priv)
 {
        intel_irq_reset(dev_priv);
-       dev_priv->runtime_pm.irqs_enabled = false;
+       dev_priv->irqs_enabled = false;
        intel_synchronize_irq(dev_priv);
 }
 
@@ -1471,14 +1471,14 @@ void intel_runtime_pm_disable_interrupts(struct drm_i915_private *dev_priv)
  */
 void intel_runtime_pm_enable_interrupts(struct drm_i915_private *dev_priv)
 {
-       dev_priv->runtime_pm.irqs_enabled = true;
+       dev_priv->irqs_enabled = true;
        intel_irq_reset(dev_priv);
        intel_irq_postinstall(dev_priv);
 }
 
 bool intel_irqs_enabled(struct drm_i915_private *dev_priv)
 {
-       return dev_priv->runtime_pm.irqs_enabled;
+       return dev_priv->irqs_enabled;
 }
 
 void intel_synchronize_irq(struct drm_i915_private *i915)
index de3579d..796a2dc 100644 (file)
@@ -42,7 +42,6 @@ struct intel_runtime_pm {
        atomic_t wakeref_count;
        struct device *kdev; /* points to i915->drm.dev */
        bool available;
-       bool irqs_enabled;
        bool no_wakeref_tracking;
 
        /*