mirror of
https://github.com/torvalds/linux.git
synced 2026-04-30 12:32:31 -04:00
Fix kernel-doc warnings on struct guc_lfd_file_header:
Warning: ../drivers/gpu/drm/xe/abi/guc_lfd_abi.h:168 expecting prototype
for struct guc_logfile_header. Prototype was for struct
guc_lfd_file_header instead
Fixes: 7eeb0e5408 ("drm/xe/guc: Add LFD related abi definitions")
Cc: Zhanjun Dong <zhanjun.dong@intel.com>
Cc: Julia Filipchuk <julia.filipchuk@intel.com>
Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Zhanjun Dong <zhanjun.dong@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patch.msgid.link/20260107155401.2379127-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
171 lines
5.4 KiB
C
171 lines
5.4 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2025 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _ABI_GUC_LFD_ABI_H_
|
|
#define _ABI_GUC_LFD_ABI_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
#include "guc_lic_abi.h"
|
|
|
|
/* The current major version of GuC-Log-File format. */
|
|
#define GUC_LFD_FORMAT_VERSION_MAJOR 0x0001
|
|
/* The current minor version of GuC-Log-File format. */
|
|
#define GUC_LFD_FORMAT_VERSION_MINOR 0x0000
|
|
|
|
/** enum guc_lfd_type - Log format descriptor type */
|
|
enum guc_lfd_type {
|
|
/**
|
|
* @GUC_LFD_TYPE_FW_REQUIRED_RANGE_START: Start of range for
|
|
* required LFDs from GuC
|
|
* @GUC_LFD_TYPE_FW_VERSION: GuC Firmware Version structure.
|
|
* @GUC_LFD_TYPE_GUC_DEVICE_ID: GuC microcontroller device ID.
|
|
* @GUC_LFD_TYPE_TSC_FREQUENCY: Frequency of GuC timestamps.
|
|
* @GUC_LFD_TYPE_GMD_ID: HW GMD ID.
|
|
* @GUC_LFD_TYPE_BUILD_PLATFORM_ID: GuC build platform ID.
|
|
* @GUC_LFD_TYPE_FW_REQUIRED_RANGE_END: End of range for
|
|
* required LFDs from GuC
|
|
*/
|
|
GUC_LFD_TYPE_FW_REQUIRED_RANGE_START = 0x1,
|
|
GUC_LFD_TYPE_FW_VERSION = 0x1,
|
|
GUC_LFD_TYPE_GUC_DEVICE_ID = 0x2,
|
|
GUC_LFD_TYPE_TSC_FREQUENCY = 0x3,
|
|
GUC_LFD_TYPE_GMD_ID = 0x4,
|
|
GUC_LFD_TYPE_BUILD_PLATFORM_ID = 0x5,
|
|
GUC_LFD_TYPE_FW_REQUIRED_RANGE_END = 0x1FFF,
|
|
|
|
/**
|
|
* @GUC_LFD_TYPE_FW_OPTIONAL_RANGE_START: Start of range for
|
|
* optional LFDs from GuC
|
|
* @GUC_LFD_TYPE_LOG_EVENTS_BUFFER: Log-event-entries buffer.
|
|
* @GUC_LFD_TYPE_FW_CRASH_DUMP: GuC generated crash-dump blob.
|
|
* @GUC_LFD_TYPE_FW_OPTIONAL_RANGE_END: End of range for
|
|
* optional LFDs from GuC
|
|
*/
|
|
GUC_LFD_TYPE_FW_OPTIONAL_RANGE_START = 0x2000,
|
|
GUC_LFD_TYPE_LOG_EVENTS_BUFFER = 0x2000,
|
|
GUC_LFD_TYPE_FW_CRASH_DUMP = 0x2001,
|
|
GUC_LFD_TYPE_FW_OPTIONAL_RANGE_END = 0x3FFF,
|
|
|
|
/**
|
|
* @GUC_LFD_TYPE_KMD_REQUIRED_RANGE_START: Start of range for
|
|
* required KMD LFDs
|
|
* @GUC_LFD_TYPE_OS_ID: An identifier for the OS.
|
|
* @GUC_LFD_TYPE_KMD_REQUIRED_RANGE_END: End of this range for
|
|
* required KMD LFDs
|
|
*/
|
|
GUC_LFD_TYPE_KMD_REQUIRED_RANGE_START = 0x4000,
|
|
GUC_LFD_TYPE_OS_ID = 0x4000,
|
|
GUC_LFD_TYPE_KMD_REQUIRED_RANGE_END = 0x5FFF,
|
|
|
|
/**
|
|
* @GUC_LFD_TYPE_KMD_OPTIONAL_RANGE_START: Start of range for
|
|
* optional KMD LFDs
|
|
* @GUC_LFD_TYPE_BINARY_SCHEMA_FORMAT: Binary representation of
|
|
* GuC log-events schema.
|
|
* @GUC_LFD_TYPE_HOST_COMMENT: ASCII string containing comments
|
|
* from the host/KMD.
|
|
* @GUC_LFD_TYPE_TIMESTAMP_ANCHOR: A timestamp anchor, to convert
|
|
* between host and GuC timestamp.
|
|
* @GUC_LFD_TYPE_TIMESTAMP_ANCHOR_CONFIG: Timestamp anchor
|
|
* configuration, definition of timestamp frequency and bit width.
|
|
* @GUC_LFD_TYPE_KMD_OPTIONAL_RANGE_END: End of this range for
|
|
* optional KMD LFDs
|
|
*/
|
|
GUC_LFD_TYPE_KMD_OPTIONAL_RANGE_START = 0x6000,
|
|
GUC_LFD_TYPE_BINARY_SCHEMA_FORMAT = 0x6000,
|
|
GUC_LFD_TYPE_HOST_COMMENT = 0x6001,
|
|
GUC_LFD_TYPE_TIMESTAMP_ANCHOR = 0x6002,
|
|
GUC_LFD_TYPE_TIMESTAMP_ANCHOR_CONFIG = 0x6003,
|
|
GUC_LFD_TYPE_KMD_OPTIONAL_RANGE_END = 0x7FFF,
|
|
|
|
/*
|
|
* @GUC_LFD_TYPE_RESERVED_RANGE_START: Start of reserved range
|
|
* @GUC_LFD_TYPE_RESERVED_RANGE_END: End of reserved range
|
|
*/
|
|
GUC_LFD_TYPE_RESERVED_RANGE_START = 0x8000,
|
|
GUC_LFD_TYPE_RESERVED_RANGE_END = 0xFFFF,
|
|
};
|
|
|
|
/** enum guc_lfd_os_type - OS Type LFD-ID */
|
|
enum guc_lfd_os_type {
|
|
/** @GUC_LFD_OS_TYPE_OSID_WIN: Windows OS */
|
|
GUC_LFD_OS_TYPE_OSID_WIN = 0x1,
|
|
/** @GUC_LFD_OS_TYPE_OSID_LIN: Linux OS */
|
|
GUC_LFD_OS_TYPE_OSID_LIN = 0x2,
|
|
/** @GUC_LFD_OS_TYPE_OSID_VMW: VMWare OS */
|
|
GUC_LFD_OS_TYPE_OSID_VMW = 0x3,
|
|
/** @GUC_LFD_OS_TYPE_OSID_OTHER: Other */
|
|
GUC_LFD_OS_TYPE_OSID_OTHER = 0x4,
|
|
};
|
|
|
|
/** struct guc_lfd_data - A generic header structure for all LFD blocks */
|
|
struct guc_lfd_data {
|
|
/** @header: A 32 bits dword, contains multiple bit fields */
|
|
u32 header;
|
|
/* LFD type. See guc_lfd_type */
|
|
#define GUC_LFD_DATA_HEADER_MASK_TYPE GENMASK(31, 16)
|
|
#define GUC_LFD_DATA_HEADER_MASK_MAGIC GENMASK(15, 0)
|
|
|
|
/** @data_count: Number of dwords the `data` field contains. */
|
|
u32 data_count;
|
|
/** @data: Data defined by GUC_LFD_DATA_HEADER_MASK_TYPE */
|
|
u32 data[] __counted_by(data_count);
|
|
} __packed;
|
|
|
|
/**
|
|
* struct guc_lfd_data_log_events_buf - GuC Log Events Buffer.
|
|
* This is optional fw LFD data
|
|
*/
|
|
struct guc_lfd_data_log_events_buf {
|
|
/**
|
|
* @log_events_format_version: version of GuC log format of buffer
|
|
*/
|
|
u32 log_events_format_version;
|
|
/**
|
|
* @log_event: The log event data.
|
|
* Size in dwords is LFD block size - 1.
|
|
*/
|
|
u32 log_event[];
|
|
} __packed;
|
|
|
|
/** struct guc_lfd_data_os_info - OS Version Information. */
|
|
struct guc_lfd_data_os_info {
|
|
/**
|
|
* @os_id: enum values to identify the OS brand.
|
|
* See guc_lfd_os_type for the range of types
|
|
*/
|
|
u32 os_id;
|
|
/**
|
|
* @build_version: ASCII string containing OS build version
|
|
* information based on os_id. String is padded with null
|
|
* characters to ensure its DWORD aligned.
|
|
* Size in dwords is LFD block size - 1.
|
|
*/
|
|
char build_version[];
|
|
} __packed;
|
|
|
|
/**
|
|
* struct guc_lfd_file_header - Header of GuC Log Streaming-LFD-File Format.
|
|
* This structure encapsulates the layout of the guc-log-file format
|
|
*/
|
|
struct guc_lfd_file_header {
|
|
/**
|
|
* @magic: A magic number set by producer of a GuC log file to
|
|
* identify that file is a valid guc-log-file containing a stream
|
|
* of LFDs.
|
|
*/
|
|
u64 magic;
|
|
/** @version: Version of this file format layout */
|
|
u32 version;
|
|
#define GUC_LFD_FILE_HEADER_VERSION_MASK_MAJOR GENMASK(31, 16)
|
|
#define GUC_LFD_FILE_HEADER_VERSION_MASK_MINOR GENMASK(15, 0)
|
|
|
|
/** @stream: A stream of one or more guc_lfd_data LFD blocks */
|
|
u32 stream[];
|
|
} __packed;
|
|
|
|
#endif
|