With enabled CT, instead of programming SCRATCH 15 register with the Guc to host message, Guc will send us CT request. Content of the data[1] of this message follows format of the data in scratch register. Signed-off-by: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx> Cc: Oscar Mateo <oscar.mateo@xxxxxxxxx> --- drivers/gpu/drm/i915/intel_guc_ct.c | 3 +++ drivers/gpu/drm/i915/intel_uc.c | 7 +++++++ drivers/gpu/drm/i915/intel_uc.h | 1 + 3 files changed, 11 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_guc_ct.c b/drivers/gpu/drm/i915/intel_guc_ct.c index 75cd7af..9f7fc5e 100644 --- a/drivers/gpu/drm/i915/intel_guc_ct.c +++ b/drivers/gpu/drm/i915/intel_guc_ct.c @@ -658,6 +658,9 @@ static bool guc_process_incoming_requests(struct intel_guc *guc) len = ct_header_get_len(header) + 1; /* also count header dw */ switch (action) { + case INTEL_GUC_ACTION_DEFAULT: + intel_guc_process_default_action(guc, request->data[1]); + break; default: DRM_ERROR("CT: unexpected request %*phn\n", 4*len, request->data); diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c index 258e0d0..27758ce 100644 --- a/drivers/gpu/drm/i915/intel_uc.c +++ b/drivers/gpu/drm/i915/intel_uc.c @@ -596,3 +596,10 @@ int intel_guc_sample_forcewake(struct intel_guc *guc) return intel_guc_send(guc, action, ARRAY_SIZE(action)); } + +void intel_guc_process_default_action(struct intel_guc *guc, u32 msg) +{ + if (msg & (INTEL_GUC_RECV_MSG_CRASH_DUMP_POSTED | + INTEL_GUC_RECV_MSG_FLUSH_LOG_BUFFER)) + intel_guc_log_flush(guc); +} diff --git a/drivers/gpu/drm/i915/intel_uc.h b/drivers/gpu/drm/i915/intel_uc.h index 6f20e66..2a8394b 100644 --- a/drivers/gpu/drm/i915/intel_uc.h +++ b/drivers/gpu/drm/i915/intel_uc.h @@ -230,6 +230,7 @@ void intel_uc_fini_fw(struct drm_i915_private *dev_priv); int intel_uc_init_hw(struct drm_i915_private *dev_priv); void intel_uc_fini_hw(struct drm_i915_private *dev_priv); void intel_guc_notification_handler(struct intel_guc *guc); +void intel_guc_process_default_action(struct intel_guc *guc, u32 msg); int intel_guc_sample_forcewake(struct intel_guc *guc); int intel_guc_send_nop(struct intel_guc *guc, const u32 *action, u32 len, u32 *response); int intel_guc_send_mmio(struct intel_guc *guc, const u32 *action, u32 len, u32 *response); -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx