Commit dc040682 authored by Michael Cheng's avatar Michael Cheng Committed by Matt Roper

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: default avatarMichael Cheng <michael.cheng@intel.com>
Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220321223819.72833-3-michael.cheng@intel.com
parent 055f15e7
...@@ -1650,12 +1650,6 @@ cancel_port_requests(struct intel_engine_execlists * const execlists, ...@@ -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) ...@@ -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) ...@@ -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,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment