[PATCH 1/2] drm/xe: Move DSB l2 flush to a more sensible place
Lucas De Marchi
lucas.demarchi at intel.com
Tue Jun 24 17:47:53 UTC 2025
On Wed, Jun 18, 2025 at 02:06:39PM -0500, Lucas De Marchi wrote:
>On Fri, Jun 06, 2025 at 11:45:47AM +0100, Matthew Auld wrote:
>>From: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
>>
>>Flushing l2 is only needed after all data has been written.
>>
>>Fixes: 01570b446939 ("drm/xe/bmg: implement Wa_16023588340")
>>Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
>>Cc: Matthew Auld <matthew.auld at intel.com>
>>Cc: <stable at vger.kernel.org> # v6.12+
>>Reviewed-by: Matthew Auld <matthew.auld at intel.com>
>>Signed-off-by: Matthew Auld <matthew.auld at intel.com>
>>---
>>drivers/gpu/drm/xe/display/xe_dsb_buffer.c | 11 ++++-------
>>1 file changed, 4 insertions(+), 7 deletions(-)
>>
>>diff --git a/drivers/gpu/drm/xe/display/xe_dsb_buffer.c b/drivers/gpu/drm/xe/display/xe_dsb_buffer.c
>>index f95375451e2f..9f941fc2e36b 100644
>>--- a/drivers/gpu/drm/xe/display/xe_dsb_buffer.c
>>+++ b/drivers/gpu/drm/xe/display/xe_dsb_buffer.c
>>@@ -17,10 +17,7 @@ u32 intel_dsb_buffer_ggtt_offset(struct intel_dsb_buffer *dsb_buf)
>>
>>void intel_dsb_buffer_write(struct intel_dsb_buffer *dsb_buf, u32 idx, u32 val)
>>{
>>- struct xe_device *xe = dsb_buf->vma->bo->tile->xe;
>>-
>> iosys_map_wr(&dsb_buf->vma->bo->vmap, idx * 4, u32, val);
>>- xe_device_l2_flush(xe);
>>}
>>
>>u32 intel_dsb_buffer_read(struct intel_dsb_buffer *dsb_buf, u32 idx)
>>@@ -30,12 +27,9 @@ u32 intel_dsb_buffer_read(struct intel_dsb_buffer *dsb_buf, u32 idx)
>>
>>void intel_dsb_buffer_memset(struct intel_dsb_buffer *dsb_buf, u32 idx, u32 val, size_t size)
>>{
>>- struct xe_device *xe = dsb_buf->vma->bo->tile->xe;
>>-
>> WARN_ON(idx > (dsb_buf->buf_size - size) / sizeof(*dsb_buf->cmd_buf));
>>
>> iosys_map_memset(&dsb_buf->vma->bo->vmap, idx * 4, val, size);
>>- xe_device_l2_flush(xe);
>>}
>>
>>bool intel_dsb_buffer_create(struct intel_crtc *crtc, struct intel_dsb_buffer *dsb_buf, size_t size)
>>@@ -74,9 +68,12 @@ void intel_dsb_buffer_cleanup(struct intel_dsb_buffer *dsb_buf)
>>
>>void intel_dsb_buffer_flush_map(struct intel_dsb_buffer *dsb_buf)
>
>assuming the calls to this function are already in the right place,
>
>Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>
>
>... but it seems quite fragile as we are exposing the other the
>functions writing to it. Not something introduced here though.
applied both patches to drm-xe-next. Thanks.
Lucas De Marchi
More information about the Intel-xe
mailing list