drm/i915/guc: rework guc_add_workqueue_item()

Mostly little optimisations and future-proofing against code breakage.
For instance, if the driver is correctly following the submission
protocol, the "out of space" condition is impossible, so the previous
runtime WARN_ON() is promoted to a GEM_BUG_ON() for a more dramatic
effect in development and less impact in end-user systems.

Similarly we can make alignment checking more stringent and replace
other WARN_ON() conditions that don't relate to the runtime hardware
state with either BUILD_BUG_ON() for compile-time-detectable issues, or
GEM_BUG_ON() for logical "can't happen" errors.

With those changes, we can convert it to void, as suggested by Chris
Wilson, and update the calling code appropriately.

v2:
    Note that we're now putting the request seqno in the "fence_id"
    field of each GuC-work-item, in case it turns up somewhere useful
    (e.g. in a GuC log) [Tvrtko Ursulin].

Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Este commit está contenido en:
Dave Gordon
2016-05-13 15:36:34 +01:00
cometido por Tvrtko Ursulin
padre 551aaecd88
commit 0a31afbc0f
Se han modificado 3 ficheros con 38 adiciones y 38 borrados

Ver fichero

@@ -81,7 +81,7 @@ struct i915_guc_client {
uint32_t unused; /* Was 'wq_head' */
uint32_t no_wq_space;
uint32_t q_fail;
uint32_t q_fail; /* No longer used */
uint32_t b_fail;
int retcode;