drivers/gpu/drm/amd/ras/rascore/ras_cmd.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/ras/rascore/ras_cmd.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/ras/rascore/ras_cmd.h
Extension
.h
Size
11206 bytes
Lines
483
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct ras_cmd_func_map {
	uint32_t cmd_id;
	int (*func)(struct ras_core_context *ras_core,
			struct ras_cmd_ctx *cmd, void *data);
};

struct ras_device_bdf {
	union {
		struct {
			uint32_t function : 3;
			uint32_t device : 5;
			uint32_t bus : 8;
			uint32_t domain : 16;
		};
		uint32_t u32_all;
	};
};

struct ras_cmd_param {
	uint32_t idx_vf;
	void *data;
};

#pragma pack(push, 8)
struct ras_cmd_ctx {
	uint32_t magic;
	union {
		struct {
			uint16_t ras_cmd_minor_ver : 10;
			uint16_t ras_cmd_major_ver : 6;
		};
		uint16_t ras_cmd_ver;
	};
	union {
		struct {
			uint16_t plat_major_ver : 10;
			uint16_t plat_minor_ver : 6;
		};
		uint16_t plat_ver;
	};
	uint32_t cmd_id;
	uint32_t cmd_res;
	uint32_t input_size;
	uint32_t output_size;
	uint32_t output_buf_size;
	uint32_t reserved[5];
	uint8_t  input_buff_raw[RAS_CMD_MAX_IN_SIZE];
	uint8_t  output_buff_raw[];
};

struct ras_cmd_dev_handle {
	uint64_t dev_handle;
};

struct ras_cmd_block_ecc_info_req {
	struct ras_cmd_dev_handle dev;
	uint32_t block_id;
	uint32_t subblock_id;
	uint32_t reserved[4];
};

struct ras_cmd_block_ecc_info_rsp {
	uint32_t version;
	uint32_t ce_count;
	uint32_t ue_count;
	uint32_t de_count;
	uint32_t reserved[6];
};

struct ras_cmd_inject_error_req {
	struct ras_cmd_dev_handle dev;
	uint32_t block_id;
	uint32_t subblock_id;
	uint64_t address;
	uint32_t error_type;
	uint32_t instance_mask;
	union {
		struct {
			/* vf index */
			uint64_t vf_idx : 6;
			/* method of error injection. i.e persistent, coherent etc */
			uint64_t method : 10;
			uint64_t rsv    : 48;
		};
		uint64_t value;
	};
	uint32_t reserved[8];
};

struct ras_cmd_inject_error_rsp {

Annotation

Implementation Notes