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

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/ras/rascore/ras_log_ring.h
Extension
.h
Size
2905 bytes
Lines
94
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_aca_reg {
	uint64_t regs[ACA_REG_MAX_COUNT];
};

struct ras_log_info {
	uint64_t seqno;
	uint64_t timestamp;
	enum ras_log_event event;
	union {
		struct ras_aca_reg aca_reg;
	};
};

struct ras_log_batch_tag {
	uint64_t batch_id;
	uint64_t timestamp;
	uint32_t sub_seqno;
};

struct ras_log_ring {
	void *ras_log_mempool;
	struct radix_tree_root ras_log_root;
	spinlock_t spin_lock;
	uint64_t mono_upward_batch_id;
	uint64_t last_del_batch_id;
	int logged_ecc_count;
};

struct ras_log_batch_overview {
	uint64_t first_batch_id;
	uint64_t last_batch_id;
	uint32_t logged_batch_count;
};

struct ras_core_context;

int ras_log_ring_sw_init(struct ras_core_context *ras_core);
int ras_log_ring_sw_fini(struct ras_core_context *ras_core);

struct ras_log_batch_tag *ras_log_ring_create_batch_tag(struct ras_core_context *ras_core);
void ras_log_ring_destroy_batch_tag(struct ras_core_context *ras_core,
			struct ras_log_batch_tag *tag);
void ras_log_ring_add_log_event(struct ras_core_context *ras_core,
		enum ras_log_event event, void *data, struct ras_log_batch_tag *tag);

int ras_log_ring_get_batch_records(struct ras_core_context *ras_core, uint64_t batch_idx,
		struct ras_log_info *log_arr, uint32_t arr_num);

int ras_log_ring_get_batch_overview(struct ras_core_context *ras_core,
		struct ras_log_batch_overview *overview);
#endif

Annotation

Implementation Notes