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.

Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/i915/i915_driver.c | 1 +
 drivers/gpu/drm/i915/i915_irq.c    | 3 ---
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_driver.c 
b/drivers/gpu/drm/i915/i915_driver.c
index f06b2e8cf7d4..b8a4b50baf83 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -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);
 
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 30ce462e92ab..932409b943ad 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -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;
 }
 
-- 
2.47.3

Reply via email to