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 @@ -1209,6 +1209,20 @@ void intel_gt_invalidate_tlbs(struct intel_gt *gt)
1209
1209
mutex_lock (& gt -> tlb_invalidate_lock );
1210
1210
intel_uncore_forcewake_get (uncore , FORCEWAKE_ALL );
1211
1211
1212
+ spin_lock_irq (& uncore -> lock ); /* serialise invalidate with GT reset */
1213
+
1214
+ for_each_engine (engine , gt , id ) {
1215
+ struct reg_and_bit rb ;
1216
+
1217
+ rb = get_reg_and_bit (engine , regs == gen8_regs , regs , num );
1218
+ if (!i915_mmio_reg_offset (rb .reg ))
1219
+ continue ;
1220
+
1221
+ intel_uncore_write_fw (uncore , rb .reg , rb .bit );
1222
+ }
1223
+
1224
+ spin_unlock_irq (& uncore -> lock );
1225
+
1212
1226
for_each_engine (engine , gt , id ) {
1213
1227
/*
1214
1228
* HW architecture suggest typical invalidation time at 40us,
@@ -1223,7 +1237,6 @@ void intel_gt_invalidate_tlbs(struct intel_gt *gt)
1223
1237
if (!i915_mmio_reg_offset (rb .reg ))
1224
1238
continue ;
1225
1239
1226
- intel_uncore_write_fw (uncore , rb .reg , rb .bit );
1227
1240
if (__intel_wait_for_register_fw (uncore ,
1228
1241
rb .reg , rb .bit , 0 ,
1229
1242
timeout_us , timeout_ms ,
You can’t perform that action at this time.
0 commit comments