Skip to content

Commit

Permalink
drm/i915/tgl: Add extra hdc flush workaround
Browse files Browse the repository at this point in the history
In order to ensure constant caches are invalidated
properly with a0, we need extra hdc flush after invalidation.

v2: use IS_TGL_REVID (Chris)

References: HSDES#1604544889
Signed-off-by: Mika Kuoppala <[email protected]>
Reviewed-by: Chris Wilson <[email protected]>
Signed-off-by: Chris Wilson <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
  • Loading branch information
mikuint authored and ickle committed Oct 15, 2019
1 parent 4aa0b5d commit 36a6b5d
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions drivers/gpu/drm/i915/gt/intel_lrc.c
Original file line number Diff line number Diff line change
Expand Up @@ -3253,6 +3253,26 @@ static int gen12_emit_flush_render(struct i915_request *request,

*cs++ = preparser_disable(false);
intel_ring_advance(request, cs);

/*
* Wa_1604544889:tgl
*/
if (IS_TGL_REVID(request->i915, TGL_REVID_A0, TGL_REVID_A0)) {
flags = 0;
flags |= PIPE_CONTROL_CS_STALL;
flags |= PIPE_CONTROL_HDC_PIPELINE_FLUSH;

flags |= PIPE_CONTROL_STORE_DATA_INDEX;
flags |= PIPE_CONTROL_QW_WRITE;

cs = intel_ring_begin(request, 6);
if (IS_ERR(cs))
return PTR_ERR(cs);

cs = gen8_emit_pipe_control(cs, flags,
LRC_PPHWSP_SCRATCH_ADDR);
intel_ring_advance(request, cs);
}
}

return 0;
Expand Down

0 comments on commit 36a6b5d

Please sign in to comment.