]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915: relocate intel_hpd_cancel_work() call
authorJani Nikula <jani.nikula@intel.com>
Sat, 16 May 2026 10:18:52 +0000 (13:18 +0300)
committerJani Nikula <jani.nikula@intel.com>
Tue, 26 May 2026 13:21:16 +0000 (16:21 +0300)
The i915 and xe calls to display, in particular for
probe/cleanup/suspend/resume, need to be unified. It does not help to
have the related calls scattered around. As a small step forward,
relocate the intel_hpd_cancel_work() call from intel_irq_uninstall() to
i915_driver_remove().

Note that the other intel_irq_uninstall() call sites don't need the
call, as they're on error paths where hotplug hasn't been enabled yet.

Reviewed-by: MichaƂ Grzelak <michal.grzelak@intel.com>
Link: https://patch.msgid.link/20260516101852.1373108-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_driver.c
drivers/gpu/drm/i915/i915_irq.c

index 0363dbd231b75594f94015cde0adc7b41dca378e..7f792b537f4fe64225add712c39af4aa37f5fe8f 100644 (file)
@@ -971,6 +971,7 @@ void i915_driver_remove(struct drm_i915_private *i915)
        intel_display_driver_remove(display);
 
        intel_irq_uninstall(i915);
+       intel_hpd_cancel_work(display);
 
        intel_display_driver_remove_noirq(display);
 
index 30ce462e92ab8f0686584ac323658d21ec9af93b..932409b943ad252c2ad63b91384385fba0936a99 100644 (file)
@@ -37,7 +37,6 @@
 #include <drm/intel/intel_gmd_interrupt_regs.h>
 
 #include "display/intel_display_irq.h"
-#include "display/intel_hotplug.h"
 
 #include "gt/intel_breadcrumbs.h"
 #include "gt/intel_gt.h"
@@ -1140,7 +1139,6 @@ int intel_irq_install(struct drm_i915_private *dev_priv)
  */
 void intel_irq_uninstall(struct drm_i915_private *dev_priv)
 {
-       struct intel_display *display = dev_priv->display;
        int irq = to_pci_dev(dev_priv->drm.dev)->irq;
 
        if (drm_WARN_ON(&dev_priv->drm, !dev_priv->irqs_enabled))
@@ -1150,7 +1148,6 @@ void intel_irq_uninstall(struct drm_i915_private *dev_priv)
 
        free_irq(irq, dev_priv);
 
-       intel_hpd_cancel_work(display);
        dev_priv->irqs_enabled = false;
 }