[PATCH 3/4] drm/xe: Pass flags directly to emit_flush_imm_ggtt

Upadhyay, Tejas tejas.upadhyay at intel.com
Fri Mar 7 12:26:11 UTC 2025



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces at lists.freedesktop.org> On Behalf Of Tvrtko
> Ursulin
> Sent: Friday, March 7, 2025 4:44 PM
> To: intel-xe at lists.freedesktop.org
> Cc: kernel-dev at igalia.com; Tvrtko Ursulin <tvrtko.ursulin at igalia.com>; Roper,
> Matthew D <matthew.d.roper at intel.com>
> Subject: [PATCH 3/4] drm/xe: Pass flags directly to emit_flush_imm_ggtt
> 
> 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 3d1b4d3d788f..917fc16de866 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;
> @@ -254,7 +253,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),
> @@ -270,7 +269,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);
> 
> @@ -316,7 +315,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);
> 
> @@ -333,7 +332,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);

LGTM,
Reviewed-by: Tejas Upadhyay <tejas.upadhyay at intel.com>

> 
>  	i = emit_user_interrupt(dw, i);
> 
> --
> 2.48.0



More information about the Intel-xe mailing list