drm/i915/guc: Use correct lock for CT event handler
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Fri, 20 Nov 2020 09:56:36 +0000 (09:56 +0000)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Tue, 24 Nov 2020 09:11:09 +0000 (09:11 +0000)
CT event handler is called under the gt->irq_lock from the interrupt
handling paths so make it the same from the init path. I don't think this
mismatch caused any functional issue but we need to wean the code of the
global i915->irq_lock.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201120095636.1987395-2-tvrtko.ursulin@linux.intel.com
drivers/gpu/drm/i915/gt/uc/intel_uc.c

index 220626c..6a04528 100644 (file)
@@ -203,7 +203,8 @@ static void guc_disable_interrupts(struct intel_guc *guc)
 
 static int guc_enable_communication(struct intel_guc *guc)
 {
-       struct drm_i915_private *i915 = guc_to_gt(guc)->i915;
+       struct intel_gt *gt = guc_to_gt(guc);
+       struct drm_i915_private *i915 = gt->i915;
        int ret;
 
        GEM_BUG_ON(guc_communication_enabled(guc));
@@ -223,9 +224,9 @@ static int guc_enable_communication(struct intel_guc *guc)
        guc_enable_interrupts(guc);
 
        /* check for CT messages received before we enabled interrupts */
-       spin_lock_irq(&i915->irq_lock);
+       spin_lock_irq(&gt->irq_lock);
        intel_guc_ct_event_handler(&guc->ct);
-       spin_unlock_irq(&i915->irq_lock);
+       spin_unlock_irq(&gt->irq_lock);
 
        drm_dbg(&i915->drm, "GuC communication enabled\n");