OSDN Git Service

drm/i915: fix SFC reset flow
authorDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Thu, 19 Sep 2019 01:53:30 +0000 (18:53 -0700)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 19 Sep 2019 10:04:55 +0000 (11:04 +0100)
commit0d333ac7eb17f0f6c86db66afba70135f11da4a9
tree0c3caf6974f8711778a63569ebfada22b420b9d5
parent56c05de6bd773b96deca379370965c49042b5fbf
drm/i915: fix SFC reset flow

Our assumption that the we can ask the HW to lock the SFC even if not
currently in use does not match the HW commitment. The expectation from
the HW is that SW will not try to lock the SFC if the engine is not
using it and if we do that the behavior is undefined; on ICL the HW
ends up to returning the ack and ignoring our lock request, but this is
not guaranteed and we shouldn't expect it going forward.

Also, failing to get the ack while the SFC is in use means that we can't
cleanly reset it, so fail the engine reset in that scenario.

v2: drop rmw change, keep the log as debug and handle failure (Chris),
    improve comments (Tvrtko).

Reported-by: Owen Zhang <owen.zhang@intel.com>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20190919015330.15435-1-daniele.ceraolospurio@intel.com
drivers/gpu/drm/i915/gt/intel_reset.c