drm/i915/guc: Move guc_blocked fence to struct guc_state
authorMatthew Brost <matthew.brost@intel.com>
Thu, 9 Sep 2021 16:47:37 +0000 (09:47 -0700)
committerJohn Harrison <John.C.Harrison@Intel.com>
Mon, 13 Sep 2021 18:30:45 +0000 (11:30 -0700)
Move guc_blocked fence to struct guc_state as the lock which protects
the fence lives there.

s/ce->guc_blocked/ce->guc_state.blocked/g

v2:
 (Daniele)
  - s/blocked_fence/blocked/g

Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210909164744.31249-17-matthew.brost@intel.com
drivers/gpu/drm/i915/gt/intel_context.c
drivers/gpu/drm/i915/gt/intel_context_types.h
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c

index 745e84c72c908f8a741f32e5f01e28f6c41da205..3048267ddc7e4ee8c2436b720460eecc3c88d36c 100644 (file)
@@ -405,8 +405,9 @@ intel_context_init(struct intel_context *ce, struct intel_engine_cs *engine)
         * Initialize fence to be complete as this is expected to be complete
         * unless there is a pending schedule disable outstanding.
         */
-       i915_sw_fence_init(&ce->guc_blocked, sw_fence_dummy_notify);
-       i915_sw_fence_commit(&ce->guc_blocked);
+       i915_sw_fence_init(&ce->guc_state.blocked,
+                          sw_fence_dummy_notify);
+       i915_sw_fence_commit(&ce->guc_state.blocked);
 
        i915_active_init(&ce->active,
                         __intel_context_active, __intel_context_retire, 0);
index 3a73f31178734e374d846a7fe908d644d739c64d..5aecb9038b5bd94f4ddb1e312ad5fc81d2512250 100644 (file)
@@ -167,6 +167,8 @@ struct intel_context {
                 * fence related to GuC submission
                 */
                struct list_head fences;
+               /* GuC context blocked fence */
+               struct i915_sw_fence blocked;
        } guc_state;
 
        struct {
@@ -190,9 +192,6 @@ struct intel_context {
         */
        struct list_head guc_id_link;
 
-       /* GuC context blocked fence */
-       struct i915_sw_fence guc_blocked;
-
        /*
         * GuC priority management
         */
index 4b7ccf9730a3177c27d0980a041380db0b6acee0..99f22311433123d34f3715d7cb36f1c136659874 100644 (file)
@@ -1502,24 +1502,24 @@ static void guc_blocked_fence_complete(struct intel_context *ce)
 {
        lockdep_assert_held(&ce->guc_state.lock);
 
-       if (!i915_sw_fence_done(&ce->guc_blocked))
-               i915_sw_fence_complete(&ce->guc_blocked);
+       if (!i915_sw_fence_done(&ce->guc_state.blocked))
+               i915_sw_fence_complete(&ce->guc_state.blocked);
 }
 
 static void guc_blocked_fence_reinit(struct intel_context *ce)
 {
        lockdep_assert_held(&ce->guc_state.lock);
-       GEM_BUG_ON(!i915_sw_fence_done(&ce->guc_blocked));
+       GEM_BUG_ON(!i915_sw_fence_done(&ce->guc_state.blocked));
 
        /*
         * This fence is always complete unless a pending schedule disable is
         * outstanding. We arm the fence here and complete it when we receive
         * the pending schedule disable complete message.
         */
-       i915_sw_fence_fini(&ce->guc_blocked);
-       i915_sw_fence_reinit(&ce->guc_blocked);
-       i915_sw_fence_await(&ce->guc_blocked);
-       i915_sw_fence_commit(&ce->guc_blocked);
+       i915_sw_fence_fini(&ce->guc_state.blocked);
+       i915_sw_fence_reinit(&ce->guc_state.blocked);
+       i915_sw_fence_await(&ce->guc_state.blocked);
+       i915_sw_fence_commit(&ce->guc_state.blocked);
 }
 
 static u16 prep_context_pending_disable(struct intel_context *ce)
@@ -1559,7 +1559,7 @@ static struct i915_sw_fence *guc_context_block(struct intel_context *ce)
                if (enabled)
                        clr_context_enabled(ce);
                spin_unlock_irqrestore(&ce->guc_state.lock, flags);
-               return &ce->guc_blocked;
+               return &ce->guc_state.blocked;
        }
 
        /*
@@ -1575,7 +1575,7 @@ static struct i915_sw_fence *guc_context_block(struct intel_context *ce)
        with_intel_runtime_pm(runtime_pm, wakeref)
                __guc_context_sched_disable(guc, ce, guc_id);
 
-       return &ce->guc_blocked;
+       return &ce->guc_state.blocked;
 }
 
 #define SCHED_STATE_MULTI_BLOCKED_MASK \