summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Previn <alan.previn.teres.alexis@intel.com>2022-06-06 17:23:14 -0700
committerJohn Harrison <John.C.Harrison@Intel.com>2022-07-06 14:38:56 -0700
commitb94a1a207de5e06a55b5a8259073fd8d1637f093 (patch)
tree52a2ff49b66a83ed8c427bb1d91b229b88d80843
parent1926a6b75954fc1a8b44d10bd0c67db957b78cf7 (diff)
drm/i915/guc: Asynchronous flush of GuC log regions
Both error-capture and relay-logging mechanism use the GuC log infrastructure. That means the KMD must send a log flush complete notification back to GuC after reading the data out. This call is currently being sent synchronously. However, synchronous H2Gs cause problems when the system is backed up. There is no need for this to be synchronous. The KMD wasn't even looking at the return status from it. So make it asynchronous and then there is no issue about time outs. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: John Harrison <John.C.Harrison@Intel.com> Signed-off-by: John Harrison <John.C.Harrison@Intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220607002314.1451656-2-alan.previn.teres.alexis@intel.com
-rw-r--r--drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c3
-rw-r--r--drivers/gpu/drm/i915/gt/uc/intel_guc_log.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
index 97a32e610c30..ffcd7a35f8df 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
@@ -1261,7 +1261,8 @@ static int __guc_capture_flushlog_complete(struct intel_guc *guc)
GUC_CAPTURE_LOG_BUFFER
};
- return intel_guc_send(guc, action, ARRAY_SIZE(action));
+ return intel_guc_send_nb(guc, action, ARRAY_SIZE(action), 0);
+
}
static void __guc_capture_process_output(struct intel_guc *guc)
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
index 78d2989fe917..7f1bc8af6b82 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
@@ -31,7 +31,7 @@ static int guc_action_flush_log_complete(struct intel_guc *guc)
GUC_DEBUG_LOG_BUFFER
};
- return intel_guc_send(guc, action, ARRAY_SIZE(action));
+ return intel_guc_send_nb(guc, action, ARRAY_SIZE(action), 0);
}
static int guc_action_flush_log(struct intel_guc *guc)