mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
drm/i915/gt: Invalidate TLB of the OA unit at TLB invalidations
Ensure that the TLB of the OA unit is also invalidated on gen12 HW, as just invalidating the TLB of an engine is not enough. Cc: stable@vger.kernel.org Fixes:7938d61591("drm/i915: Flush TLBs before releasing backing store") Signed-off-by: Chris Wilson <chris.p.wilson@intel.com> Cc: Fei Yang <fei.yang@intel.com> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Acked-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/59724d9f5cf1e93b1620d01b8332ac991555283d.1658924372.git.mchehab@kernel.org (cherry picked from commitdfc83de118) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
db100e28fd
commit
180abeb2c5
|
|
@ -11,6 +11,7 @@
|
|||
#include "pxp/intel_pxp.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_perf_oa_regs.h"
|
||||
#include "intel_context.h"
|
||||
#include "intel_engine_pm.h"
|
||||
#include "intel_engine_regs.h"
|
||||
|
|
@ -969,6 +970,15 @@ void intel_gt_invalidate_tlbs(struct intel_gt *gt)
|
|||
awake |= engine->mask;
|
||||
}
|
||||
|
||||
/* Wa_2207587034:tgl,dg1,rkl,adl-s,adl-p */
|
||||
if (awake &&
|
||||
(IS_TIGERLAKE(i915) ||
|
||||
IS_DG1(i915) ||
|
||||
IS_ROCKETLAKE(i915) ||
|
||||
IS_ALDERLAKE_S(i915) ||
|
||||
IS_ALDERLAKE_P(i915)))
|
||||
intel_uncore_write_fw(uncore, GEN12_OA_TLB_INV_CR, 1);
|
||||
|
||||
spin_unlock_irq(&uncore->lock);
|
||||
|
||||
for_each_engine_masked(engine, gt, awake, tmp) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user