drivers/media/test-drivers/visl/visl-trace-av1.h

Source file repositories/reference/linux-study-clean/drivers/media/test-drivers/visl/visl-trace-av1.h

File Facts

System
Linux kernel
Corpus path
drivers/media/test-drivers/visl/visl-trace-av1.h
Extension
.h
Size
15015 bytes
Lines
315
Domain
Driver Families
Bucket
drivers/media
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

#if !defined(_VISL_TRACE_AV1_H_) || defined(TRACE_HEADER_MULTI_READ)
#define _VISL_TRACE_AV1_H_

#include <linux/tracepoint.h>
#include "visl.h"

#undef TRACE_SYSTEM
#define TRACE_SYSTEM visl_av1_controls

DECLARE_EVENT_CLASS(v4l2_ctrl_av1_seq_tmpl,
	TP_PROTO(const struct v4l2_ctrl_av1_sequence *s),
	TP_ARGS(s),
	TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_av1_sequence, s)),
	TP_fast_assign(__entry->s = *s;),
	TP_printk("\nflags %s\nseq_profile: %u\norder_hint_bits: %u\nbit_depth: %u\n"
		  "max_frame_width_minus_1: %u\nmax_frame_height_minus_1: %u\n",
		  __print_flags(__entry->s.flags, "|",
		  {V4L2_AV1_SEQUENCE_FLAG_STILL_PICTURE, "STILL_PICTURE"},
		  {V4L2_AV1_SEQUENCE_FLAG_USE_128X128_SUPERBLOCK, "USE_128X128_SUPERBLOCK"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTER_INTRA, "ENABLE_FILTER_INTRA"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA_EDGE_FILTER, "ENABLE_INTRA_EDGE_FILTER"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTERINTRA_COMPOUND, "ENABLE_INTERINTRA_COMPOUND"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKED_COMPOUND, "ENABLE_MASKED_COMPOUND"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_WARPED_MOTION, "ENABLE_WARPED_MOTION"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_DUAL_FILTER, "ENABLE_DUAL_FILTER"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_ORDER_HINT, "ENABLE_ORDER_HINT"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_JNT_COMP, "ENABLE_JNT_COMP"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_REF_FRAME_MVS, "ENABLE_REF_FRAME_MVS"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_SUPERRES, "ENABLE_SUPERRES"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_CDEF, "ENABLE_CDEF"},
		  {V4L2_AV1_SEQUENCE_FLAG_ENABLE_RESTORATION, "ENABLE_RESTORATION"},
		  {V4L2_AV1_SEQUENCE_FLAG_MONO_CHROME, "MONO_CHROME"},
		  {V4L2_AV1_SEQUENCE_FLAG_COLOR_RANGE, "COLOR_RANGE"},
		  {V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_X, "SUBSAMPLING_X"},
		  {V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_Y, "SUBSAMPLING_Y"},
		  {V4L2_AV1_SEQUENCE_FLAG_FILM_GRAIN_PARAMS_PRESENT, "FILM_GRAIN_PARAMS_PRESENT"},
		  {V4L2_AV1_SEQUENCE_FLAG_SEPARATE_UV_DELTA_Q, "SEPARATE_UV_DELTA_Q"}),
		  __entry->s.seq_profile,
		  __entry->s.order_hint_bits,
		  __entry->s.bit_depth,
		  __entry->s.max_frame_width_minus_1,
		  __entry->s.max_frame_height_minus_1
	)
);

DECLARE_EVENT_CLASS(v4l2_ctrl_av1_tge_tmpl,
	TP_PROTO(const struct v4l2_ctrl_av1_tile_group_entry *t),
	TP_ARGS(t),
	TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_av1_tile_group_entry, t)),
	TP_fast_assign(__entry->t = *t;),
	TP_printk("\ntile_offset: %u\n tile_size: %u\n tile_row: %u\ntile_col: %u\n",
		  __entry->t.tile_offset,
		  __entry->t.tile_size,
		  __entry->t.tile_row,
		  __entry->t.tile_col
	)
);

DECLARE_EVENT_CLASS(v4l2_ctrl_av1_frame_tmpl,
	TP_PROTO(const struct v4l2_ctrl_av1_frame *f),
	TP_ARGS(f),
	TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_av1_frame, f)),
	TP_fast_assign(__entry->f = *f;),
	TP_printk("\ntile_info.flags: %s\ntile_info.context_update_tile_id: %u\n"
		  "tile_info.tile_cols: %u\ntile_info.tile_rows: %u\n"
		  "tile_info.mi_col_starts: %s\ntile_info.mi_row_starts: %s\n"
		  "tile_info.width_in_sbs_minus_1: %s\ntile_info.height_in_sbs_minus_1: %s\n"
		  "tile_info.tile_size_bytes: %u\nquantization.flags: %s\n"
		  "quantization.base_q_idx: %u\nquantization.delta_q_y_dc: %d\n"
		  "quantization.delta_q_u_dc: %d\nquantization.delta_q_u_ac: %d\n"
		  "quantization.delta_q_v_dc: %d\nquantization.delta_q_v_ac: %d\n"
		  "quantization.qm_y: %u\nquantization.qm_u: %u\nquantization.qm_v: %u\n"
		  "quantization.delta_q_res: %u\nsuperres_denom: %u\nsegmentation.flags: %s\n"
		  "segmentation.last_active_seg_id: %u\nsegmentation.feature_enabled:%s\n"
		  "loop_filter.flags: %s\nloop_filter.level: %s\nloop_filter.sharpness: %u\n"
		  "loop_filter.ref_deltas: %s\nloop_filter.mode_deltas: %s\n"
		  "loop_filter.delta_lf_res: %u\ncdef.damping_minus_3: %u\ncdef.bits: %u\n"
		  "cdef.y_pri_strength: %s\ncdef.y_sec_strength: %s\n"
		  "cdef.uv_pri_strength: %s\ncdef.uv_sec_strength:%s\nskip_mode_frame: %s\n"
		  "primary_ref_frame: %u\nloop_restoration.flags: %s\n"
		  "loop_restoration.lr_unit_shift: %u\nloop_restoration.lr_uv_shift: %u\n"
		  "loop_restoration.frame_restoration_type: %s\n"
		  "loop_restoration.loop_restoration_size: %s\nflags: %s\norder_hint: %u\n"
		  "upscaled_width: %u\nframe_width_minus_1: %u\nframe_height_minus_1: %u\n"
		  "render_width_minus_1: %u\nrender_height_minus_1: %u\ncurrent_frame_id: %u\n"
		  "buffer_removal_time: %s\norder_hints: %s\nreference_frame_ts: %s\n"
		  "ref_frame_idx: %s\nrefresh_frame_flags: %u\n",
		  __print_flags(__entry->f.tile_info.flags, "|",
		  {V4L2_AV1_TILE_INFO_FLAG_UNIFORM_TILE_SPACING, "UNIFORM_TILE_SPACING"}),
		  __entry->f.tile_info.context_update_tile_id,

Annotation

Implementation Notes