drm/i915/gt: Drop invalidate_csb_entries
Drop invalidate_csb_entries and directly call drm_clflush_virt_range. This allows for one less function call, and prevent complier errors when building for non-x86 architectures. v2(Michael Cheng): Drop invalidate_csb_entries function and directly invoke drm_clflush_virt_range. Thanks to Tvrtko for the sugguestion. v3(Michael Cheng): Use correct parameters for drm_clflush_virt_range. Thanks to Tvrtko for pointing this out. v4(Michael Cheng): Simplify &execlists->csb_status[0] to execlists->csb_status. Thanks to Matt Roper for the suggestion. Signed-off-by: Michael Cheng <michael.cheng@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220321223819.72833-3-michael.cheng@intel.com
This commit is contained in:
parent
055f15e7be
commit
dc0406820e
@ -1650,12 +1650,6 @@ cancel_port_requests(struct intel_engine_execlists * const execlists,
|
|||||||
return inactive;
|
return inactive;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void invalidate_csb_entries(const u64 *first, const u64 *last)
|
|
||||||
{
|
|
||||||
clflush((void *)first);
|
|
||||||
clflush((void *)last);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Starting with Gen12, the status has a new format:
|
* Starting with Gen12, the status has a new format:
|
||||||
*
|
*
|
||||||
@ -2003,7 +1997,7 @@ process_csb(struct intel_engine_cs *engine, struct i915_request **inactive)
|
|||||||
* the wash as hardware, working or not, will need to do the
|
* the wash as hardware, working or not, will need to do the
|
||||||
* invalidation before.
|
* invalidation before.
|
||||||
*/
|
*/
|
||||||
invalidate_csb_entries(&buf[0], &buf[num_entries - 1]);
|
drm_clflush_virt_range(&buf[0], num_entries * sizeof(buf[0]));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We assume that any event reflects a change in context flow
|
* We assume that any event reflects a change in context flow
|
||||||
@ -2787,8 +2781,9 @@ static void reset_csb_pointers(struct intel_engine_cs *engine)
|
|||||||
|
|
||||||
/* Check that the GPU does indeed update the CSB entries! */
|
/* Check that the GPU does indeed update the CSB entries! */
|
||||||
memset(execlists->csb_status, -1, (reset_value + 1) * sizeof(u64));
|
memset(execlists->csb_status, -1, (reset_value + 1) * sizeof(u64));
|
||||||
invalidate_csb_entries(&execlists->csb_status[0],
|
drm_clflush_virt_range(execlists->csb_status,
|
||||||
&execlists->csb_status[reset_value]);
|
execlists->csb_size *
|
||||||
|
sizeof(execlists->csb_status));
|
||||||
|
|
||||||
/* Once more for luck and our trusty paranoia */
|
/* Once more for luck and our trusty paranoia */
|
||||||
ENGINE_WRITE(engine, RING_CONTEXT_STATUS_PTR,
|
ENGINE_WRITE(engine, RING_CONTEXT_STATUS_PTR,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user