File tree Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -952,6 +952,20 @@ void intel_gt_invalidate_tlbs(struct intel_gt *gt)
952
952
mutex_lock (& gt -> tlb_invalidate_lock );
953
953
intel_uncore_forcewake_get (uncore , FORCEWAKE_ALL );
954
954
955
+ spin_lock_irq (& uncore -> lock ); /* serialise invalidate with GT reset */
956
+
957
+ for_each_engine (engine , gt , id ) {
958
+ struct reg_and_bit rb ;
959
+
960
+ rb = get_reg_and_bit (engine , regs == gen8_regs , regs , num );
961
+ if (!i915_mmio_reg_offset (rb .reg ))
962
+ continue ;
963
+
964
+ intel_uncore_write_fw (uncore , rb .reg , rb .bit );
965
+ }
966
+
967
+ spin_unlock_irq (& uncore -> lock );
968
+
955
969
for_each_engine (engine , gt , id ) {
956
970
/*
957
971
* HW architecture suggest typical invalidation time at 40us,
@@ -966,7 +980,6 @@ void intel_gt_invalidate_tlbs(struct intel_gt *gt)
966
980
if (!i915_mmio_reg_offset (rb .reg ))
967
981
continue ;
968
982
969
- intel_uncore_write_fw (uncore , rb .reg , rb .bit );
970
983
if (__intel_wait_for_register_fw (uncore ,
971
984
rb .reg , rb .bit , 0 ,
972
985
timeout_us , timeout_ms ,
You can’t perform that action at this time.
0 commit comments