drm/i915/guc: handle GuC messages received with CTB disabled
authorDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Fri, 21 Jun 2019 18:21:23 +0000 (11:21 -0700)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 21 Jun 2019 18:47:34 +0000 (19:47 +0100)
commit2ae70d28f27f6a5358541845c623760754d63ece
treeac55d4f46304fb02f8fdfffe8905106f085428ca
parente29cc1d7e820d662d2d73b35281b70f01a24610b
drm/i915/guc: handle GuC messages received with CTB disabled

There is a very small chance of triggering a log flush event when
enabling or disabling CT buffers. Events triggered while CT buffers
are disabled are logged in the SCRATCH_15 register using the same bits
used in the CT message payload. Since our communication channel with
GuC is turned off, we can save the message and handle it after we turn
it back on.
GuC should be idle and not generate more events in the meantime because
we're not talking to it.

v2: clear the mmio register on stop_communication as well (Chris)

Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-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/20190621182123.31368-2-daniele.ceraolospurio@intel.com
drivers/gpu/drm/i915/intel_guc.h
drivers/gpu/drm/i915/intel_uc.c