Commit 5ce27d62 authored by Alan Previn's avatar Alan Previn Committed by John Harrison
Browse files
parent 6dc85721
Loading
Loading
Loading
Loading
+27 −22
Original line number Diff line number Diff line
@@ -15,6 +15,32 @@

static void guc_log_copy_debuglogs_for_relay(struct intel_guc_log *log);

static u32 intel_guc_log_size(struct intel_guc_log *log)
{
	/*
	 *  GuC Log buffer Layout:
	 *
	 *  NB: Ordering must follow "enum guc_log_buffer_type".
	 *
	 *  +===============================+ 00B
	 *  |      Debug state header       |
	 *  +-------------------------------+ 32B
	 *  |    Crash dump state header    |
	 *  +-------------------------------+ 64B
	 *  |     Capture state header      |
	 *  +-------------------------------+ 96B
	 *  |                               |
	 *  +===============================+ PAGE_SIZE (4KB)
	 *  |          Debug logs           |
	 *  +===============================+ + DEBUG_SIZE
	 *  |        Crash Dump logs        |
	 *  +===============================+ + CRASH_SIZE
	 *  |         Capture logs          |
	 *  +===============================+ + CAPTURE_SIZE
	 */
	return PAGE_SIZE + CRASH_BUFFER_SIZE + DEBUG_BUFFER_SIZE + CAPTURE_BUFFER_SIZE;
}

/**
 * DOC: GuC firmware log
 *
@@ -461,32 +487,11 @@ int intel_guc_log_create(struct intel_guc_log *log)

	GEM_BUG_ON(log->vma);

	/*
	 *  GuC Log buffer Layout
	 * (this ordering must follow "enum guc_log_buffer_type" definition)
	 *
	 *  +===============================+ 00B
	 *  |      Debug state header       |
	 *  +-------------------------------+ 32B
	 *  |    Crash dump state header    |
	 *  +-------------------------------+ 64B
	 *  |     Capture state header      |
	 *  +-------------------------------+ 96B
	 *  |                               |
	 *  +===============================+ PAGE_SIZE (4KB)
	 *  |          Debug logs           |
	 *  +===============================+ + DEBUG_SIZE
	 *  |        Crash Dump logs        |
	 *  +===============================+ + CRASH_SIZE
	 *  |         Capture logs          |
	 *  +===============================+ + CAPTURE_SIZE
	 */
	if (intel_guc_capture_output_min_size_est(guc) > CAPTURE_BUFFER_SIZE)
		DRM_WARN("GuC log buffer for state_capture maybe too small. %d < %d\n",
			 CAPTURE_BUFFER_SIZE, intel_guc_capture_output_min_size_est(guc));

	guc_log_size = PAGE_SIZE + CRASH_BUFFER_SIZE + DEBUG_BUFFER_SIZE +
		       CAPTURE_BUFFER_SIZE;
	guc_log_size = intel_guc_log_size(log);

	vma = intel_guc_allocate_vma(guc, guc_log_size);
	if (IS_ERR(vma)) {