| /* SPDX-License-Identifier: GPL-2.0 */ |
| #if !defined(_VISL_TRACE_VP9_H_) || defined(TRACE_HEADER_MULTI_READ) |
| #define _VISL_TRACE_VP9_H_ |
| |
| #include <linux/tracepoint.h> |
| #include "visl.h" |
| |
| #undef TRACE_SYSTEM |
| #define TRACE_SYSTEM visl_vp9_controls |
| |
| DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_frame_tmpl, |
| TP_PROTO(const struct v4l2_ctrl_vp9_frame *f), |
| TP_ARGS(f), |
| TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp9_frame, f)), |
| TP_fast_assign(__entry->f = *f;), |
| TP_printk("\nlf.ref_deltas %s\n" |
| "lf.mode_deltas %s\n" |
| "lf.level %u\n" |
| "lf.sharpness %u\n" |
| "lf.flags %s\n" |
| "quant.base_q_idx %u\n" |
| "quant.delta_q_y_dc %d\n" |
| "quant.delta_q_uv_dc %d\n" |
| "quant.delta_q_uv_ac %d\n" |
| "seg.feature_data {%s}\n" |
| "seg.feature_enabled %s\n" |
| "seg.tree_probs %s\n" |
| "seg.pred_probs %s\n" |
| "seg.flags %s\n" |
| "flags %s\n" |
| "compressed_header_size %u\n" |
| "uncompressed_header_size %u\n" |
| "frame_width_minus_1 %u\n" |
| "frame_height_minus_1 %u\n" |
| "render_width_minus_1 %u\n" |
| "render_height_minus_1 %u\n" |
| "last_frame_ts %llu\n" |
| "golden_frame_ts %llu\n" |
| "alt_frame_ts %llu\n" |
| "ref_frame_sign_bias %s\n" |
| "reset_frame_context %s\n" |
| "frame_context_idx %u\n" |
| "profile %u\n" |
| "bit_depth %u\n" |
| "interpolation_filter %s\n" |
| "tile_cols_log2 %u\n" |
| "tile_rows_log_2 %u\n" |
| "reference_mode %s\n", |
| __print_array(__entry->f.lf.ref_deltas, |
| ARRAY_SIZE(__entry->f.lf.ref_deltas), |
| sizeof(__entry->f.lf.ref_deltas[0])), |
| __print_array(__entry->f.lf.mode_deltas, |
| ARRAY_SIZE(__entry->f.lf.mode_deltas), |
| sizeof(__entry->f.lf.mode_deltas[0])), |
| __entry->f.lf.level, |
| __entry->f.lf.sharpness, |
| __print_flags(__entry->f.lf.flags, "|", |
| {V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED, "DELTA_ENABLED"}, |
| {V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE, "DELTA_UPDATE"}), |
| __entry->f.quant.base_q_idx, |
| __entry->f.quant.delta_q_y_dc, |
| __entry->f.quant.delta_q_uv_dc, |
| __entry->f.quant.delta_q_uv_ac, |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->f.seg.feature_data, |
| sizeof(__entry->f.seg.feature_data), |
| false), |
| __print_array(__entry->f.seg.feature_enabled, |
| ARRAY_SIZE(__entry->f.seg.feature_enabled), |
| sizeof(__entry->f.seg.feature_enabled[0])), |
| __print_array(__entry->f.seg.tree_probs, |
| ARRAY_SIZE(__entry->f.seg.tree_probs), |
| sizeof(__entry->f.seg.tree_probs[0])), |
| __print_array(__entry->f.seg.pred_probs, |
| ARRAY_SIZE(__entry->f.seg.pred_probs), |
| sizeof(__entry->f.seg.pred_probs[0])), |
| __print_flags(__entry->f.seg.flags, "|", |
| {V4L2_VP9_SEGMENTATION_FLAG_ENABLED, "ENABLED"}, |
| {V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP, "UPDATE_MAP"}, |
| {V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE, "TEMPORAL_UPDATE"}, |
| {V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA, "UPDATE_DATA"}, |
| {V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE, "ABS_OR_DELTA_UPDATE"}), |
| __print_flags(__entry->f.flags, "|", |
| {V4L2_VP9_FRAME_FLAG_KEY_FRAME, "KEY_FRAME"}, |
| {V4L2_VP9_FRAME_FLAG_SHOW_FRAME, "SHOW_FRAME"}, |
| {V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT, "ERROR_RESILIENT"}, |
| {V4L2_VP9_FRAME_FLAG_INTRA_ONLY, "INTRA_ONLY"}, |
| {V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV, "ALLOW_HIGH_PREC_MV"}, |
| {V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX, "REFRESH_FRAME_CTX"}, |
| {V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE, "PARALLEL_DEC_MODE"}, |
| {V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING, "X_SUBSAMPLING"}, |
| {V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING, "Y_SUBSAMPLING"}, |
| {V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING, "COLOR_RANGE_FULL_SWING"}), |
| __entry->f.compressed_header_size, |
| __entry->f.uncompressed_header_size, |
| __entry->f.frame_width_minus_1, |
| __entry->f.frame_height_minus_1, |
| __entry->f.render_width_minus_1, |
| __entry->f.render_height_minus_1, |
| __entry->f.last_frame_ts, |
| __entry->f.golden_frame_ts, |
| __entry->f.alt_frame_ts, |
| __print_symbolic(__entry->f.ref_frame_sign_bias, |
| {V4L2_VP9_SIGN_BIAS_LAST, "SIGN_BIAS_LAST"}, |
| {V4L2_VP9_SIGN_BIAS_GOLDEN, "SIGN_BIAS_GOLDEN"}, |
| {V4L2_VP9_SIGN_BIAS_ALT, "SIGN_BIAS_ALT"}), |
| __print_symbolic(__entry->f.reset_frame_context, |
| {V4L2_VP9_RESET_FRAME_CTX_NONE, "RESET_FRAME_CTX_NONE"}, |
| {V4L2_VP9_RESET_FRAME_CTX_SPEC, "RESET_FRAME_CTX_SPEC"}, |
| {V4L2_VP9_RESET_FRAME_CTX_ALL, "RESET_FRAME_CTX_ALL"}), |
| __entry->f.frame_context_idx, |
| __entry->f.profile, |
| __entry->f.bit_depth, |
| __print_symbolic(__entry->f.interpolation_filter, |
| {V4L2_VP9_INTERP_FILTER_EIGHTTAP, "INTERP_FILTER_EIGHTTAP"}, |
| {V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH, "INTERP_FILTER_EIGHTTAP_SMOOTH"}, |
| {V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP, "INTERP_FILTER_EIGHTTAP_SHARP"}, |
| {V4L2_VP9_INTERP_FILTER_BILINEAR, "INTERP_FILTER_BILINEAR"}, |
| {V4L2_VP9_INTERP_FILTER_SWITCHABLE, "INTERP_FILTER_SWITCHABLE"}), |
| __entry->f.tile_cols_log2, |
| __entry->f.tile_rows_log2, |
| __print_symbolic(__entry->f.reference_mode, |
| {V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE, "REFERENCE_MODE_SINGLE_REFERENCE"}, |
| {V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE, "REFERENCE_MODE_COMPOUND_REFERENCE"}, |
| {V4L2_VP9_REFERENCE_MODE_SELECT, "REFERENCE_MODE_SELECT"})) |
| ); |
| |
| DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_compressed_hdr_tmpl, |
| TP_PROTO(const struct v4l2_ctrl_vp9_compressed_hdr *h), |
| TP_ARGS(h), |
| TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp9_compressed_hdr, h)), |
| TP_fast_assign(__entry->h = *h;), |
| TP_printk("\ntx_mode %s\n" |
| "tx8 {%s}\n" |
| "tx16 {%s}\n" |
| "tx32 {%s}\n" |
| "skip %s\n" |
| "inter_mode {%s}\n" |
| "interp_filter {%s}\n" |
| "is_inter %s\n" |
| "comp_mode %s\n" |
| "single_ref {%s}\n" |
| "comp_ref %s\n" |
| "y_mode {%s}\n" |
| "uv_mode {%s}\n" |
| "partition {%s}\n", |
| __print_symbolic(__entry->h.tx_mode, |
| {V4L2_VP9_TX_MODE_ONLY_4X4, "TX_MODE_ONLY_4X4"}, |
| {V4L2_VP9_TX_MODE_ALLOW_8X8, "TX_MODE_ALLOW_8X8"}, |
| {V4L2_VP9_TX_MODE_ALLOW_16X16, "TX_MODE_ALLOW_16X16"}, |
| {V4L2_VP9_TX_MODE_ALLOW_32X32, "TX_MODE_ALLOW_32X32"}, |
| {V4L2_VP9_TX_MODE_SELECT, "TX_MODE_SELECT"}), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->h.tx8, |
| sizeof(__entry->h.tx8), |
| false), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->h.tx16, |
| sizeof(__entry->h.tx16), |
| false), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->h.tx32, |
| sizeof(__entry->h.tx32), |
| false), |
| __print_array(__entry->h.skip, |
| ARRAY_SIZE(__entry->h.skip), |
| sizeof(__entry->h.skip[0])), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->h.inter_mode, |
| sizeof(__entry->h.inter_mode), |
| false), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->h.interp_filter, |
| sizeof(__entry->h.interp_filter), |
| false), |
| __print_array(__entry->h.is_inter, |
| ARRAY_SIZE(__entry->h.is_inter), |
| sizeof(__entry->h.is_inter[0])), |
| __print_array(__entry->h.comp_mode, |
| ARRAY_SIZE(__entry->h.comp_mode), |
| sizeof(__entry->h.comp_mode[0])), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->h.single_ref, |
| sizeof(__entry->h.single_ref), |
| false), |
| __print_array(__entry->h.comp_ref, |
| ARRAY_SIZE(__entry->h.comp_ref), |
| sizeof(__entry->h.comp_ref[0])), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->h.y_mode, |
| sizeof(__entry->h.y_mode), |
| false), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->h.uv_mode, |
| sizeof(__entry->h.uv_mode), |
| false), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->h.partition, |
| sizeof(__entry->h.partition), |
| false) |
| ) |
| ); |
| |
| DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_compressed_coef_tmpl, |
| TP_PROTO(const struct v4l2_ctrl_vp9_compressed_hdr *h), |
| TP_ARGS(h), |
| TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp9_compressed_hdr, h)), |
| TP_fast_assign(__entry->h = *h;), |
| TP_printk("\n coef {%s}", |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->h.coef, |
| sizeof(__entry->h.coef), |
| false) |
| ) |
| ); |
| |
| DECLARE_EVENT_CLASS(v4l2_vp9_mv_probs_tmpl, |
| TP_PROTO(const struct v4l2_vp9_mv_probs *p), |
| TP_ARGS(p), |
| TP_STRUCT__entry(__field_struct(struct v4l2_vp9_mv_probs, p)), |
| TP_fast_assign(__entry->p = *p;), |
| TP_printk("\n joint %s\n" |
| "sign %s\n" |
| "classes {%s}\n" |
| "class0_bit %s\n" |
| "bits {%s}\n" |
| "class0_fr {%s}\n" |
| "fr {%s}\n" |
| "class0_hp %s\n" |
| "hp %s\n", |
| __print_array(__entry->p.joint, |
| ARRAY_SIZE(__entry->p.joint), |
| sizeof(__entry->p.joint[0])), |
| __print_array(__entry->p.sign, |
| ARRAY_SIZE(__entry->p.sign), |
| sizeof(__entry->p.sign[0])), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->p.classes, |
| sizeof(__entry->p.classes), |
| false), |
| __print_array(__entry->p.class0_bit, |
| ARRAY_SIZE(__entry->p.class0_bit), |
| sizeof(__entry->p.class0_bit[0])), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->p.bits, |
| sizeof(__entry->p.bits), |
| false), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->p.class0_fr, |
| sizeof(__entry->p.class0_fr), |
| false), |
| __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, |
| __entry->p.fr, |
| sizeof(__entry->p.fr), |
| false), |
| __print_array(__entry->p.class0_hp, |
| ARRAY_SIZE(__entry->p.class0_hp), |
| sizeof(__entry->p.class0_hp[0])), |
| __print_array(__entry->p.hp, |
| ARRAY_SIZE(__entry->p.hp), |
| sizeof(__entry->p.hp[0])) |
| ) |
| ); |
| |
| DEFINE_EVENT(v4l2_ctrl_vp9_frame_tmpl, v4l2_ctrl_vp9_frame, |
| TP_PROTO(const struct v4l2_ctrl_vp9_frame *f), |
| TP_ARGS(f) |
| ); |
| |
| DEFINE_EVENT(v4l2_ctrl_vp9_compressed_hdr_tmpl, v4l2_ctrl_vp9_compressed_hdr, |
| TP_PROTO(const struct v4l2_ctrl_vp9_compressed_hdr *h), |
| TP_ARGS(h) |
| ); |
| |
| DEFINE_EVENT(v4l2_ctrl_vp9_compressed_coef_tmpl, v4l2_ctrl_vp9_compressed_coeff, |
| TP_PROTO(const struct v4l2_ctrl_vp9_compressed_hdr *h), |
| TP_ARGS(h) |
| ); |
| |
| |
| DEFINE_EVENT(v4l2_vp9_mv_probs_tmpl, v4l2_vp9_mv_probs, |
| TP_PROTO(const struct v4l2_vp9_mv_probs *p), |
| TP_ARGS(p) |
| ); |
| |
| #endif |
| |
| #undef TRACE_INCLUDE_PATH |
| #undef TRACE_INCLUDE_FILE |
| #define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl |
| #define TRACE_INCLUDE_FILE visl-trace-vp9 |
| #include <trace/define_trace.h> |