[PATCH 03/12] drm/xe: Pass flags directly to emit_flush_imm_ggtt
Matt Roper
matthew.d.roper at intel.com
Thu Feb 27 23:47:35 UTC 2025
On Fri, Feb 21, 2025 at 10:17:22AM +0000, Tvrtko Ursulin wrote:
> This is more readable than the nameless booleans and will also come handy
> later.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
> ---
> drivers/gpu/drm/xe/xe_ring_ops.c | 13 ++++++-------
> 1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_ring_ops.c b/drivers/gpu/drm/xe/xe_ring_ops.c
> index a2d1fb8f0adf..21520ff97599 100644
> --- a/drivers/gpu/drm/xe/xe_ring_ops.c
> +++ b/drivers/gpu/drm/xe/xe_ring_ops.c
> @@ -90,11 +90,10 @@ static int emit_flush_dw(u32 *dw, int i)
> return i;
> }
>
> -static int emit_flush_imm_ggtt(u32 addr, u32 value, bool invalidate_tlb,
> - u32 *dw, int i)
> +static int emit_flush_imm_ggtt(u32 addr, u32 value, u32 flags, u32 *dw, int i)
> {
> dw[i++] = MI_FLUSH_DW | MI_FLUSH_DW_OP_STOREDW | MI_FLUSH_IMM_DW |
> - (invalidate_tlb ? MI_INVALIDATE_TLB : 0);
> + flags;
> dw[i++] = addr | MI_FLUSH_DW_USE_GTT;
> dw[i++] = 0;
> dw[i++] = value;
> @@ -250,7 +249,7 @@ static void __emit_job_gen12_simple(struct xe_sched_job *job, struct xe_lrc *lrc
> if (job->ring_ops_flush_tlb) {
> dw[i++] = preparser_disable(true);
> i = emit_flush_imm_ggtt(xe_lrc_start_seqno_ggtt_addr(lrc),
> - seqno, true, dw, i);
> + seqno, MI_INVALIDATE_TLB, dw, i);
> dw[i++] = preparser_disable(false);
> } else {
> i = emit_store_imm_ggtt(xe_lrc_start_seqno_ggtt_addr(lrc),
> @@ -266,7 +265,7 @@ static void __emit_job_gen12_simple(struct xe_sched_job *job, struct xe_lrc *lrc
> dw, i);
> }
>
> - i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i);
> + i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, 0, dw, i);
>
> i = emit_user_interrupt(dw, i);
>
> @@ -312,7 +311,7 @@ static void __emit_job_gen12_video(struct xe_sched_job *job, struct xe_lrc *lrc,
>
> if (job->ring_ops_flush_tlb)
> i = emit_flush_imm_ggtt(xe_lrc_start_seqno_ggtt_addr(lrc),
> - seqno, true, dw, i);
> + seqno, MI_INVALIDATE_TLB, dw, i);
>
> dw[i++] = preparser_disable(false);
>
> @@ -329,7 +328,7 @@ static void __emit_job_gen12_video(struct xe_sched_job *job, struct xe_lrc *lrc,
> dw, i);
> }
>
> - i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i);
> + i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, 0, dw, i);
>
> i = emit_user_interrupt(dw, i);
>
> --
> 2.48.0
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
More information about the Intel-xe
mailing list