[PATCH 2/3] drm/i915/irq: Move irqs_enabled out of runtime_pm

Cavitt, Jonathan jonathan.cavitt at intel.com
Thu Sep 12 20:03:54 UTC 2024


-----Original Message-----
From: Intel-gfx <intel-gfx-bounces at lists.freedesktop.org> On Behalf Of Rodrigo Vivi
Sent: Thursday, September 12, 2024 10:26 AM
To: intel-gfx at lists.freedesktop.org
Cc: Vivi, Rodrigo <rodrigo.vivi at intel.com>
Subject: [PATCH 2/3] drm/i915/irq: Move irqs_enabled out of runtime_pm
> 
> 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.
> 
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>

I almost think it would be better to swap the ordering of this patch
and the previous one, so that the first patch would move all the
functions over to using the driver version of irqs_enabled, while the
second patch would remove the duplicates.

Or perhaps the two patches could be merged?

Not blocking, just a suggestion.

Reviewed-by: Jonathan Cavitt <jonathan.cavitt at intel.com>
-Jonathan Cavitt

> ---
>  drivers/gpu/drm/i915/i915_drv.h         |  1 +
>  drivers/gpu/drm/i915/i915_irq.c         | 14 +++++++-------
>  drivers/gpu/drm/i915/intel_runtime_pm.h |  1 -
>  3 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index aa3000349116..def3ca135406 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -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;
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 9f1a6f692dd1..2c0fdb5e05a6 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -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)
> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.h b/drivers/gpu/drm/i915/intel_runtime_pm.h
> index de3579d399e1..796a2dcb307e 100644
> --- a/drivers/gpu/drm/i915/intel_runtime_pm.h
> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.h
> @@ -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;
>  
>  	/*
> -- 
> 2.46.0
> 
> 


More information about the Intel-gfx mailing list