1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2022 Intel Corporation
4 */
5
6#ifndef _XE_GUC_LOG_TYPES_H_
7#define _XE_GUC_LOG_TYPES_H_
8
9#include <linux/types.h>
10#include "abi/guc_log_abi.h"
11
12#include "xe_uc_fw_types.h"
13
14struct xe_bo;
15
16/**
17 * struct xe_guc_log_snapshot:
18 * Capture of the GuC log plus various state useful for decoding the log
19 */
20struct xe_guc_log_snapshot {
21 /** @size: Size in bytes of the @copy allocation */
22 size_t size;
23 /** @copy: Host memory copy of the log buffer for later dumping, split into chunks */
24 void **copy;
25 /** @num_chunks: Number of chunks within @copy */
26 int num_chunks;
27 /** @ktime: Kernel time the snapshot was taken */
28 u64 ktime;
29 /** @stamp: GuC timestamp at which the snapshot was taken */
30 u64 stamp;
31 /** @level: GuC log verbosity level */
32 u32 level;
33 /** @ver_found: GuC firmware version */
34 struct xe_uc_fw_version ver_found;
35 /** @ver_want: GuC firmware version that driver expected */
36 struct xe_uc_fw_version ver_want;
37 /** @path: Path of GuC firmware blob */
38 const char *path;
39};
40
41/**
42 * struct xe_guc_log - GuC log
43 */
44struct xe_guc_log {
45 /** @level: GuC log level */
46 u32 level;
47 /** @bo: Xe BO for GuC log */
48 struct xe_bo *bo;
49 /** @stats: logging related stats */
50 struct {
51 u32 sampled_overflow;
52 u32 overflow;
53 u32 flush;
54 } stats[GUC_LOG_BUFFER_TYPE_MAX];
55};
56
57#endif
58

source code of linux/drivers/gpu/drm/xe/xe_guc_log_types.h