From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B7924344D89; Thu, 12 Feb 2026 16:23:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913426; cv=none; b=sn34heTMx0QIm9PdWHSs+qD+IXk+6/TSqkW/12HzY0LNpHZJdGAfCcJ1+DuXuxlYHR3Qo+MRhWOyMgxeG10YaCRcXYOZ35OTd39SWJJuLFSSh9VqZI/cda2NzsjN+SVLhXIOFaNCBB014Mw+C9AWfoXcKswsJy5Jj4GgM57//Gw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913426; c=relaxed/simple; bh=kxb5Ys4wYUimX81az+aPcIlHSKmkipaVKH4Eo/fSpRs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PX8u38i17GdVtVbLkowXadQbpcjZSkNXJ/JSp4Uifem3U/rGPvudqKdMF5b2+HakLzAmt3bAC9tvD3CnZpha7Qh9rBiB/hW3RdpOk+G1FJN78b0y0ijKGbROpD3MEH3fQ5JTDyeXloUsSEoKLUqNwjWu6Q42TcuczUaaAADFMxA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=XcnjWw4z; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="XcnjWw4z" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913419; bh=kxb5Ys4wYUimX81az+aPcIlHSKmkipaVKH4Eo/fSpRs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XcnjWw4zmptZ44iWtSLVMq5KgfLyYrYR+Qidz+jeidjj7FivxgofygN13wKZLsynJ CaJEDFy524bUcIfG58YndzJN+Dc1QROTj3NT804/RRHqSU/+FCl1TSHkkuLpm04kGa Y5Og8ojQyXvGfg2kLeAGrHLmvwfkiLu9W3ECr6gRnxCO9PwoFmk2v3orUnYB1SZeIW ZLhZUk0w8As/246QZs4Rk+S6+qCaL0NGlvTiIzGRFNy1vqfmrT/4IXm1dgy41nlr33 k5Bpm4mn9W9EwSfuP1sZpgNIpidpBIEaSuZ+6uvJp3eShq0g4As3adhh8v0u46AaFg 1NErvZ0o2hZnQ== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id 9202817E12E2; Thu, 12 Feb 2026 17:23:35 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 01/11] media: Move visl traces to v4l2-core Date: Thu, 12 Feb 2026 11:23:18 -0500 Message-ID: <20260212162328.192217-2-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The visl driver defines traces for all stateless controls. Move those definition to a new v4l2_requests.h file and expose them for all drivers to use. As each event can be enabled individually in userspace, group them all in the same v4l2_requests event folder. Later, it can also be used by v4l2-core to trace controls as they are being set. Signed-off-by: Detlev Casanova --- drivers/media/test-drivers/visl/Makefile | 2 +- drivers/media/test-drivers/visl/visl-dec.c | 8 +- .../media/test-drivers/visl/visl-trace-av1.h | 314 ---- .../media/test-drivers/visl/visl-trace-fwht.h | 66 - .../media/test-drivers/visl/visl-trace-h264.h | 349 ---- .../media/test-drivers/visl/visl-trace-hevc.h | 464 ----- .../test-drivers/visl/visl-trace-mpeg2.h | 99 - .../test-drivers/visl/visl-trace-points.c | 11 - .../media/test-drivers/visl/visl-trace-vp8.h | 156 -- .../media/test-drivers/visl/visl-trace-vp9.h | 292 --- drivers/media/v4l2-core/v4l2-trace.c | 45 + include/trace/events/v4l2_requests.h | 1645 +++++++++++++++++ 12 files changed, 1692 insertions(+), 1759 deletions(-) delete mode 100644 drivers/media/test-drivers/visl/visl-trace-av1.h delete mode 100644 drivers/media/test-drivers/visl/visl-trace-fwht.h delete mode 100644 drivers/media/test-drivers/visl/visl-trace-h264.h delete mode 100644 drivers/media/test-drivers/visl/visl-trace-hevc.h delete mode 100644 drivers/media/test-drivers/visl/visl-trace-mpeg2.h delete mode 100644 drivers/media/test-drivers/visl/visl-trace-points.c delete mode 100644 drivers/media/test-drivers/visl/visl-trace-vp8.h delete mode 100644 drivers/media/test-drivers/visl/visl-trace-vp9.h create mode 100644 include/trace/events/v4l2_requests.h diff --git a/drivers/media/test-drivers/visl/Makefile b/drivers/media/test-= drivers/visl/Makefile index fb4d5ae1b17f..a5049e2af844 100644 --- a/drivers/media/test-drivers/visl/Makefile +++ b/drivers/media/test-drivers/visl/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: GPL-2.0+ -visl-y :=3D visl-core.o visl-video.o visl-dec.o visl-trace-points.o +visl-y :=3D visl-core.o visl-video.o visl-dec.o =20 ifeq ($(CONFIG_VISL_DEBUGFS),y) visl-y +=3D visl-debugfs.o diff --git a/drivers/media/test-drivers/visl/visl-dec.c b/drivers/media/tes= t-drivers/visl/visl-dec.c index 6bbf93757047..d49208e83726 100644 --- a/drivers/media/test-drivers/visl/visl-dec.c +++ b/drivers/media/test-drivers/visl/visl-dec.c @@ -7,18 +7,12 @@ #include "visl.h" #include "visl-debugfs.h" #include "visl-dec.h" -#include "visl-trace-fwht.h" -#include "visl-trace-mpeg2.h" -#include "visl-trace-vp8.h" -#include "visl-trace-vp9.h" -#include "visl-trace-h264.h" -#include "visl-trace-hevc.h" -#include "visl-trace-av1.h" =20 #include #include #include #include +#include =20 #define LAST_BUF_IDX (V4L2_AV1_REF_LAST_FRAME - V4L2_AV1_REF_LAST_FRAME) #define LAST2_BUF_IDX (V4L2_AV1_REF_LAST2_FRAME - V4L2_AV1_REF_LAST_FRAME) diff --git a/drivers/media/test-drivers/visl/visl-trace-av1.h b/drivers/med= ia/test-drivers/visl/visl-trace-av1.h deleted file mode 100644 index 09f205de53df..000000000000 --- a/drivers/media/test-drivers/visl/visl-trace-av1.h +++ /dev/null @@ -1,314 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#if !defined(_VISL_TRACE_AV1_H_) || defined(TRACE_HEADER_MULTI_READ) -#define _VISL_TRACE_AV1_H_ - -#include -#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 =3D *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_SUPERBLOC= K"}, - {V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTER_INTRA, "ENABLE_FILTER_INTRA"}, - {V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA_EDGE_FILTER, "ENABLE_INTRA_EDGE_F= ILTER"}, - {V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTERINTRA_COMPOUND, "ENABLE_INTERINTRA= _COMPOUND"}, - {V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKED_COMPOUND, "ENABLE_MASKED_COMPOUN= D"}, - {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 =3D *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 =3D *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, - __entry->f.tile_info.tile_cols, - __entry->f.tile_info.tile_rows, - __print_array(__entry->f.tile_info.mi_col_starts, - ARRAY_SIZE(__entry->f.tile_info.mi_col_starts), - sizeof(__entry->f.tile_info.mi_col_starts[0])), - __print_array(__entry->f.tile_info.mi_row_starts, - ARRAY_SIZE(__entry->f.tile_info.mi_row_starts), - sizeof(__entry->f.tile_info.mi_row_starts[0])), - __print_array(__entry->f.tile_info.width_in_sbs_minus_1, - ARRAY_SIZE(__entry->f.tile_info.width_in_sbs_minus_1), - sizeof(__entry->f.tile_info.width_in_sbs_minus_1[0])), - __print_array(__entry->f.tile_info.height_in_sbs_minus_1, - ARRAY_SIZE(__entry->f.tile_info.height_in_sbs_minus_1), - sizeof(__entry->f.tile_info.height_in_sbs_minus_1[0])), - __entry->f.tile_info.tile_size_bytes, - __print_flags(__entry->f.quantization.flags, "|", - {V4L2_AV1_QUANTIZATION_FLAG_DIFF_UV_DELTA, "DIFF_UV_DELTA"}, - {V4L2_AV1_QUANTIZATION_FLAG_USING_QMATRIX, "USING_QMATRIX"}, - {V4L2_AV1_QUANTIZATION_FLAG_DELTA_Q_PRESENT, "DELTA_Q_PRESENT"}), - __entry->f.quantization.base_q_idx, - __entry->f.quantization.delta_q_y_dc, - __entry->f.quantization.delta_q_u_dc, - __entry->f.quantization.delta_q_u_ac, - __entry->f.quantization.delta_q_v_dc, - __entry->f.quantization.delta_q_v_ac, - __entry->f.quantization.qm_y, - __entry->f.quantization.qm_u, - __entry->f.quantization.qm_v, - __entry->f.quantization.delta_q_res, - __entry->f.superres_denom, - __print_flags(__entry->f.segmentation.flags, "|", - {V4L2_AV1_SEGMENTATION_FLAG_ENABLED, "ENABLED"}, - {V4L2_AV1_SEGMENTATION_FLAG_UPDATE_MAP, "UPDATE_MAP"}, - {V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL_UPDATE, "TEMPORAL_UPDATE"}, - {V4L2_AV1_SEGMENTATION_FLAG_UPDATE_DATA, "UPDATE_DATA"}, - {V4L2_AV1_SEGMENTATION_FLAG_SEG_ID_PRE_SKIP, "SEG_ID_PRE_SKIP"}), - __entry->f.segmentation.last_active_seg_id, - __print_array(__entry->f.segmentation.feature_enabled, - ARRAY_SIZE(__entry->f.segmentation.feature_enabled), - sizeof(__entry->f.segmentation.feature_enabled[0])), - __print_flags(__entry->f.loop_filter.flags, "|", - {V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENABLED, "DELTA_ENABLED"}, - {V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPDATE, "DELTA_UPDATE"}, - {V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_PRESENT, "DELTA_LF_PRESENT"}, - {V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_MULTI, "DELTA_LF_MULTI"}), - __print_array(__entry->f.loop_filter.level, - ARRAY_SIZE(__entry->f.loop_filter.level), - sizeof(__entry->f.loop_filter.level[0])), - __entry->f.loop_filter.sharpness, - __print_array(__entry->f.loop_filter.ref_deltas, - ARRAY_SIZE(__entry->f.loop_filter.ref_deltas), - sizeof(__entry->f.loop_filter.ref_deltas[0])), - __print_array(__entry->f.loop_filter.mode_deltas, - ARRAY_SIZE(__entry->f.loop_filter.mode_deltas), - sizeof(__entry->f.loop_filter.mode_deltas[0])), - __entry->f.loop_filter.delta_lf_res, - __entry->f.cdef.damping_minus_3, - __entry->f.cdef.bits, - __print_array(__entry->f.cdef.y_pri_strength, - ARRAY_SIZE(__entry->f.cdef.y_pri_strength), - sizeof(__entry->f.cdef.y_pri_strength[0])), - __print_array(__entry->f.cdef.y_sec_strength, - ARRAY_SIZE(__entry->f.cdef.y_sec_strength), - sizeof(__entry->f.cdef.y_sec_strength[0])), - __print_array(__entry->f.cdef.uv_pri_strength, - ARRAY_SIZE(__entry->f.cdef.uv_pri_strength), - sizeof(__entry->f.cdef.uv_pri_strength[0])), - __print_array(__entry->f.cdef.uv_sec_strength, - ARRAY_SIZE(__entry->f.cdef.uv_sec_strength), - sizeof(__entry->f.cdef.uv_sec_strength[0])), - __print_array(__entry->f.skip_mode_frame, - ARRAY_SIZE(__entry->f.skip_mode_frame), - sizeof(__entry->f.skip_mode_frame[0])), - __entry->f.primary_ref_frame, - __print_flags(__entry->f.loop_restoration.flags, "|", - {V4L2_AV1_LOOP_RESTORATION_FLAG_USES_LR, "USES_LR"}, - {V4L2_AV1_LOOP_RESTORATION_FLAG_USES_CHROMA_LR, "USES_CHROMA_LR"}), - __entry->f.loop_restoration.lr_unit_shift, - __entry->f.loop_restoration.lr_uv_shift, - __print_array(__entry->f.loop_restoration.frame_restoration_type, - ARRAY_SIZE(__entry->f.loop_restoration.frame_restoration_type), - sizeof(__entry->f.loop_restoration.frame_restoration_type[0])), - __print_array(__entry->f.loop_restoration.loop_restoration_size, - ARRAY_SIZE(__entry->f.loop_restoration.loop_restoration_size), - sizeof(__entry->f.loop_restoration.loop_restoration_size[0])), - __print_flags(__entry->f.flags, "|", - {V4L2_AV1_FRAME_FLAG_SHOW_FRAME, "SHOW_FRAME"}, - {V4L2_AV1_FRAME_FLAG_SHOWABLE_FRAME, "SHOWABLE_FRAME"}, - {V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE, "ERROR_RESILIENT_MODE"}, - {V4L2_AV1_FRAME_FLAG_DISABLE_CDF_UPDATE, "DISABLE_CDF_UPDATE"}, - {V4L2_AV1_FRAME_FLAG_ALLOW_SCREEN_CONTENT_TOOLS, "ALLOW_SCREEN_CONTENT= _TOOLS"}, - {V4L2_AV1_FRAME_FLAG_FORCE_INTEGER_MV, "FORCE_INTEGER_MV"}, - {V4L2_AV1_FRAME_FLAG_ALLOW_INTRABC, "ALLOW_INTRABC"}, - {V4L2_AV1_FRAME_FLAG_USE_SUPERRES, "USE_SUPERRES"}, - {V4L2_AV1_FRAME_FLAG_ALLOW_HIGH_PRECISION_MV, "ALLOW_HIGH_PRECISION_MV= "}, - {V4L2_AV1_FRAME_FLAG_IS_MOTION_MODE_SWITCHABLE, "IS_MOTION_MODE_SWITCH= ABLE"}, - {V4L2_AV1_FRAME_FLAG_USE_REF_FRAME_MVS, "USE_REF_FRAME_MVS"}, - {V4L2_AV1_FRAME_FLAG_DISABLE_FRAME_END_UPDATE_CDF, - "DISABLE_FRAME_END_UPDATE_CDF"}, - {V4L2_AV1_FRAME_FLAG_ALLOW_WARPED_MOTION, "ALLOW_WARPED_MOTION"}, - {V4L2_AV1_FRAME_FLAG_REFERENCE_SELECT, "REFERENCE_SELECT"}, - {V4L2_AV1_FRAME_FLAG_REDUCED_TX_SET, "REDUCED_TX_SET"}, - {V4L2_AV1_FRAME_FLAG_SKIP_MODE_ALLOWED, "SKIP_MODE_ALLOWED"}, - {V4L2_AV1_FRAME_FLAG_SKIP_MODE_PRESENT, "SKIP_MODE_PRESENT"}, - {V4L2_AV1_FRAME_FLAG_FRAME_SIZE_OVERRIDE, "FRAME_SIZE_OVERRIDE"}, - {V4L2_AV1_FRAME_FLAG_BUFFER_REMOVAL_TIME_PRESENT, "BUFFER_REMOVAL_TIME= _PRESENT"}, - {V4L2_AV1_FRAME_FLAG_FRAME_REFS_SHORT_SIGNALING, "FRAME_REFS_SHORT_SIG= NALING"}), - __entry->f.order_hint, - __entry->f.upscaled_width, - __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.current_frame_id, - __print_array(__entry->f.buffer_removal_time, - ARRAY_SIZE(__entry->f.buffer_removal_time), - sizeof(__entry->f.buffer_removal_time[0])), - __print_array(__entry->f.order_hints, - ARRAY_SIZE(__entry->f.order_hints), - sizeof(__entry->f.order_hints[0])), - __print_array(__entry->f.reference_frame_ts, - ARRAY_SIZE(__entry->f.reference_frame_ts), - sizeof(__entry->f.reference_frame_ts[0])), - __print_array(__entry->f.ref_frame_idx, - ARRAY_SIZE(__entry->f.ref_frame_idx), - sizeof(__entry->f.ref_frame_idx[0])), - __entry->f.refresh_frame_flags - ) -); - - -DECLARE_EVENT_CLASS(v4l2_ctrl_av1_film_grain_tmpl, - TP_PROTO(const struct v4l2_ctrl_av1_film_grain *f), - TP_ARGS(f), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_av1_film_grain, f)), - TP_fast_assign(__entry->f =3D *f;), - TP_printk("\nflags %s\ncr_mult: %u\ngrain_seed: %u\n" - "film_grain_params_ref_idx: %u\nnum_y_points: %u\npoint_y_value: %s\n" - "point_y_scaling: %s\nnum_cb_points: %u\npoint_cb_value: %s\n" - "point_cb_scaling: %s\nnum_cr_points: %u\npoint_cr_value: %s\n" - "point_cr_scaling: %s\ngrain_scaling_minus_8: %u\nar_coeff_lag: %u\n" - "ar_coeffs_y_plus_128: %s\nar_coeffs_cb_plus_128: %s\n" - "ar_coeffs_cr_plus_128: %s\nar_coeff_shift_minus_6: %u\n" - "grain_scale_shift: %u\ncb_mult: %u\ncb_luma_mult: %u\ncr_luma_mult: %= u\n" - "cb_offset: %u\ncr_offset: %u\n", - __print_flags(__entry->f.flags, "|", - {V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN, "APPLY_GRAIN"}, - {V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN, "UPDATE_GRAIN"}, - {V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCALING_FROM_LUMA, "CHROMA_SCALING_FR= OM_LUMA"}, - {V4L2_AV1_FILM_GRAIN_FLAG_OVERLAP, "OVERLAP"}, - {V4L2_AV1_FILM_GRAIN_FLAG_CLIP_TO_RESTRICTED_RANGE, "CLIP_TO_RESTRICTE= D_RANGE"}), - __entry->f.cr_mult, - __entry->f.grain_seed, - __entry->f.film_grain_params_ref_idx, - __entry->f.num_y_points, - __print_array(__entry->f.point_y_value, - ARRAY_SIZE(__entry->f.point_y_value), - sizeof(__entry->f.point_y_value[0])), - __print_array(__entry->f.point_y_scaling, - ARRAY_SIZE(__entry->f.point_y_scaling), - sizeof(__entry->f.point_y_scaling[0])), - __entry->f.num_cb_points, - __print_array(__entry->f.point_cb_value, - ARRAY_SIZE(__entry->f.point_cb_value), - sizeof(__entry->f.point_cb_value[0])), - __print_array(__entry->f.point_cb_scaling, - ARRAY_SIZE(__entry->f.point_cb_scaling), - sizeof(__entry->f.point_cb_scaling[0])), - __entry->f.num_cr_points, - __print_array(__entry->f.point_cr_value, - ARRAY_SIZE(__entry->f.point_cr_value), - sizeof(__entry->f.point_cr_value[0])), - __print_array(__entry->f.point_cr_scaling, - ARRAY_SIZE(__entry->f.point_cr_scaling), - sizeof(__entry->f.point_cr_scaling[0])), - __entry->f.grain_scaling_minus_8, - __entry->f.ar_coeff_lag, - __print_array(__entry->f.ar_coeffs_y_plus_128, - ARRAY_SIZE(__entry->f.ar_coeffs_y_plus_128), - sizeof(__entry->f.ar_coeffs_y_plus_128[0])), - __print_array(__entry->f.ar_coeffs_cb_plus_128, - ARRAY_SIZE(__entry->f.ar_coeffs_cb_plus_128), - sizeof(__entry->f.ar_coeffs_cb_plus_128[0])), - __print_array(__entry->f.ar_coeffs_cr_plus_128, - ARRAY_SIZE(__entry->f.ar_coeffs_cr_plus_128), - sizeof(__entry->f.ar_coeffs_cr_plus_128[0])), - __entry->f.ar_coeff_shift_minus_6, - __entry->f.grain_scale_shift, - __entry->f.cb_mult, - __entry->f.cb_luma_mult, - __entry->f.cr_luma_mult, - __entry->f.cb_offset, - __entry->f.cr_offset - ) -) - -DEFINE_EVENT(v4l2_ctrl_av1_seq_tmpl, v4l2_ctrl_av1_sequence, - TP_PROTO(const struct v4l2_ctrl_av1_sequence *s), - TP_ARGS(s) -); - -DEFINE_EVENT(v4l2_ctrl_av1_frame_tmpl, v4l2_ctrl_av1_frame, - TP_PROTO(const struct v4l2_ctrl_av1_frame *f), - TP_ARGS(f) -); - -DEFINE_EVENT(v4l2_ctrl_av1_tge_tmpl, v4l2_ctrl_av1_tile_group_entry, - TP_PROTO(const struct v4l2_ctrl_av1_tile_group_entry *t), - TP_ARGS(t) -); - -DEFINE_EVENT(v4l2_ctrl_av1_film_grain_tmpl, v4l2_ctrl_av1_film_grain, - TP_PROTO(const struct v4l2_ctrl_av1_film_grain *f), - TP_ARGS(f) -); - -#endif - -#undef TRACE_INCLUDE_PATH -#undef TRACE_INCLUDE_FILE -#define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl -#define TRACE_INCLUDE_FILE visl-trace-av1 -#include diff --git a/drivers/media/test-drivers/visl/visl-trace-fwht.h b/drivers/me= dia/test-drivers/visl/visl-trace-fwht.h deleted file mode 100644 index 54b119359ff5..000000000000 --- a/drivers/media/test-drivers/visl/visl-trace-fwht.h +++ /dev/null @@ -1,66 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#if !defined(_VISL_TRACE_FWHT_H_) || defined(TRACE_HEADER_MULTI_READ) -#define _VISL_TRACE_FWHT_H_ - -#include -#include "visl.h" - -#undef TRACE_SYSTEM -#define TRACE_SYSTEM visl_fwht_controls - -DECLARE_EVENT_CLASS(v4l2_ctrl_fwht_params_tmpl, - TP_PROTO(const struct v4l2_ctrl_fwht_params *p), - TP_ARGS(p), - TP_STRUCT__entry( - __field(u64, backward_ref_ts) - __field(u32, version) - __field(u32, width) - __field(u32, height) - __field(u32, flags) - __field(u32, colorspace) - __field(u32, xfer_func) - __field(u32, ycbcr_enc) - __field(u32, quantization) - ), - TP_fast_assign( - __entry->backward_ref_ts =3D p->backward_ref_ts; - __entry->version =3D p->version; - __entry->width =3D p->width; - __entry->height =3D p->height; - __entry->flags =3D p->flags; - __entry->colorspace =3D p->colorspace; - __entry->xfer_func =3D p->xfer_func; - __entry->ycbcr_enc =3D p->ycbcr_enc; - __entry->quantization =3D p->quantization; - ), - TP_printk("backward_ref_ts %llu version %u width %u height %u flags %s co= lorspace %u xfer_func %u ycbcr_enc %u quantization %u", - __entry->backward_ref_ts, __entry->version, __entry->width, __entry->h= eight, - __print_flags(__entry->flags, "|", - {V4L2_FWHT_FL_IS_INTERLACED, "IS_INTERLACED"}, - {V4L2_FWHT_FL_IS_BOTTOM_FIRST, "IS_BOTTOM_FIRST"}, - {V4L2_FWHT_FL_IS_ALTERNATE, "IS_ALTERNATE"}, - {V4L2_FWHT_FL_IS_BOTTOM_FIELD, "IS_BOTTOM_FIELD"}, - {V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED, "LUMA_IS_UNCOMPRESSED"}, - {V4L2_FWHT_FL_CB_IS_UNCOMPRESSED, "CB_IS_UNCOMPRESSED"}, - {V4L2_FWHT_FL_CR_IS_UNCOMPRESSED, "CR_IS_UNCOMPRESSED"}, - {V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED, "ALPHA_IS_UNCOMPRESSED"}, - {V4L2_FWHT_FL_I_FRAME, "I_FRAME"}, - {V4L2_FWHT_FL_PIXENC_HSV, "PIXENC_HSV"}, - {V4L2_FWHT_FL_PIXENC_RGB, "PIXENC_RGB"}, - {V4L2_FWHT_FL_PIXENC_YUV, "PIXENC_YUV"}), - __entry->colorspace, __entry->xfer_func, __entry->ycbcr_enc, - __entry->quantization) -); - -DEFINE_EVENT(v4l2_ctrl_fwht_params_tmpl, v4l2_ctrl_fwht_params, - TP_PROTO(const struct v4l2_ctrl_fwht_params *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-fwht -#include diff --git a/drivers/media/test-drivers/visl/visl-trace-h264.h b/drivers/me= dia/test-drivers/visl/visl-trace-h264.h deleted file mode 100644 index d84296a01deb..000000000000 --- a/drivers/media/test-drivers/visl/visl-trace-h264.h +++ /dev/null @@ -1,349 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#if !defined(_VISL_TRACE_H264_H_) || defined(TRACE_HEADER_MULTI_READ) -#define _VISL_TRACE_H264_H_ - -#include -#include "visl.h" - -#undef TRACE_SYSTEM -#define TRACE_SYSTEM visl_h264_controls - -DECLARE_EVENT_CLASS(v4l2_ctrl_h264_sps_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_sps *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_sps, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("\nprofile_idc %u\n" - "constraint_set_flags %s\n" - "level_idc %u\n" - "seq_parameter_set_id %u\n" - "chroma_format_idc %u\n" - "bit_depth_luma_minus8 %u\n" - "bit_depth_chroma_minus8 %u\n" - "log2_max_frame_num_minus4 %u\n" - "pic_order_cnt_type %u\n" - "log2_max_pic_order_cnt_lsb_minus4 %u\n" - "max_num_ref_frames %u\n" - "num_ref_frames_in_pic_order_cnt_cycle %u\n" - "offset_for_ref_frame %s\n" - "offset_for_non_ref_pic %d\n" - "offset_for_top_to_bottom_field %d\n" - "pic_width_in_mbs_minus1 %u\n" - "pic_height_in_map_units_minus1 %u\n" - "flags %s", - __entry->s.profile_idc, - __print_flags(__entry->s.constraint_set_flags, "|", - {V4L2_H264_SPS_CONSTRAINT_SET0_FLAG, "CONSTRAINT_SET0_FLAG"}, - {V4L2_H264_SPS_CONSTRAINT_SET1_FLAG, "CONSTRAINT_SET1_FLAG"}, - {V4L2_H264_SPS_CONSTRAINT_SET2_FLAG, "CONSTRAINT_SET2_FLAG"}, - {V4L2_H264_SPS_CONSTRAINT_SET3_FLAG, "CONSTRAINT_SET3_FLAG"}, - {V4L2_H264_SPS_CONSTRAINT_SET4_FLAG, "CONSTRAINT_SET4_FLAG"}, - {V4L2_H264_SPS_CONSTRAINT_SET5_FLAG, "CONSTRAINT_SET5_FLAG"}), - __entry->s.level_idc, - __entry->s.seq_parameter_set_id, - __entry->s.chroma_format_idc, - __entry->s.bit_depth_luma_minus8, - __entry->s.bit_depth_chroma_minus8, - __entry->s.log2_max_frame_num_minus4, - __entry->s.pic_order_cnt_type, - __entry->s.log2_max_pic_order_cnt_lsb_minus4, - __entry->s.max_num_ref_frames, - __entry->s.num_ref_frames_in_pic_order_cnt_cycle, - __print_array(__entry->s.offset_for_ref_frame, - ARRAY_SIZE(__entry->s.offset_for_ref_frame), - sizeof(__entry->s.offset_for_ref_frame[0])), - __entry->s.offset_for_non_ref_pic, - __entry->s.offset_for_top_to_bottom_field, - __entry->s.pic_width_in_mbs_minus1, - __entry->s.pic_height_in_map_units_minus1, - __print_flags(__entry->s.flags, "|", - {V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE, "SEPARATE_COLOUR_PLANE"}, - {V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS, "QPPRIME_Y_ZERO_T= RANSFORM_BYPASS"}, - {V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO, "DELTA_PIC_ORDER_ALWA= YS_ZERO"}, - {V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED, "GAPS_IN_FRAME_NU= M_VALUE_ALLOWED"}, - {V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY, "FRAME_MBS_ONLY"}, - {V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD, "MB_ADAPTIVE_FRAME_FIELD"= }, - {V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE, "DIRECT_8X8_INFERENCE"} - )) -); - -DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pps_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_pps *p), - TP_ARGS(p), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pps, p)), - TP_fast_assign(__entry->p =3D *p), - TP_printk("\npic_parameter_set_id %u\n" - "seq_parameter_set_id %u\n" - "num_slice_groups_minus1 %u\n" - "num_ref_idx_l0_default_active_minus1 %u\n" - "num_ref_idx_l1_default_active_minus1 %u\n" - "weighted_bipred_idc %u\n" - "pic_init_qp_minus26 %d\n" - "pic_init_qs_minus26 %d\n" - "chroma_qp_index_offset %d\n" - "second_chroma_qp_index_offset %d\n" - "flags %s", - __entry->p.pic_parameter_set_id, - __entry->p.seq_parameter_set_id, - __entry->p.num_slice_groups_minus1, - __entry->p.num_ref_idx_l0_default_active_minus1, - __entry->p.num_ref_idx_l1_default_active_minus1, - __entry->p.weighted_bipred_idc, - __entry->p.pic_init_qp_minus26, - __entry->p.pic_init_qs_minus26, - __entry->p.chroma_qp_index_offset, - __entry->p.second_chroma_qp_index_offset, - __print_flags(__entry->p.flags, "|", - {V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE, "ENTROPY_CODING_MODE"}, - {V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT, "BOTTOM_F= IELD_PIC_ORDER_IN_FRAME_PRESENT"}, - {V4L2_H264_PPS_FLAG_WEIGHTED_PRED, "WEIGHTED_PRED"}, - {V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT, "DEBLOCKING_FIL= TER_CONTROL_PRESENT"}, - {V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED, "CONSTRAINED_INTRA_PRED"}, - {V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT, "REDUNDANT_PIC_CNT_PRES= ENT"}, - {V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE, "TRANSFORM_8X8_MODE"}, - {V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT, "SCALING_MATRIX_PRESENT"} - )) -); - -DECLARE_EVENT_CLASS(v4l2_ctrl_h264_scaling_matrix_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_scaling_matrix *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_scaling_matrix, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("\nscaling_list_4x4 {%s}\nscaling_list_8x8 {%s}", - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->s.scaling_list_4x4, - sizeof(__entry->s.scaling_list_4x4), - false), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->s.scaling_list_8x8, - sizeof(__entry->s.scaling_list_8x8), - false) - ) -); - -DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pred_weights_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_pred_weights *p), - TP_ARGS(p), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pred_weights, p)), - TP_fast_assign(__entry->p =3D *p), - TP_printk("\nluma_log2_weight_denom %u\n" - "chroma_log2_weight_denom %u\n" - "weight_factor[0].luma_weight %s\n" - "weight_factor[0].luma_offset %s\n" - "weight_factor[0].chroma_weight {%s}\n" - "weight_factor[0].chroma_offset {%s}\n" - "weight_factor[1].luma_weight %s\n" - "weight_factor[1].luma_offset %s\n" - "weight_factor[1].chroma_weight {%s}\n" - "weight_factor[1].chroma_offset {%s}\n", - __entry->p.luma_log2_weight_denom, - __entry->p.chroma_log2_weight_denom, - __print_array(__entry->p.weight_factors[0].luma_weight, - ARRAY_SIZE(__entry->p.weight_factors[0].luma_weight), - sizeof(__entry->p.weight_factors[0].luma_weight[0])), - __print_array(__entry->p.weight_factors[0].luma_offset, - ARRAY_SIZE(__entry->p.weight_factors[0].luma_offset), - sizeof(__entry->p.weight_factors[0].luma_offset[0])), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->p.weight_factors[0].chroma_weight, - sizeof(__entry->p.weight_factors[0].chroma_weight), - false), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->p.weight_factors[0].chroma_offset, - sizeof(__entry->p.weight_factors[0].chroma_offset), - false), - __print_array(__entry->p.weight_factors[1].luma_weight, - ARRAY_SIZE(__entry->p.weight_factors[1].luma_weight), - sizeof(__entry->p.weight_factors[1].luma_weight[0])), - __print_array(__entry->p.weight_factors[1].luma_offset, - ARRAY_SIZE(__entry->p.weight_factors[1].luma_offset), - sizeof(__entry->p.weight_factors[1].luma_offset[0])), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->p.weight_factors[1].chroma_weight, - sizeof(__entry->p.weight_factors[1].chroma_weight), - false), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->p.weight_factors[1].chroma_offset, - sizeof(__entry->p.weight_factors[1].chroma_offset), - false) - ) -); - -DECLARE_EVENT_CLASS(v4l2_ctrl_h264_slice_params_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_slice_params *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_slice_params, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("\nheader_bit_size %u\n" - "first_mb_in_slice %u\n" - "slice_type %s\n" - "colour_plane_id %u\n" - "redundant_pic_cnt %u\n" - "cabac_init_idc %u\n" - "slice_qp_delta %d\n" - "slice_qs_delta %d\n" - "disable_deblocking_filter_idc %u\n" - "slice_alpha_c0_offset_div2 %u\n" - "slice_beta_offset_div2 %u\n" - "num_ref_idx_l0_active_minus1 %u\n" - "num_ref_idx_l1_active_minus1 %u\n" - "flags %s", - __entry->s.header_bit_size, - __entry->s.first_mb_in_slice, - __print_symbolic(__entry->s.slice_type, - {V4L2_H264_SLICE_TYPE_P, "P"}, - {V4L2_H264_SLICE_TYPE_B, "B"}, - {V4L2_H264_SLICE_TYPE_I, "I"}, - {V4L2_H264_SLICE_TYPE_SP, "SP"}, - {V4L2_H264_SLICE_TYPE_SI, "SI"}), - __entry->s.colour_plane_id, - __entry->s.redundant_pic_cnt, - __entry->s.cabac_init_idc, - __entry->s.slice_qp_delta, - __entry->s.slice_qs_delta, - __entry->s.disable_deblocking_filter_idc, - __entry->s.slice_alpha_c0_offset_div2, - __entry->s.slice_beta_offset_div2, - __entry->s.num_ref_idx_l0_active_minus1, - __entry->s.num_ref_idx_l1_active_minus1, - __print_flags(__entry->s.flags, "|", - {V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED, "DIRECT_SPATIAL_MV_PRED"= }, - {V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH, "SP_FOR_SWITCH"}) - ) -); - -DECLARE_EVENT_CLASS(v4l2_h264_reference_tmpl, - TP_PROTO(const struct v4l2_h264_reference *r, int i), - TP_ARGS(r, i), - TP_STRUCT__entry(__field_struct(struct v4l2_h264_reference, r) - __field(int, i)), - TP_fast_assign(__entry->r =3D *r; __entry->i =3D i;), - TP_printk("[%d]: fields %s index %u", - __entry->i, - __print_flags(__entry->r.fields, "|", - {V4L2_H264_TOP_FIELD_REF, "TOP_FIELD_REF"}, - {V4L2_H264_BOTTOM_FIELD_REF, "BOTTOM_FIELD_REF"}, - {V4L2_H264_FRAME_REF, "FRAME_REF"}), - __entry->r.index - ) -); - -DECLARE_EVENT_CLASS(v4l2_ctrl_h264_decode_params_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_decode_params *d), - TP_ARGS(d), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_decode_params, d)), - TP_fast_assign(__entry->d =3D *d), - TP_printk("\nnal_ref_idc %u\n" - "frame_num %u\n" - "top_field_order_cnt %d\n" - "bottom_field_order_cnt %d\n" - "idr_pic_id %u\n" - "pic_order_cnt_lsb %u\n" - "delta_pic_order_cnt_bottom %d\n" - "delta_pic_order_cnt0 %d\n" - "delta_pic_order_cnt1 %d\n" - "dec_ref_pic_marking_bit_size %u\n" - "pic_order_cnt_bit_size %u\n" - "slice_group_change_cycle %u\n" - "flags %s\n", - __entry->d.nal_ref_idc, - __entry->d.frame_num, - __entry->d.top_field_order_cnt, - __entry->d.bottom_field_order_cnt, - __entry->d.idr_pic_id, - __entry->d.pic_order_cnt_lsb, - __entry->d.delta_pic_order_cnt_bottom, - __entry->d.delta_pic_order_cnt0, - __entry->d.delta_pic_order_cnt1, - __entry->d.dec_ref_pic_marking_bit_size, - __entry->d.pic_order_cnt_bit_size, - __entry->d.slice_group_change_cycle, - __print_flags(__entry->d.flags, "|", - {V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC, "IDR_PIC"}, - {V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC, "FIELD_PIC"}, - {V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD, "BOTTOM_FIELD"}, - {V4L2_H264_DECODE_PARAM_FLAG_PFRAME, "PFRAME"}, - {V4L2_H264_DECODE_PARAM_FLAG_BFRAME, "BFRAME"}) - ) -); - -DECLARE_EVENT_CLASS(v4l2_h264_dpb_entry_tmpl, - TP_PROTO(const struct v4l2_h264_dpb_entry *e, int i), - TP_ARGS(e, i), - TP_STRUCT__entry(__field_struct(struct v4l2_h264_dpb_entry, e) - __field(int, i)), - TP_fast_assign(__entry->e =3D *e; __entry->i =3D i;), - TP_printk("[%d]: reference_ts %llu, pic_num %u frame_num %u fields %s " - "top_field_order_cnt %d bottom_field_order_cnt %d flags %s", - __entry->i, - __entry->e.reference_ts, - __entry->e.pic_num, - __entry->e.frame_num, - __print_flags(__entry->e.fields, "|", - {V4L2_H264_TOP_FIELD_REF, "TOP_FIELD_REF"}, - {V4L2_H264_BOTTOM_FIELD_REF, "BOTTOM_FIELD_REF"}, - {V4L2_H264_FRAME_REF, "FRAME_REF"}), - __entry->e.top_field_order_cnt, - __entry->e.bottom_field_order_cnt, - __print_flags(__entry->e.flags, "|", - {V4L2_H264_DPB_ENTRY_FLAG_VALID, "VALID"}, - {V4L2_H264_DPB_ENTRY_FLAG_ACTIVE, "ACTIVE"}, - {V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM, "LONG_TERM"}, - {V4L2_H264_DPB_ENTRY_FLAG_FIELD, "FIELD"}) - - ) -); - -DEFINE_EVENT(v4l2_ctrl_h264_sps_tmpl, v4l2_ctrl_h264_sps, - TP_PROTO(const struct v4l2_ctrl_h264_sps *s), - TP_ARGS(s) -); - -DEFINE_EVENT(v4l2_ctrl_h264_pps_tmpl, v4l2_ctrl_h264_pps, - TP_PROTO(const struct v4l2_ctrl_h264_pps *p), - TP_ARGS(p) -); - -DEFINE_EVENT(v4l2_ctrl_h264_scaling_matrix_tmpl, v4l2_ctrl_h264_scaling_ma= trix, - TP_PROTO(const struct v4l2_ctrl_h264_scaling_matrix *s), - TP_ARGS(s) -); - -DEFINE_EVENT(v4l2_ctrl_h264_pred_weights_tmpl, v4l2_ctrl_h264_pred_weights, - TP_PROTO(const struct v4l2_ctrl_h264_pred_weights *p), - TP_ARGS(p) -); - -DEFINE_EVENT(v4l2_ctrl_h264_slice_params_tmpl, v4l2_ctrl_h264_slice_params, - TP_PROTO(const struct v4l2_ctrl_h264_slice_params *s), - TP_ARGS(s) -); - -DEFINE_EVENT(v4l2_h264_reference_tmpl, v4l2_h264_ref_pic_list0, - TP_PROTO(const struct v4l2_h264_reference *r, int i), - TP_ARGS(r, i) -); - -DEFINE_EVENT(v4l2_h264_reference_tmpl, v4l2_h264_ref_pic_list1, - TP_PROTO(const struct v4l2_h264_reference *r, int i), - TP_ARGS(r, i) -); - -DEFINE_EVENT(v4l2_ctrl_h264_decode_params_tmpl, v4l2_ctrl_h264_decode_para= ms, - TP_PROTO(const struct v4l2_ctrl_h264_decode_params *d), - TP_ARGS(d) -); - -DEFINE_EVENT(v4l2_h264_dpb_entry_tmpl, v4l2_h264_dpb_entry, - TP_PROTO(const struct v4l2_h264_dpb_entry *e, int i), - TP_ARGS(e, i) -); - -#endif - -#undef TRACE_INCLUDE_PATH -#undef TRACE_INCLUDE_FILE -#define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl -#define TRACE_INCLUDE_FILE visl-trace-h264 -#include diff --git a/drivers/media/test-drivers/visl/visl-trace-hevc.h b/drivers/me= dia/test-drivers/visl/visl-trace-hevc.h deleted file mode 100644 index 963914c463db..000000000000 --- a/drivers/media/test-drivers/visl/visl-trace-hevc.h +++ /dev/null @@ -1,464 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -#include "linux/v4l2-controls.h" -#if !defined(_VISL_TRACE_HEVC_H_) || defined(TRACE_HEADER_MULTI_READ) -#define _VISL_TRACE_HEVC_H_ - -#include -#include "visl.h" - -#undef TRACE_SYSTEM -#define TRACE_SYSTEM visl_hevc_controls - -DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_sps_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_sps *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_sps, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("\nvideo_parameter_set_id %u\n" - "seq_parameter_set_id %u\n" - "pic_width_in_luma_samples %u\n" - "pic_height_in_luma_samples %u\n" - "bit_depth_luma_minus8 %u\n" - "bit_depth_chroma_minus8 %u\n" - "log2_max_pic_order_cnt_lsb_minus4 %u\n" - "sps_max_dec_pic_buffering_minus1 %u\n" - "sps_max_num_reorder_pics %u\n" - "sps_max_latency_increase_plus1 %u\n" - "log2_min_luma_coding_block_size_minus3 %u\n" - "log2_diff_max_min_luma_coding_block_size %u\n" - "log2_min_luma_transform_block_size_minus2 %u\n" - "log2_diff_max_min_luma_transform_block_size %u\n" - "max_transform_hierarchy_depth_inter %u\n" - "max_transform_hierarchy_depth_intra %u\n" - "pcm_sample_bit_depth_luma_minus1 %u\n" - "pcm_sample_bit_depth_chroma_minus1 %u\n" - "log2_min_pcm_luma_coding_block_size_minus3 %u\n" - "log2_diff_max_min_pcm_luma_coding_block_size %u\n" - "num_short_term_ref_pic_sets %u\n" - "num_long_term_ref_pics_sps %u\n" - "chroma_format_idc %u\n" - "sps_max_sub_layers_minus1 %u\n" - "flags %s", - __entry->s.video_parameter_set_id, - __entry->s.seq_parameter_set_id, - __entry->s.pic_width_in_luma_samples, - __entry->s.pic_height_in_luma_samples, - __entry->s.bit_depth_luma_minus8, - __entry->s.bit_depth_chroma_minus8, - __entry->s.log2_max_pic_order_cnt_lsb_minus4, - __entry->s.sps_max_dec_pic_buffering_minus1, - __entry->s.sps_max_num_reorder_pics, - __entry->s.sps_max_latency_increase_plus1, - __entry->s.log2_min_luma_coding_block_size_minus3, - __entry->s.log2_diff_max_min_luma_coding_block_size, - __entry->s.log2_min_luma_transform_block_size_minus2, - __entry->s.log2_diff_max_min_luma_transform_block_size, - __entry->s.max_transform_hierarchy_depth_inter, - __entry->s.max_transform_hierarchy_depth_intra, - __entry->s.pcm_sample_bit_depth_luma_minus1, - __entry->s.pcm_sample_bit_depth_chroma_minus1, - __entry->s.log2_min_pcm_luma_coding_block_size_minus3, - __entry->s.log2_diff_max_min_pcm_luma_coding_block_size, - __entry->s.num_short_term_ref_pic_sets, - __entry->s.num_long_term_ref_pics_sps, - __entry->s.chroma_format_idc, - __entry->s.sps_max_sub_layers_minus1, - __print_flags(__entry->s.flags, "|", - {V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE, "SEPARATE_COLOUR_PLANE"}, - {V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED, "SCALING_LIST_ENABLED"}, - {V4L2_HEVC_SPS_FLAG_AMP_ENABLED, "AMP_ENABLED"}, - {V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET, "SAMPLE_ADAPTIVE_OFFSET"}, - {V4L2_HEVC_SPS_FLAG_PCM_ENABLED, "PCM_ENABLED"}, - {V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED, "V4L2_HEVC_SPS_FLAG_PCM_= LOOP_FILTER_DISABLED"}, - {V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PICS_PRESENT, "LONG_TERM_REF_PICS_PR= ESENT"}, - {V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED, "TEMPORAL_MVP_ENABLED"}, - {V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED, "STRONG_INTRA_SMOO= THING_ENABLED"} - )) - -); - - -DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_pps_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_pps *p), - TP_ARGS(p), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_pps, p)), - TP_fast_assign(__entry->p =3D *p), - TP_printk("\npic_parameter_set_id %u\n" - "num_extra_slice_header_bits %u\n" - "num_ref_idx_l0_default_active_minus1 %u\n" - "num_ref_idx_l1_default_active_minus1 %u\n" - "init_qp_minus26 %d\n" - "diff_cu_qp_delta_depth %u\n" - "pps_cb_qp_offset %d\n" - "pps_cr_qp_offset %d\n" - "num_tile_columns_minus1 %d\n" - "num_tile_rows_minus1 %d\n" - "column_width_minus1 %s\n" - "row_height_minus1 %s\n" - "pps_beta_offset_div2 %d\n" - "pps_tc_offset_div2 %d\n" - "log2_parallel_merge_level_minus2 %u\n" - "flags %s", - __entry->p.pic_parameter_set_id, - __entry->p.num_extra_slice_header_bits, - __entry->p.num_ref_idx_l0_default_active_minus1, - __entry->p.num_ref_idx_l1_default_active_minus1, - __entry->p.init_qp_minus26, - __entry->p.diff_cu_qp_delta_depth, - __entry->p.pps_cb_qp_offset, - __entry->p.pps_cr_qp_offset, - __entry->p.num_tile_columns_minus1, - __entry->p.num_tile_rows_minus1, - __print_array(__entry->p.column_width_minus1, - ARRAY_SIZE(__entry->p.column_width_minus1), - sizeof(__entry->p.column_width_minus1[0])), - __print_array(__entry->p.row_height_minus1, - ARRAY_SIZE(__entry->p.row_height_minus1), - sizeof(__entry->p.row_height_minus1[0])), - __entry->p.pps_beta_offset_div2, - __entry->p.pps_tc_offset_div2, - __entry->p.log2_parallel_merge_level_minus2, - __print_flags(__entry->p.flags, "|", - {V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED, "DEPENDENT_SLICE_= SEGMENT_ENABLED"}, - {V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRESENT, "OUTPUT_FLAG_PRESENT"}, - {V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED, "SIGN_DATA_HIDING_ENABLE= D"}, - {V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESENT, "CABAC_INIT_PRESENT"}, - {V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED, "CONSTRAINED_INTRA_PRED"}, - {V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED, "CU_QP_DELTA_ENABLED"}, - {V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT, "PPS_SLICE_CH= ROMA_QP_OFFSETS_PRESENT"}, - {V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED, "WEIGHTED_PRED"}, - {V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED, "WEIGHTED_BIPRED"}, - {V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED, "TRANSQUANT_BYPASS_ENAB= LED"}, - {V4L2_HEVC_PPS_FLAG_TILES_ENABLED, "TILES_ENABLED"}, - {V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED, "ENTROPY_CODING_SYNC_= ENABLED"}, - {V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED, "LOOP_FILTER_ACR= OSS_TILES_ENABLED"}, - {V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED, "PPS_LOOP_F= ILTER_ACROSS_SLICES_ENABLED"}, - {V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_OVERRIDE_ENABLED, "DEBLOCKING_FI= LTER_OVERRIDE_ENABLED"}, - {V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER, "DISABLE_DEBLOCKING= _FILTER"}, - {V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT, "LISTS_MODIFICATION_PR= ESENT"}, - {V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT, "SLICE_SEG= MENT_HEADER_EXTENSION_PRESENT"}, - {V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT, "DEBLOCKING_FIL= TER_CONTROL_PRESENT"}, - {V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING, "UNIFORM_SPACING"} - )) - -); - - - -DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_slice_params_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_slice_params *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_slice_params, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("\nbit_size %u\n" - "data_byte_offset %u\n" - "num_entry_point_offsets %u\n" - "nal_unit_type %u\n" - "nuh_temporal_id_plus1 %u\n" - "slice_type %u\n" - "colour_plane_id %u\n" - "slice_pic_order_cnt %d\n" - "num_ref_idx_l0_active_minus1 %u\n" - "num_ref_idx_l1_active_minus1 %u\n" - "collocated_ref_idx %u\n" - "five_minus_max_num_merge_cand %u\n" - "slice_qp_delta %d\n" - "slice_cb_qp_offset %d\n" - "slice_cr_qp_offset %d\n" - "slice_act_y_qp_offset %d\n" - "slice_act_cb_qp_offset %d\n" - "slice_act_cr_qp_offset %d\n" - "slice_beta_offset_div2 %d\n" - "slice_tc_offset_div2 %d\n" - "pic_struct %u\n" - "slice_segment_addr %u\n" - "ref_idx_l0 %s\n" - "ref_idx_l1 %s\n" - "short_term_ref_pic_set_size %u\n" - "long_term_ref_pic_set_size %u\n" - "flags %s", - __entry->s.bit_size, - __entry->s.data_byte_offset, - __entry->s.num_entry_point_offsets, - __entry->s.nal_unit_type, - __entry->s.nuh_temporal_id_plus1, - __entry->s.slice_type, - __entry->s.colour_plane_id, - __entry->s.slice_pic_order_cnt, - __entry->s.num_ref_idx_l0_active_minus1, - __entry->s.num_ref_idx_l1_active_minus1, - __entry->s.collocated_ref_idx, - __entry->s.five_minus_max_num_merge_cand, - __entry->s.slice_qp_delta, - __entry->s.slice_cb_qp_offset, - __entry->s.slice_cr_qp_offset, - __entry->s.slice_act_y_qp_offset, - __entry->s.slice_act_cb_qp_offset, - __entry->s.slice_act_cr_qp_offset, - __entry->s.slice_beta_offset_div2, - __entry->s.slice_tc_offset_div2, - __entry->s.pic_struct, - __entry->s.slice_segment_addr, - __print_array(__entry->s.ref_idx_l0, - ARRAY_SIZE(__entry->s.ref_idx_l0), - sizeof(__entry->s.ref_idx_l0[0])), - __print_array(__entry->s.ref_idx_l1, - ARRAY_SIZE(__entry->s.ref_idx_l1), - sizeof(__entry->s.ref_idx_l1[0])), - __entry->s.short_term_ref_pic_set_size, - __entry->s.long_term_ref_pic_set_size, - __print_flags(__entry->s.flags, "|", - {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA, "SLICE_SAO_LUMA"}, - {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA, "SLICE_SAO_CHROMA"}, - {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED, "SLICE_TEMPOR= AL_MVP_ENABLED"}, - {V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO, "MVD_L1_ZERO"}, - {V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT, "CABAC_INIT"}, - {V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0, "COLLOCATED_FROM_L0"}, - {V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INTEGER_MV, "USE_INTEGER_MV"}, - {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED, "SLICE_= DEBLOCKING_FILTER_DISABLED"}, - {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED, = "SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED"}, - {V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT, "DEPENDENT_SLICE= _SEGMENT"} - - )) -); - -DECLARE_EVENT_CLASS(v4l2_hevc_pred_weight_table_tmpl, - TP_PROTO(const struct v4l2_hevc_pred_weight_table *p), - TP_ARGS(p), - TP_STRUCT__entry(__field_struct(struct v4l2_hevc_pred_weight_table, p)), - TP_fast_assign(__entry->p =3D *p), - TP_printk("\ndelta_luma_weight_l0 %s\n" - "luma_offset_l0 %s\n" - "delta_chroma_weight_l0 {%s}\n" - "chroma_offset_l0 {%s}\n" - "delta_luma_weight_l1 %s\n" - "luma_offset_l1 %s\n" - "delta_chroma_weight_l1 {%s}\n" - "chroma_offset_l1 {%s}\n" - "luma_log2_weight_denom %d\n" - "delta_chroma_log2_weight_denom %d\n", - __print_array(__entry->p.delta_luma_weight_l0, - ARRAY_SIZE(__entry->p.delta_luma_weight_l0), - sizeof(__entry->p.delta_luma_weight_l0[0])), - __print_array(__entry->p.luma_offset_l0, - ARRAY_SIZE(__entry->p.luma_offset_l0), - sizeof(__entry->p.luma_offset_l0[0])), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->p.delta_chroma_weight_l0, - sizeof(__entry->p.delta_chroma_weight_l0), - false), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->p.chroma_offset_l0, - sizeof(__entry->p.chroma_offset_l0), - false), - __print_array(__entry->p.delta_luma_weight_l1, - ARRAY_SIZE(__entry->p.delta_luma_weight_l1), - sizeof(__entry->p.delta_luma_weight_l1[0])), - __print_array(__entry->p.luma_offset_l1, - ARRAY_SIZE(__entry->p.luma_offset_l1), - sizeof(__entry->p.luma_offset_l1[0])), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->p.delta_chroma_weight_l1, - sizeof(__entry->p.delta_chroma_weight_l1), - false), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->p.chroma_offset_l1, - sizeof(__entry->p.chroma_offset_l1), - false), - __entry->p.luma_log2_weight_denom, - __entry->p.delta_chroma_log2_weight_denom - - )) - -DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_scaling_matrix_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_scaling_matrix *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_scaling_matrix, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("\nscaling_list_4x4 {%s}\n" - "scaling_list_8x8 {%s}\n" - "scaling_list_16x16 {%s}\n" - "scaling_list_32x32 {%s}\n" - "scaling_list_dc_coef_16x16 %s\n" - "scaling_list_dc_coef_32x32 %s\n", - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->s.scaling_list_4x4, - sizeof(__entry->s.scaling_list_4x4), - false), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->s.scaling_list_8x8, - sizeof(__entry->s.scaling_list_8x8), - false), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->s.scaling_list_16x16, - sizeof(__entry->s.scaling_list_16x16), - false), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->s.scaling_list_32x32, - sizeof(__entry->s.scaling_list_32x32), - false), - __print_array(__entry->s.scaling_list_dc_coef_16x16, - ARRAY_SIZE(__entry->s.scaling_list_dc_coef_16x16), - sizeof(__entry->s.scaling_list_dc_coef_16x16[0])), - __print_array(__entry->s.scaling_list_dc_coef_32x32, - ARRAY_SIZE(__entry->s.scaling_list_dc_coef_32x32), - sizeof(__entry->s.scaling_list_dc_coef_32x32[0])) - )) - -DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_decode_params_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_decode_params *d), - TP_ARGS(d), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_decode_params, d)), - TP_fast_assign(__entry->d =3D *d), - TP_printk("\npic_order_cnt_val %d\n" - "short_term_ref_pic_set_size %u\n" - "long_term_ref_pic_set_size %u\n" - "num_active_dpb_entries %u\n" - "num_poc_st_curr_before %u\n" - "num_poc_st_curr_after %u\n" - "num_poc_lt_curr %u\n" - "poc_st_curr_before %s\n" - "poc_st_curr_after %s\n" - "poc_lt_curr %s\n" - "flags %s", - __entry->d.pic_order_cnt_val, - __entry->d.short_term_ref_pic_set_size, - __entry->d.long_term_ref_pic_set_size, - __entry->d.num_active_dpb_entries, - __entry->d.num_poc_st_curr_before, - __entry->d.num_poc_st_curr_after, - __entry->d.num_poc_lt_curr, - __print_array(__entry->d.poc_st_curr_before, - ARRAY_SIZE(__entry->d.poc_st_curr_before), - sizeof(__entry->d.poc_st_curr_before[0])), - __print_array(__entry->d.poc_st_curr_after, - ARRAY_SIZE(__entry->d.poc_st_curr_after), - sizeof(__entry->d.poc_st_curr_after[0])), - __print_array(__entry->d.poc_lt_curr, - ARRAY_SIZE(__entry->d.poc_lt_curr), - sizeof(__entry->d.poc_lt_curr[0])), - __print_flags(__entry->d.flags, "|", - {V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC, "IRAP_PIC"}, - {V4L2_HEVC_DECODE_PARAM_FLAG_IDR_PIC, "IDR_PIC"}, - {V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTPUT_OF_PRIOR, "NO_OUTPUT_OF_PRIOR"} - )) -); - -DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_lt_rps_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt), - TP_ARGS(lt), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_lt_rps, lt)= ), - TP_fast_assign(__entry->lt =3D *lt), - TP_printk("\nflags %s\n" - "lt_ref_pic_poc_lsb_sps %x\n", - __print_flags(__entry->lt.flags, "|", - {V4L2_HEVC_EXT_SPS_LT_RPS_FLAG_USED_LT, "USED_LT"} - ), - __entry->lt.lt_ref_pic_poc_lsb_sps - ) -) - -DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_st_rps_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_st_rps *st), - TP_ARGS(st), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_st_rps, st)= ), - TP_fast_assign(__entry->st =3D *st), - TP_printk("\nflags %s\n" - "delta_idx_minus1: %u\n" - "delta_rps_sign: %u\n" - "abs_delta_rps_minus1: %u\n" - "num_negative_pics: %u\n" - "num_positive_pics: %u\n" - "used_by_curr_pic: %08x\n" - "use_delta_flag: %08x\n" - "delta_poc_s0_minus1: %s\n" - "delta_poc_s1_minus1: %s\n", - __print_flags(__entry->st.flags, "|", - {V4L2_HEVC_EXT_SPS_ST_RPS_FLAG_INTER_REF_PIC_SET_PRED, "INTER_REF_PIC_= SET_PRED"} - ), - __entry->st.delta_idx_minus1, - __entry->st.delta_rps_sign, - __entry->st.abs_delta_rps_minus1, - __entry->st.num_negative_pics, - __entry->st.num_positive_pics, - __entry->st.used_by_curr_pic, - __entry->st.use_delta_flag, - __print_array(__entry->st.delta_poc_s0_minus1, - ARRAY_SIZE(__entry->st.delta_poc_s0_minus1), - sizeof(__entry->st.delta_poc_s0_minus1[0])), - __print_array(__entry->st.delta_poc_s1_minus1, - ARRAY_SIZE(__entry->st.delta_poc_s1_minus1), - sizeof(__entry->st.delta_poc_s1_minus1[0])) - ) -) - - -DECLARE_EVENT_CLASS(v4l2_hevc_dpb_entry_tmpl, - TP_PROTO(const struct v4l2_hevc_dpb_entry *e), - TP_ARGS(e), - TP_STRUCT__entry(__field_struct(struct v4l2_hevc_dpb_entry, e)), - TP_fast_assign(__entry->e =3D *e), - TP_printk("\ntimestamp %llu\n" - "flags %s\n" - "field_pic %u\n" - "pic_order_cnt_val %d\n", - __entry->e.timestamp, - __print_flags(__entry->e.flags, "|", - {V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE, "LONG_TERM_REFERENCE"} - ), - __entry->e.field_pic, - __entry->e.pic_order_cnt_val - )) - -DEFINE_EVENT(v4l2_ctrl_hevc_sps_tmpl, v4l2_ctrl_hevc_sps, - TP_PROTO(const struct v4l2_ctrl_hevc_sps *s), - TP_ARGS(s) -); - -DEFINE_EVENT(v4l2_ctrl_hevc_pps_tmpl, v4l2_ctrl_hevc_pps, - TP_PROTO(const struct v4l2_ctrl_hevc_pps *p), - TP_ARGS(p) -); - -DEFINE_EVENT(v4l2_ctrl_hevc_slice_params_tmpl, v4l2_ctrl_hevc_slice_params, - TP_PROTO(const struct v4l2_ctrl_hevc_slice_params *s), - TP_ARGS(s) -); - -DEFINE_EVENT(v4l2_hevc_pred_weight_table_tmpl, v4l2_hevc_pred_weight_table, - TP_PROTO(const struct v4l2_hevc_pred_weight_table *p), - TP_ARGS(p) -); - -DEFINE_EVENT(v4l2_ctrl_hevc_scaling_matrix_tmpl, v4l2_ctrl_hevc_scaling_ma= trix, - TP_PROTO(const struct v4l2_ctrl_hevc_scaling_matrix *s), - TP_ARGS(s) -); - -DEFINE_EVENT(v4l2_ctrl_hevc_decode_params_tmpl, v4l2_ctrl_hevc_decode_para= ms, - TP_PROTO(const struct v4l2_ctrl_hevc_decode_params *d), - TP_ARGS(d) -); - -DEFINE_EVENT(v4l2_ctrl_hevc_ext_sps_lt_rps_tmpl, v4l2_ctrl_hevc_ext_sps_lt= _rps, - TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt), - TP_ARGS(lt) -); - -DEFINE_EVENT(v4l2_ctrl_hevc_ext_sps_st_rps_tmpl, v4l2_ctrl_hevc_ext_sps_st= _rps, - TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_st_rps *st), - TP_ARGS(st) -); - -DEFINE_EVENT(v4l2_hevc_dpb_entry_tmpl, v4l2_hevc_dpb_entry, - TP_PROTO(const struct v4l2_hevc_dpb_entry *e), - TP_ARGS(e) -); - -#endif - -#undef TRACE_INCLUDE_PATH -#undef TRACE_INCLUDE_FILE -#define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl -#define TRACE_INCLUDE_FILE visl-trace-hevc -#include diff --git a/drivers/media/test-drivers/visl/visl-trace-mpeg2.h b/drivers/m= edia/test-drivers/visl/visl-trace-mpeg2.h deleted file mode 100644 index ba6c65481194..000000000000 --- a/drivers/media/test-drivers/visl/visl-trace-mpeg2.h +++ /dev/null @@ -1,99 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#if !defined(_VISL_TRACE_MPEG2_H_) || defined(TRACE_HEADER_MULTI_READ) -#define _VISL_TRACE_MPEG2_H_ - -#include -#include "visl.h" - -#undef TRACE_SYSTEM -#define TRACE_SYSTEM visl_mpeg2_controls - -DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_seq_tmpl, - TP_PROTO(const struct v4l2_ctrl_mpeg2_sequence *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_sequence, s)), - TP_fast_assign(__entry->s =3D *s;), - TP_printk("\nhorizontal_size %u\nvertical_size %u\nvbv_buffer_size %u\n" - "profile_and_level_indication %u\nchroma_format %u\nflags %s\n", - __entry->s.horizontal_size, - __entry->s.vertical_size, - __entry->s.vbv_buffer_size, - __entry->s.profile_and_level_indication, - __entry->s.chroma_format, - __print_flags(__entry->s.flags, "|", - {V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE, "PROGRESSIVE"}) - ) -); - -DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_pic_tmpl, - TP_PROTO(const struct v4l2_ctrl_mpeg2_picture *p), - TP_ARGS(p), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_picture, p)), - TP_fast_assign(__entry->p =3D *p;), - TP_printk("\nbackward_ref_ts %llu\nforward_ref_ts %llu\nflags %s\nf_code = {%s}\n" - "picture_coding_type: %u\npicture_structure %u\nintra_dc_precision %u\= n", - __entry->p.backward_ref_ts, - __entry->p.forward_ref_ts, - __print_flags(__entry->p.flags, "|", - {V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST, "TOP_FIELD_FIRST"}, - {V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT, "FRAME_PRED_DCT"}, - {V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV, "CONCEALMENT_MV"}, - {V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE, "Q_SCALE_TYPE"}, - {V4L2_MPEG2_PIC_FLAG_INTRA_VLC, "INTA_VLC"}, - {V4L2_MPEG2_PIC_FLAG_ALT_SCAN, "ALT_SCAN"}, - {V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST, "REPEAT_FIRST"}, - {V4L2_MPEG2_PIC_FLAG_PROGRESSIVE, "PROGRESSIVE"}), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->p.f_code, - sizeof(__entry->p.f_code), - false), - __entry->p.picture_coding_type, - __entry->p.picture_structure, - __entry->p.intra_dc_precision - ) -); - -DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_quant_tmpl, - TP_PROTO(const struct v4l2_ctrl_mpeg2_quantisation *q), - TP_ARGS(q), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_quantisation, q)), - TP_fast_assign(__entry->q =3D *q;), - TP_printk("\nintra_quantiser_matrix %s\nnon_intra_quantiser_matrix %s\n" - "chroma_intra_quantiser_matrix %s\nchroma_non_intra_quantiser_matrix %= s\n", - __print_array(__entry->q.intra_quantiser_matrix, - ARRAY_SIZE(__entry->q.intra_quantiser_matrix), - sizeof(__entry->q.intra_quantiser_matrix[0])), - __print_array(__entry->q.non_intra_quantiser_matrix, - ARRAY_SIZE(__entry->q.non_intra_quantiser_matrix), - sizeof(__entry->q.non_intra_quantiser_matrix[0])), - __print_array(__entry->q.chroma_intra_quantiser_matrix, - ARRAY_SIZE(__entry->q.chroma_intra_quantiser_matrix), - sizeof(__entry->q.chroma_intra_quantiser_matrix[0])), - __print_array(__entry->q.chroma_non_intra_quantiser_matrix, - ARRAY_SIZE(__entry->q.chroma_non_intra_quantiser_matrix), - sizeof(__entry->q.chroma_non_intra_quantiser_matrix[0])) - ) -) - -DEFINE_EVENT(v4l2_ctrl_mpeg2_seq_tmpl, v4l2_ctrl_mpeg2_sequence, - TP_PROTO(const struct v4l2_ctrl_mpeg2_sequence *s), - TP_ARGS(s) -); - -DEFINE_EVENT(v4l2_ctrl_mpeg2_pic_tmpl, v4l2_ctrl_mpeg2_picture, - TP_PROTO(const struct v4l2_ctrl_mpeg2_picture *p), - TP_ARGS(p) -); - -DEFINE_EVENT(v4l2_ctrl_mpeg2_quant_tmpl, v4l2_ctrl_mpeg2_quantisation, - TP_PROTO(const struct v4l2_ctrl_mpeg2_quantisation *q), - TP_ARGS(q) -); - -#endif - -#undef TRACE_INCLUDE_PATH -#undef TRACE_INCLUDE_FILE -#define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl -#define TRACE_INCLUDE_FILE visl-trace-mpeg2 -#include diff --git a/drivers/media/test-drivers/visl/visl-trace-points.c b/drivers/= media/test-drivers/visl/visl-trace-points.c deleted file mode 100644 index 321ff732c682..000000000000 --- a/drivers/media/test-drivers/visl/visl-trace-points.c +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include "visl.h" - -#define CREATE_TRACE_POINTS -#include "visl-trace-fwht.h" -#include "visl-trace-mpeg2.h" -#include "visl-trace-vp8.h" -#include "visl-trace-vp9.h" -#include "visl-trace-h264.h" -#include "visl-trace-hevc.h" -#include "visl-trace-av1.h" diff --git a/drivers/media/test-drivers/visl/visl-trace-vp8.h b/drivers/med= ia/test-drivers/visl/visl-trace-vp8.h deleted file mode 100644 index dabe17d69ddc..000000000000 --- a/drivers/media/test-drivers/visl/visl-trace-vp8.h +++ /dev/null @@ -1,156 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#if !defined(_VISL_TRACE_VP8_H_) || defined(TRACE_HEADER_MULTI_READ) -#define _VISL_TRACE_VP8_H_ - -#include -#include "visl.h" - -#undef TRACE_SYSTEM -#define TRACE_SYSTEM visl_vp8_controls - -DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_entropy_tmpl, - TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), - TP_ARGS(f), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp8_frame, f)), - TP_fast_assign(__entry->f =3D *f;), - TP_printk("\nentropy.coeff_probs {%s}\n" - "entropy.y_mode_probs %s\n" - "entropy.uv_mode_probs %s\n" - "entropy.mv_probs {%s}", - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->f.entropy.coeff_probs, - sizeof(__entry->f.entropy.coeff_probs), - false), - __print_array(__entry->f.entropy.y_mode_probs, - ARRAY_SIZE(__entry->f.entropy.y_mode_probs), - sizeof(__entry->f.entropy.y_mode_probs[0])), - __print_array(__entry->f.entropy.uv_mode_probs, - ARRAY_SIZE(__entry->f.entropy.uv_mode_probs), - sizeof(__entry->f.entropy.uv_mode_probs[0])), - __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, - __entry->f.entropy.mv_probs, - sizeof(__entry->f.entropy.mv_probs), - false) - ) -) - -DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_frame_tmpl, - TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), - TP_ARGS(f), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp8_frame, f)), - TP_fast_assign(__entry->f =3D *f;), - TP_printk("\nsegment.quant_update %s\n" - "segment.lf_update %s\n" - "segment.segment_probs %s\n" - "segment.flags %s\n" - "lf.ref_frm_delta %s\n" - "lf.mb_mode_delta %s\n" - "lf.sharpness_level %u\n" - "lf.level %u\n" - "lf.flags %s\n" - "quant.y_ac_qi %u\n" - "quant.y_dc_delta %d\n" - "quant.y2_dc_delta %d\n" - "quant.y2_ac_delta %d\n" - "quant.uv_dc_delta %d\n" - "quant.uv_ac_delta %d\n" - "coder_state.range %u\n" - "coder_state.value %u\n" - "coder_state.bit_count %u\n" - "width %u\n" - "height %u\n" - "horizontal_scale %u\n" - "vertical_scale %u\n" - "version %u\n" - "prob_skip_false %u\n" - "prob_intra %u\n" - "prob_last %u\n" - "prob_gf %u\n" - "num_dct_parts %u\n" - "first_part_size %u\n" - "first_part_header_bits %u\n" - "dct_part_sizes %s\n" - "last_frame_ts %llu\n" - "golden_frame_ts %llu\n" - "alt_frame_ts %llu\n" - "flags %s", - __print_array(__entry->f.segment.quant_update, - ARRAY_SIZE(__entry->f.segment.quant_update), - sizeof(__entry->f.segment.quant_update[0])), - __print_array(__entry->f.segment.lf_update, - ARRAY_SIZE(__entry->f.segment.lf_update), - sizeof(__entry->f.segment.lf_update[0])), - __print_array(__entry->f.segment.segment_probs, - ARRAY_SIZE(__entry->f.segment.segment_probs), - sizeof(__entry->f.segment.segment_probs[0])), - __print_flags(__entry->f.segment.flags, "|", - {V4L2_VP8_SEGMENT_FLAG_ENABLED, "SEGMENT_ENABLED"}, - {V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP, "SEGMENT_UPDATE_MAP"}, - {V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA, "SEGMENT_UPDATE_FEATURE_DA= TA"}, - {V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE, "SEGMENT_DELTA_VALUE_MODE"}), - __print_array(__entry->f.lf.ref_frm_delta, - ARRAY_SIZE(__entry->f.lf.ref_frm_delta), - sizeof(__entry->f.lf.ref_frm_delta[0])), - __print_array(__entry->f.lf.mb_mode_delta, - ARRAY_SIZE(__entry->f.lf.mb_mode_delta), - sizeof(__entry->f.lf.mb_mode_delta[0])), - __entry->f.lf.sharpness_level, - __entry->f.lf.level, - __print_flags(__entry->f.lf.flags, "|", - {V4L2_VP8_LF_ADJ_ENABLE, "LF_ADJ_ENABLED"}, - {V4L2_VP8_LF_DELTA_UPDATE, "LF_DELTA_UPDATE"}, - {V4L2_VP8_LF_FILTER_TYPE_SIMPLE, "LF_FILTER_TYPE_SIMPLE"}), - __entry->f.quant.y_ac_qi, - __entry->f.quant.y_dc_delta, - __entry->f.quant.y2_dc_delta, - __entry->f.quant.y2_ac_delta, - __entry->f.quant.uv_dc_delta, - __entry->f.quant.uv_ac_delta, - __entry->f.coder_state.range, - __entry->f.coder_state.value, - __entry->f.coder_state.bit_count, - __entry->f.width, - __entry->f.height, - __entry->f.horizontal_scale, - __entry->f.vertical_scale, - __entry->f.version, - __entry->f.prob_skip_false, - __entry->f.prob_intra, - __entry->f.prob_last, - __entry->f.prob_gf, - __entry->f.num_dct_parts, - __entry->f.first_part_size, - __entry->f.first_part_header_bits, - __print_array(__entry->f.dct_part_sizes, - ARRAY_SIZE(__entry->f.dct_part_sizes), - sizeof(__entry->f.dct_part_sizes[0])), - __entry->f.last_frame_ts, - __entry->f.golden_frame_ts, - __entry->f.alt_frame_ts, - __print_flags(__entry->f.flags, "|", - {V4L2_VP8_FRAME_FLAG_KEY_FRAME, "KEY_FRAME"}, - {V4L2_VP8_FRAME_FLAG_EXPERIMENTAL, "EXPERIMENTAL"}, - {V4L2_VP8_FRAME_FLAG_SHOW_FRAME, "SHOW_FRAME"}, - {V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF, "MB_NO_SKIP_COEFF"}, - {V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN, "SIGN_BIAS_GOLDEN"}, - {V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT, "SIGN_BIAS_ALT"}) - ) -); - -DEFINE_EVENT(v4l2_ctrl_vp8_frame_tmpl, v4l2_ctrl_vp8_frame, - TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), - TP_ARGS(f) -); - -DEFINE_EVENT(v4l2_ctrl_vp8_entropy_tmpl, v4l2_ctrl_vp8_entropy, - TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), - TP_ARGS(f) -); - -#endif - -#undef TRACE_INCLUDE_PATH -#undef TRACE_INCLUDE_FILE -#define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl -#define TRACE_INCLUDE_FILE visl-trace-vp8 -#include diff --git a/drivers/media/test-drivers/visl/visl-trace-vp9.h b/drivers/med= ia/test-drivers/visl/visl-trace-vp9.h deleted file mode 100644 index 362b92b07f93..000000000000 --- a/drivers/media/test-drivers/visl/visl-trace-vp9.h +++ /dev/null @@ -1,292 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#if !defined(_VISL_TRACE_VP9_H_) || defined(TRACE_HEADER_MULTI_READ) -#define _VISL_TRACE_VP9_H_ - -#include -#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 =3D *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_SMOOT= H"}, - {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_REFE= RENCE"}, - {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 =3D *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 =3D *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 =3D *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_h= dr, - 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 diff --git a/drivers/media/v4l2-core/v4l2-trace.c b/drivers/media/v4l2-core= /v4l2-trace.c index 95f3b02e1f84..9ce54c1968ef 100644 --- a/drivers/media/v4l2-core/v4l2-trace.c +++ b/drivers/media/v4l2-core/v4l2-trace.c @@ -5,8 +5,53 @@ =20 #define CREATE_TRACE_POINTS #include +#include =20 EXPORT_TRACEPOINT_SYMBOL_GPL(vb2_v4l2_buf_done); EXPORT_TRACEPOINT_SYMBOL_GPL(vb2_v4l2_buf_queue); EXPORT_TRACEPOINT_SYMBOL_GPL(vb2_v4l2_dqbuf); EXPORT_TRACEPOINT_SYMBOL_GPL(vb2_v4l2_qbuf); + +/* Export AV1 controls */ +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_av1_sequence); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_av1_frame); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_av1_tile_group_entry); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_av1_film_grain); + +/* Export FWHT controls */ +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_fwht_params); + +/* Export H264 controls */ +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_h264_sps); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_h264_pps); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_h264_scaling_matrix); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_h264_pred_weights); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_h264_slice_params); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_h264_ref_pic_list0); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_h264_ref_pic_list1); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_h264_decode_params); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_h264_dpb_entry); + +/* Export HEVC controls */ +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_hevc_sps); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_hevc_pps); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_hevc_slice_params); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_hevc_pred_weight_table); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_hevc_scaling_matrix); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_hevc_decode_params); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_hevc_dpb_entry); + +/* Export MPEG2 controls */ +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_mpeg2_sequence); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_mpeg2_picture); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_mpeg2_quantisation); + +/* Export VP8 controls */ +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_vp8_frame); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_vp8_entropy); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_vp9_frame); + +/* Export VP9 controls */ +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_vp9_compressed_hdr); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_vp9_compressed_coeff); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_vp9_mv_probs); diff --git a/include/trace/events/v4l2_requests.h b/include/trace/events/v4= l2_requests.h new file mode 100644 index 000000000000..1e137d39d5fe --- /dev/null +++ b/include/trace/events/v4l2_requests.h @@ -0,0 +1,1645 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#if !defined(_TRACE_V4L2_REQUESTS_H_) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_V4L2_REQUESTS_H_ + +#include +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM v4l2_requests + +/* 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 =3D *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_SUPERBLOC= K"}, + {V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTER_INTRA, "ENABLE_FILTER_INTRA"}, + {V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA_EDGE_FILTER, "ENABLE_INTRA_EDGE_F= ILTER"}, + {V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTERINTRA_COMPOUND, "ENABLE_INTERINTRA= _COMPOUND"}, + {V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKED_COMPOUND, "ENABLE_MASKED_COMPOUN= D"}, + {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 =3D *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 =3D *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, + __entry->f.tile_info.tile_cols, + __entry->f.tile_info.tile_rows, + __print_array(__entry->f.tile_info.mi_col_starts, + ARRAY_SIZE(__entry->f.tile_info.mi_col_starts), + sizeof(__entry->f.tile_info.mi_col_starts[0])), + __print_array(__entry->f.tile_info.mi_row_starts, + ARRAY_SIZE(__entry->f.tile_info.mi_row_starts), + sizeof(__entry->f.tile_info.mi_row_starts[0])), + __print_array(__entry->f.tile_info.width_in_sbs_minus_1, + ARRAY_SIZE(__entry->f.tile_info.width_in_sbs_minus_1), + sizeof(__entry->f.tile_info.width_in_sbs_minus_1[0])), + __print_array(__entry->f.tile_info.height_in_sbs_minus_1, + ARRAY_SIZE(__entry->f.tile_info.height_in_sbs_minus_1), + sizeof(__entry->f.tile_info.height_in_sbs_minus_1[0])), + __entry->f.tile_info.tile_size_bytes, + __print_flags(__entry->f.quantization.flags, "|", + {V4L2_AV1_QUANTIZATION_FLAG_DIFF_UV_DELTA, "DIFF_UV_DELTA"}, + {V4L2_AV1_QUANTIZATION_FLAG_USING_QMATRIX, "USING_QMATRIX"}, + {V4L2_AV1_QUANTIZATION_FLAG_DELTA_Q_PRESENT, "DELTA_Q_PRESENT"}), + __entry->f.quantization.base_q_idx, + __entry->f.quantization.delta_q_y_dc, + __entry->f.quantization.delta_q_u_dc, + __entry->f.quantization.delta_q_u_ac, + __entry->f.quantization.delta_q_v_dc, + __entry->f.quantization.delta_q_v_ac, + __entry->f.quantization.qm_y, + __entry->f.quantization.qm_u, + __entry->f.quantization.qm_v, + __entry->f.quantization.delta_q_res, + __entry->f.superres_denom, + __print_flags(__entry->f.segmentation.flags, "|", + {V4L2_AV1_SEGMENTATION_FLAG_ENABLED, "ENABLED"}, + {V4L2_AV1_SEGMENTATION_FLAG_UPDATE_MAP, "UPDATE_MAP"}, + {V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL_UPDATE, "TEMPORAL_UPDATE"}, + {V4L2_AV1_SEGMENTATION_FLAG_UPDATE_DATA, "UPDATE_DATA"}, + {V4L2_AV1_SEGMENTATION_FLAG_SEG_ID_PRE_SKIP, "SEG_ID_PRE_SKIP"}), + __entry->f.segmentation.last_active_seg_id, + __print_array(__entry->f.segmentation.feature_enabled, + ARRAY_SIZE(__entry->f.segmentation.feature_enabled), + sizeof(__entry->f.segmentation.feature_enabled[0])), + __print_flags(__entry->f.loop_filter.flags, "|", + {V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENABLED, "DELTA_ENABLED"}, + {V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPDATE, "DELTA_UPDATE"}, + {V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_PRESENT, "DELTA_LF_PRESENT"}, + {V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_MULTI, "DELTA_LF_MULTI"}), + __print_array(__entry->f.loop_filter.level, + ARRAY_SIZE(__entry->f.loop_filter.level), + sizeof(__entry->f.loop_filter.level[0])), + __entry->f.loop_filter.sharpness, + __print_array(__entry->f.loop_filter.ref_deltas, + ARRAY_SIZE(__entry->f.loop_filter.ref_deltas), + sizeof(__entry->f.loop_filter.ref_deltas[0])), + __print_array(__entry->f.loop_filter.mode_deltas, + ARRAY_SIZE(__entry->f.loop_filter.mode_deltas), + sizeof(__entry->f.loop_filter.mode_deltas[0])), + __entry->f.loop_filter.delta_lf_res, + __entry->f.cdef.damping_minus_3, + __entry->f.cdef.bits, + __print_array(__entry->f.cdef.y_pri_strength, + ARRAY_SIZE(__entry->f.cdef.y_pri_strength), + sizeof(__entry->f.cdef.y_pri_strength[0])), + __print_array(__entry->f.cdef.y_sec_strength, + ARRAY_SIZE(__entry->f.cdef.y_sec_strength), + sizeof(__entry->f.cdef.y_sec_strength[0])), + __print_array(__entry->f.cdef.uv_pri_strength, + ARRAY_SIZE(__entry->f.cdef.uv_pri_strength), + sizeof(__entry->f.cdef.uv_pri_strength[0])), + __print_array(__entry->f.cdef.uv_sec_strength, + ARRAY_SIZE(__entry->f.cdef.uv_sec_strength), + sizeof(__entry->f.cdef.uv_sec_strength[0])), + __print_array(__entry->f.skip_mode_frame, + ARRAY_SIZE(__entry->f.skip_mode_frame), + sizeof(__entry->f.skip_mode_frame[0])), + __entry->f.primary_ref_frame, + __print_flags(__entry->f.loop_restoration.flags, "|", + {V4L2_AV1_LOOP_RESTORATION_FLAG_USES_LR, "USES_LR"}, + {V4L2_AV1_LOOP_RESTORATION_FLAG_USES_CHROMA_LR, "USES_CHROMA_LR"}), + __entry->f.loop_restoration.lr_unit_shift, + __entry->f.loop_restoration.lr_uv_shift, + __print_array(__entry->f.loop_restoration.frame_restoration_type, + ARRAY_SIZE(__entry->f.loop_restoration.frame_restoration_type), + sizeof(__entry->f.loop_restoration.frame_restoration_type[0])), + __print_array(__entry->f.loop_restoration.loop_restoration_size, + ARRAY_SIZE(__entry->f.loop_restoration.loop_restoration_size), + sizeof(__entry->f.loop_restoration.loop_restoration_size[0])), + __print_flags(__entry->f.flags, "|", + {V4L2_AV1_FRAME_FLAG_SHOW_FRAME, "SHOW_FRAME"}, + {V4L2_AV1_FRAME_FLAG_SHOWABLE_FRAME, "SHOWABLE_FRAME"}, + {V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE, "ERROR_RESILIENT_MODE"}, + {V4L2_AV1_FRAME_FLAG_DISABLE_CDF_UPDATE, "DISABLE_CDF_UPDATE"}, + {V4L2_AV1_FRAME_FLAG_ALLOW_SCREEN_CONTENT_TOOLS, "ALLOW_SCREEN_CONTENT= _TOOLS"}, + {V4L2_AV1_FRAME_FLAG_FORCE_INTEGER_MV, "FORCE_INTEGER_MV"}, + {V4L2_AV1_FRAME_FLAG_ALLOW_INTRABC, "ALLOW_INTRABC"}, + {V4L2_AV1_FRAME_FLAG_USE_SUPERRES, "USE_SUPERRES"}, + {V4L2_AV1_FRAME_FLAG_ALLOW_HIGH_PRECISION_MV, "ALLOW_HIGH_PRECISION_MV= "}, + {V4L2_AV1_FRAME_FLAG_IS_MOTION_MODE_SWITCHABLE, "IS_MOTION_MODE_SWITCH= ABLE"}, + {V4L2_AV1_FRAME_FLAG_USE_REF_FRAME_MVS, "USE_REF_FRAME_MVS"}, + {V4L2_AV1_FRAME_FLAG_DISABLE_FRAME_END_UPDATE_CDF, + "DISABLE_FRAME_END_UPDATE_CDF"}, + {V4L2_AV1_FRAME_FLAG_ALLOW_WARPED_MOTION, "ALLOW_WARPED_MOTION"}, + {V4L2_AV1_FRAME_FLAG_REFERENCE_SELECT, "REFERENCE_SELECT"}, + {V4L2_AV1_FRAME_FLAG_REDUCED_TX_SET, "REDUCED_TX_SET"}, + {V4L2_AV1_FRAME_FLAG_SKIP_MODE_ALLOWED, "SKIP_MODE_ALLOWED"}, + {V4L2_AV1_FRAME_FLAG_SKIP_MODE_PRESENT, "SKIP_MODE_PRESENT"}, + {V4L2_AV1_FRAME_FLAG_FRAME_SIZE_OVERRIDE, "FRAME_SIZE_OVERRIDE"}, + {V4L2_AV1_FRAME_FLAG_BUFFER_REMOVAL_TIME_PRESENT, "BUFFER_REMOVAL_TIME= _PRESENT"}, + {V4L2_AV1_FRAME_FLAG_FRAME_REFS_SHORT_SIGNALING, "FRAME_REFS_SHORT_SIG= NALING"}), + __entry->f.order_hint, + __entry->f.upscaled_width, + __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.current_frame_id, + __print_array(__entry->f.buffer_removal_time, + ARRAY_SIZE(__entry->f.buffer_removal_time), + sizeof(__entry->f.buffer_removal_time[0])), + __print_array(__entry->f.order_hints, + ARRAY_SIZE(__entry->f.order_hints), + sizeof(__entry->f.order_hints[0])), + __print_array(__entry->f.reference_frame_ts, + ARRAY_SIZE(__entry->f.reference_frame_ts), + sizeof(__entry->f.reference_frame_ts[0])), + __print_array(__entry->f.ref_frame_idx, + ARRAY_SIZE(__entry->f.ref_frame_idx), + sizeof(__entry->f.ref_frame_idx[0])), + __entry->f.refresh_frame_flags + ) +); + + +DECLARE_EVENT_CLASS(v4l2_ctrl_av1_film_grain_tmpl, + TP_PROTO(const struct v4l2_ctrl_av1_film_grain *f), + TP_ARGS(f), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_av1_film_grain, f)), + TP_fast_assign(__entry->f =3D *f;), + TP_printk("\nflags %s\ncr_mult: %u\ngrain_seed: %u\n" + "film_grain_params_ref_idx: %u\nnum_y_points: %u\npoint_y_value: %s\n" + "point_y_scaling: %s\nnum_cb_points: %u\npoint_cb_value: %s\n" + "point_cb_scaling: %s\nnum_cr_points: %u\npoint_cr_value: %s\n" + "point_cr_scaling: %s\ngrain_scaling_minus_8: %u\nar_coeff_lag: %u\n" + "ar_coeffs_y_plus_128: %s\nar_coeffs_cb_plus_128: %s\n" + "ar_coeffs_cr_plus_128: %s\nar_coeff_shift_minus_6: %u\n" + "grain_scale_shift: %u\ncb_mult: %u\ncb_luma_mult: %u\ncr_luma_mult: %= u\n" + "cb_offset: %u\ncr_offset: %u\n", + __print_flags(__entry->f.flags, "|", + {V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN, "APPLY_GRAIN"}, + {V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN, "UPDATE_GRAIN"}, + {V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCALING_FROM_LUMA, "CHROMA_SCALING_FR= OM_LUMA"}, + {V4L2_AV1_FILM_GRAIN_FLAG_OVERLAP, "OVERLAP"}, + {V4L2_AV1_FILM_GRAIN_FLAG_CLIP_TO_RESTRICTED_RANGE, "CLIP_TO_RESTRICTE= D_RANGE"}), + __entry->f.cr_mult, + __entry->f.grain_seed, + __entry->f.film_grain_params_ref_idx, + __entry->f.num_y_points, + __print_array(__entry->f.point_y_value, + ARRAY_SIZE(__entry->f.point_y_value), + sizeof(__entry->f.point_y_value[0])), + __print_array(__entry->f.point_y_scaling, + ARRAY_SIZE(__entry->f.point_y_scaling), + sizeof(__entry->f.point_y_scaling[0])), + __entry->f.num_cb_points, + __print_array(__entry->f.point_cb_value, + ARRAY_SIZE(__entry->f.point_cb_value), + sizeof(__entry->f.point_cb_value[0])), + __print_array(__entry->f.point_cb_scaling, + ARRAY_SIZE(__entry->f.point_cb_scaling), + sizeof(__entry->f.point_cb_scaling[0])), + __entry->f.num_cr_points, + __print_array(__entry->f.point_cr_value, + ARRAY_SIZE(__entry->f.point_cr_value), + sizeof(__entry->f.point_cr_value[0])), + __print_array(__entry->f.point_cr_scaling, + ARRAY_SIZE(__entry->f.point_cr_scaling), + sizeof(__entry->f.point_cr_scaling[0])), + __entry->f.grain_scaling_minus_8, + __entry->f.ar_coeff_lag, + __print_array(__entry->f.ar_coeffs_y_plus_128, + ARRAY_SIZE(__entry->f.ar_coeffs_y_plus_128), + sizeof(__entry->f.ar_coeffs_y_plus_128[0])), + __print_array(__entry->f.ar_coeffs_cb_plus_128, + ARRAY_SIZE(__entry->f.ar_coeffs_cb_plus_128), + sizeof(__entry->f.ar_coeffs_cb_plus_128[0])), + __print_array(__entry->f.ar_coeffs_cr_plus_128, + ARRAY_SIZE(__entry->f.ar_coeffs_cr_plus_128), + sizeof(__entry->f.ar_coeffs_cr_plus_128[0])), + __entry->f.ar_coeff_shift_minus_6, + __entry->f.grain_scale_shift, + __entry->f.cb_mult, + __entry->f.cb_luma_mult, + __entry->f.cr_luma_mult, + __entry->f.cb_offset, + __entry->f.cr_offset + ) +) + +DEFINE_EVENT(v4l2_ctrl_av1_seq_tmpl, v4l2_ctrl_av1_sequence, + TP_PROTO(const struct v4l2_ctrl_av1_sequence *s), + TP_ARGS(s) +); + +DEFINE_EVENT(v4l2_ctrl_av1_frame_tmpl, v4l2_ctrl_av1_frame, + TP_PROTO(const struct v4l2_ctrl_av1_frame *f), + TP_ARGS(f) +); + +DEFINE_EVENT(v4l2_ctrl_av1_tge_tmpl, v4l2_ctrl_av1_tile_group_entry, + TP_PROTO(const struct v4l2_ctrl_av1_tile_group_entry *t), + TP_ARGS(t) +); + +DEFINE_EVENT(v4l2_ctrl_av1_film_grain_tmpl, v4l2_ctrl_av1_film_grain, + TP_PROTO(const struct v4l2_ctrl_av1_film_grain *f), + TP_ARGS(f) +); + +/* FWHT controls */ + +DECLARE_EVENT_CLASS(v4l2_ctrl_fwht_params_tmpl, + TP_PROTO(const struct v4l2_ctrl_fwht_params *p), + TP_ARGS(p), + TP_STRUCT__entry( + __field(u64, backward_ref_ts) + __field(u32, version) + __field(u32, width) + __field(u32, height) + __field(u32, flags) + __field(u32, colorspace) + __field(u32, xfer_func) + __field(u32, ycbcr_enc) + __field(u32, quantization) + ), + TP_fast_assign( + __entry->backward_ref_ts =3D p->backward_ref_ts; + __entry->version =3D p->version; + __entry->width =3D p->width; + __entry->height =3D p->height; + __entry->flags =3D p->flags; + __entry->colorspace =3D p->colorspace; + __entry->xfer_func =3D p->xfer_func; + __entry->ycbcr_enc =3D p->ycbcr_enc; + __entry->quantization =3D p->quantization; + ), + TP_printk("backward_ref_ts %llu version %u width %u height %u flags %s co= lorspace %u xfer_func %u ycbcr_enc %u quantization %u", + __entry->backward_ref_ts, __entry->version, __entry->width, __entry->h= eight, + __print_flags(__entry->flags, "|", + {V4L2_FWHT_FL_IS_INTERLACED, "IS_INTERLACED"}, + {V4L2_FWHT_FL_IS_BOTTOM_FIRST, "IS_BOTTOM_FIRST"}, + {V4L2_FWHT_FL_IS_ALTERNATE, "IS_ALTERNATE"}, + {V4L2_FWHT_FL_IS_BOTTOM_FIELD, "IS_BOTTOM_FIELD"}, + {V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED, "LUMA_IS_UNCOMPRESSED"}, + {V4L2_FWHT_FL_CB_IS_UNCOMPRESSED, "CB_IS_UNCOMPRESSED"}, + {V4L2_FWHT_FL_CR_IS_UNCOMPRESSED, "CR_IS_UNCOMPRESSED"}, + {V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED, "ALPHA_IS_UNCOMPRESSED"}, + {V4L2_FWHT_FL_I_FRAME, "I_FRAME"}, + {V4L2_FWHT_FL_PIXENC_HSV, "PIXENC_HSV"}, + {V4L2_FWHT_FL_PIXENC_RGB, "PIXENC_RGB"}, + {V4L2_FWHT_FL_PIXENC_YUV, "PIXENC_YUV"}), + __entry->colorspace, __entry->xfer_func, __entry->ycbcr_enc, + __entry->quantization) +); + +DEFINE_EVENT(v4l2_ctrl_fwht_params_tmpl, v4l2_ctrl_fwht_params, + TP_PROTO(const struct v4l2_ctrl_fwht_params *p), + TP_ARGS(p) +); + +/* H264 controls */ + +DECLARE_EVENT_CLASS(v4l2_ctrl_h264_sps_tmpl, + TP_PROTO(const struct v4l2_ctrl_h264_sps *s), + TP_ARGS(s), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_sps, s)), + TP_fast_assign(__entry->s =3D *s), + TP_printk("\nprofile_idc %u\n" + "constraint_set_flags %s\n" + "level_idc %u\n" + "seq_parameter_set_id %u\n" + "chroma_format_idc %u\n" + "bit_depth_luma_minus8 %u\n" + "bit_depth_chroma_minus8 %u\n" + "log2_max_frame_num_minus4 %u\n" + "pic_order_cnt_type %u\n" + "log2_max_pic_order_cnt_lsb_minus4 %u\n" + "max_num_ref_frames %u\n" + "num_ref_frames_in_pic_order_cnt_cycle %u\n" + "offset_for_ref_frame %s\n" + "offset_for_non_ref_pic %d\n" + "offset_for_top_to_bottom_field %d\n" + "pic_width_in_mbs_minus1 %u\n" + "pic_height_in_map_units_minus1 %u\n" + "flags %s", + __entry->s.profile_idc, + __print_flags(__entry->s.constraint_set_flags, "|", + {V4L2_H264_SPS_CONSTRAINT_SET0_FLAG, "CONSTRAINT_SET0_FLAG"}, + {V4L2_H264_SPS_CONSTRAINT_SET1_FLAG, "CONSTRAINT_SET1_FLAG"}, + {V4L2_H264_SPS_CONSTRAINT_SET2_FLAG, "CONSTRAINT_SET2_FLAG"}, + {V4L2_H264_SPS_CONSTRAINT_SET3_FLAG, "CONSTRAINT_SET3_FLAG"}, + {V4L2_H264_SPS_CONSTRAINT_SET4_FLAG, "CONSTRAINT_SET4_FLAG"}, + {V4L2_H264_SPS_CONSTRAINT_SET5_FLAG, "CONSTRAINT_SET5_FLAG"}), + __entry->s.level_idc, + __entry->s.seq_parameter_set_id, + __entry->s.chroma_format_idc, + __entry->s.bit_depth_luma_minus8, + __entry->s.bit_depth_chroma_minus8, + __entry->s.log2_max_frame_num_minus4, + __entry->s.pic_order_cnt_type, + __entry->s.log2_max_pic_order_cnt_lsb_minus4, + __entry->s.max_num_ref_frames, + __entry->s.num_ref_frames_in_pic_order_cnt_cycle, + __print_array(__entry->s.offset_for_ref_frame, + ARRAY_SIZE(__entry->s.offset_for_ref_frame), + sizeof(__entry->s.offset_for_ref_frame[0])), + __entry->s.offset_for_non_ref_pic, + __entry->s.offset_for_top_to_bottom_field, + __entry->s.pic_width_in_mbs_minus1, + __entry->s.pic_height_in_map_units_minus1, + __print_flags(__entry->s.flags, "|", + {V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE, "SEPARATE_COLOUR_PLANE"}, + {V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS, "QPPRIME_Y_ZERO_T= RANSFORM_BYPASS"}, + {V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO, "DELTA_PIC_ORDER_ALWA= YS_ZERO"}, + {V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED, "GAPS_IN_FRAME_NU= M_VALUE_ALLOWED"}, + {V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY, "FRAME_MBS_ONLY"}, + {V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD, "MB_ADAPTIVE_FRAME_FIELD"= }, + {V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE, "DIRECT_8X8_INFERENCE"} + )) +); + +DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pps_tmpl, + TP_PROTO(const struct v4l2_ctrl_h264_pps *p), + TP_ARGS(p), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pps, p)), + TP_fast_assign(__entry->p =3D *p), + TP_printk("\npic_parameter_set_id %u\n" + "seq_parameter_set_id %u\n" + "num_slice_groups_minus1 %u\n" + "num_ref_idx_l0_default_active_minus1 %u\n" + "num_ref_idx_l1_default_active_minus1 %u\n" + "weighted_bipred_idc %u\n" + "pic_init_qp_minus26 %d\n" + "pic_init_qs_minus26 %d\n" + "chroma_qp_index_offset %d\n" + "second_chroma_qp_index_offset %d\n" + "flags %s", + __entry->p.pic_parameter_set_id, + __entry->p.seq_parameter_set_id, + __entry->p.num_slice_groups_minus1, + __entry->p.num_ref_idx_l0_default_active_minus1, + __entry->p.num_ref_idx_l1_default_active_minus1, + __entry->p.weighted_bipred_idc, + __entry->p.pic_init_qp_minus26, + __entry->p.pic_init_qs_minus26, + __entry->p.chroma_qp_index_offset, + __entry->p.second_chroma_qp_index_offset, + __print_flags(__entry->p.flags, "|", + {V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE, "ENTROPY_CODING_MODE"}, + {V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT, "BOTTOM_F= IELD_PIC_ORDER_IN_FRAME_PRESENT"}, + {V4L2_H264_PPS_FLAG_WEIGHTED_PRED, "WEIGHTED_PRED"}, + {V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT, "DEBLOCKING_FIL= TER_CONTROL_PRESENT"}, + {V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED, "CONSTRAINED_INTRA_PRED"}, + {V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT, "REDUNDANT_PIC_CNT_PRES= ENT"}, + {V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE, "TRANSFORM_8X8_MODE"}, + {V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT, "SCALING_MATRIX_PRESENT"} + )) +); + +DECLARE_EVENT_CLASS(v4l2_ctrl_h264_scaling_matrix_tmpl, + TP_PROTO(const struct v4l2_ctrl_h264_scaling_matrix *s), + TP_ARGS(s), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_scaling_matrix, s)), + TP_fast_assign(__entry->s =3D *s), + TP_printk("\nscaling_list_4x4 {%s}\nscaling_list_8x8 {%s}", + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->s.scaling_list_4x4, + sizeof(__entry->s.scaling_list_4x4), + false), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->s.scaling_list_8x8, + sizeof(__entry->s.scaling_list_8x8), + false) + ) +); + +DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pred_weights_tmpl, + TP_PROTO(const struct v4l2_ctrl_h264_pred_weights *p), + TP_ARGS(p), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pred_weights, p)), + TP_fast_assign(__entry->p =3D *p), + TP_printk("\nluma_log2_weight_denom %u\n" + "chroma_log2_weight_denom %u\n" + "weight_factor[0].luma_weight %s\n" + "weight_factor[0].luma_offset %s\n" + "weight_factor[0].chroma_weight {%s}\n" + "weight_factor[0].chroma_offset {%s}\n" + "weight_factor[1].luma_weight %s\n" + "weight_factor[1].luma_offset %s\n" + "weight_factor[1].chroma_weight {%s}\n" + "weight_factor[1].chroma_offset {%s}\n", + __entry->p.luma_log2_weight_denom, + __entry->p.chroma_log2_weight_denom, + __print_array(__entry->p.weight_factors[0].luma_weight, + ARRAY_SIZE(__entry->p.weight_factors[0].luma_weight), + sizeof(__entry->p.weight_factors[0].luma_weight[0])), + __print_array(__entry->p.weight_factors[0].luma_offset, + ARRAY_SIZE(__entry->p.weight_factors[0].luma_offset), + sizeof(__entry->p.weight_factors[0].luma_offset[0])), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->p.weight_factors[0].chroma_weight, + sizeof(__entry->p.weight_factors[0].chroma_weight), + false), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->p.weight_factors[0].chroma_offset, + sizeof(__entry->p.weight_factors[0].chroma_offset), + false), + __print_array(__entry->p.weight_factors[1].luma_weight, + ARRAY_SIZE(__entry->p.weight_factors[1].luma_weight), + sizeof(__entry->p.weight_factors[1].luma_weight[0])), + __print_array(__entry->p.weight_factors[1].luma_offset, + ARRAY_SIZE(__entry->p.weight_factors[1].luma_offset), + sizeof(__entry->p.weight_factors[1].luma_offset[0])), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->p.weight_factors[1].chroma_weight, + sizeof(__entry->p.weight_factors[1].chroma_weight), + false), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->p.weight_factors[1].chroma_offset, + sizeof(__entry->p.weight_factors[1].chroma_offset), + false) + ) +); + +DECLARE_EVENT_CLASS(v4l2_ctrl_h264_slice_params_tmpl, + TP_PROTO(const struct v4l2_ctrl_h264_slice_params *s), + TP_ARGS(s), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_slice_params, s)), + TP_fast_assign(__entry->s =3D *s), + TP_printk("\nheader_bit_size %u\n" + "first_mb_in_slice %u\n" + "slice_type %s\n" + "colour_plane_id %u\n" + "redundant_pic_cnt %u\n" + "cabac_init_idc %u\n" + "slice_qp_delta %d\n" + "slice_qs_delta %d\n" + "disable_deblocking_filter_idc %u\n" + "slice_alpha_c0_offset_div2 %u\n" + "slice_beta_offset_div2 %u\n" + "num_ref_idx_l0_active_minus1 %u\n" + "num_ref_idx_l1_active_minus1 %u\n" + "flags %s", + __entry->s.header_bit_size, + __entry->s.first_mb_in_slice, + __print_symbolic(__entry->s.slice_type, + {V4L2_H264_SLICE_TYPE_P, "P"}, + {V4L2_H264_SLICE_TYPE_B, "B"}, + {V4L2_H264_SLICE_TYPE_I, "I"}, + {V4L2_H264_SLICE_TYPE_SP, "SP"}, + {V4L2_H264_SLICE_TYPE_SI, "SI"}), + __entry->s.colour_plane_id, + __entry->s.redundant_pic_cnt, + __entry->s.cabac_init_idc, + __entry->s.slice_qp_delta, + __entry->s.slice_qs_delta, + __entry->s.disable_deblocking_filter_idc, + __entry->s.slice_alpha_c0_offset_div2, + __entry->s.slice_beta_offset_div2, + __entry->s.num_ref_idx_l0_active_minus1, + __entry->s.num_ref_idx_l1_active_minus1, + __print_flags(__entry->s.flags, "|", + {V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED, "DIRECT_SPATIAL_MV_PRED"= }, + {V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH, "SP_FOR_SWITCH"}) + ) +); + +DECLARE_EVENT_CLASS(v4l2_h264_reference_tmpl, + TP_PROTO(const struct v4l2_h264_reference *r, int i), + TP_ARGS(r, i), + TP_STRUCT__entry(__field_struct(struct v4l2_h264_reference, r) + __field(int, i)), + TP_fast_assign(__entry->r =3D *r; __entry->i =3D i;), + TP_printk("[%d]: fields %s index %u", + __entry->i, + __print_flags(__entry->r.fields, "|", + {V4L2_H264_TOP_FIELD_REF, "TOP_FIELD_REF"}, + {V4L2_H264_BOTTOM_FIELD_REF, "BOTTOM_FIELD_REF"}, + {V4L2_H264_FRAME_REF, "FRAME_REF"}), + __entry->r.index + ) +); + +DECLARE_EVENT_CLASS(v4l2_ctrl_h264_decode_params_tmpl, + TP_PROTO(const struct v4l2_ctrl_h264_decode_params *d), + TP_ARGS(d), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_decode_params, d)), + TP_fast_assign(__entry->d =3D *d), + TP_printk("\nnal_ref_idc %u\n" + "frame_num %u\n" + "top_field_order_cnt %d\n" + "bottom_field_order_cnt %d\n" + "idr_pic_id %u\n" + "pic_order_cnt_lsb %u\n" + "delta_pic_order_cnt_bottom %d\n" + "delta_pic_order_cnt0 %d\n" + "delta_pic_order_cnt1 %d\n" + "dec_ref_pic_marking_bit_size %u\n" + "pic_order_cnt_bit_size %u\n" + "slice_group_change_cycle %u\n" + "flags %s\n", + __entry->d.nal_ref_idc, + __entry->d.frame_num, + __entry->d.top_field_order_cnt, + __entry->d.bottom_field_order_cnt, + __entry->d.idr_pic_id, + __entry->d.pic_order_cnt_lsb, + __entry->d.delta_pic_order_cnt_bottom, + __entry->d.delta_pic_order_cnt0, + __entry->d.delta_pic_order_cnt1, + __entry->d.dec_ref_pic_marking_bit_size, + __entry->d.pic_order_cnt_bit_size, + __entry->d.slice_group_change_cycle, + __print_flags(__entry->d.flags, "|", + {V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC, "IDR_PIC"}, + {V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC, "FIELD_PIC"}, + {V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD, "BOTTOM_FIELD"}, + {V4L2_H264_DECODE_PARAM_FLAG_PFRAME, "PFRAME"}, + {V4L2_H264_DECODE_PARAM_FLAG_BFRAME, "BFRAME"}) + ) +); + +DECLARE_EVENT_CLASS(v4l2_h264_dpb_entry_tmpl, + TP_PROTO(const struct v4l2_h264_dpb_entry *e, int i), + TP_ARGS(e, i), + TP_STRUCT__entry(__field_struct(struct v4l2_h264_dpb_entry, e) + __field(int, i)), + TP_fast_assign(__entry->e =3D *e; __entry->i =3D i;), + TP_printk("[%d]: reference_ts %llu, pic_num %u frame_num %u fields %s " + "top_field_order_cnt %d bottom_field_order_cnt %d flags %s", + __entry->i, + __entry->e.reference_ts, + __entry->e.pic_num, + __entry->e.frame_num, + __print_flags(__entry->e.fields, "|", + {V4L2_H264_TOP_FIELD_REF, "TOP_FIELD_REF"}, + {V4L2_H264_BOTTOM_FIELD_REF, "BOTTOM_FIELD_REF"}, + {V4L2_H264_FRAME_REF, "FRAME_REF"}), + __entry->e.top_field_order_cnt, + __entry->e.bottom_field_order_cnt, + __print_flags(__entry->e.flags, "|", + {V4L2_H264_DPB_ENTRY_FLAG_VALID, "VALID"}, + {V4L2_H264_DPB_ENTRY_FLAG_ACTIVE, "ACTIVE"}, + {V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM, "LONG_TERM"}, + {V4L2_H264_DPB_ENTRY_FLAG_FIELD, "FIELD"}) + + ) +); + +DEFINE_EVENT(v4l2_ctrl_h264_sps_tmpl, v4l2_ctrl_h264_sps, + TP_PROTO(const struct v4l2_ctrl_h264_sps *s), + TP_ARGS(s) +); + +DEFINE_EVENT(v4l2_ctrl_h264_pps_tmpl, v4l2_ctrl_h264_pps, + TP_PROTO(const struct v4l2_ctrl_h264_pps *p), + TP_ARGS(p) +); + +DEFINE_EVENT(v4l2_ctrl_h264_scaling_matrix_tmpl, v4l2_ctrl_h264_scaling_ma= trix, + TP_PROTO(const struct v4l2_ctrl_h264_scaling_matrix *s), + TP_ARGS(s) +); + +DEFINE_EVENT(v4l2_ctrl_h264_pred_weights_tmpl, v4l2_ctrl_h264_pred_weights, + TP_PROTO(const struct v4l2_ctrl_h264_pred_weights *p), + TP_ARGS(p) +); + +DEFINE_EVENT(v4l2_ctrl_h264_slice_params_tmpl, v4l2_ctrl_h264_slice_params, + TP_PROTO(const struct v4l2_ctrl_h264_slice_params *s), + TP_ARGS(s) +); + +DEFINE_EVENT(v4l2_h264_reference_tmpl, v4l2_h264_ref_pic_list0, + TP_PROTO(const struct v4l2_h264_reference *r, int i), + TP_ARGS(r, i) +); + +DEFINE_EVENT(v4l2_h264_reference_tmpl, v4l2_h264_ref_pic_list1, + TP_PROTO(const struct v4l2_h264_reference *r, int i), + TP_ARGS(r, i) +); + +DEFINE_EVENT(v4l2_ctrl_h264_decode_params_tmpl, v4l2_ctrl_h264_decode_para= ms, + TP_PROTO(const struct v4l2_ctrl_h264_decode_params *d), + TP_ARGS(d) +); + +DEFINE_EVENT(v4l2_h264_dpb_entry_tmpl, v4l2_h264_dpb_entry, + TP_PROTO(const struct v4l2_h264_dpb_entry *e, int i), + TP_ARGS(e, i) +); + +/* HEVC controls */ + +DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_sps_tmpl, + TP_PROTO(const struct v4l2_ctrl_hevc_sps *s), + TP_ARGS(s), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_sps, s)), + TP_fast_assign(__entry->s =3D *s), + TP_printk("\nvideo_parameter_set_id %u\n" + "seq_parameter_set_id %u\n" + "pic_width_in_luma_samples %u\n" + "pic_height_in_luma_samples %u\n" + "bit_depth_luma_minus8 %u\n" + "bit_depth_chroma_minus8 %u\n" + "log2_max_pic_order_cnt_lsb_minus4 %u\n" + "sps_max_dec_pic_buffering_minus1 %u\n" + "sps_max_num_reorder_pics %u\n" + "sps_max_latency_increase_plus1 %u\n" + "log2_min_luma_coding_block_size_minus3 %u\n" + "log2_diff_max_min_luma_coding_block_size %u\n" + "log2_min_luma_transform_block_size_minus2 %u\n" + "log2_diff_max_min_luma_transform_block_size %u\n" + "max_transform_hierarchy_depth_inter %u\n" + "max_transform_hierarchy_depth_intra %u\n" + "pcm_sample_bit_depth_luma_minus1 %u\n" + "pcm_sample_bit_depth_chroma_minus1 %u\n" + "log2_min_pcm_luma_coding_block_size_minus3 %u\n" + "log2_diff_max_min_pcm_luma_coding_block_size %u\n" + "num_short_term_ref_pic_sets %u\n" + "num_long_term_ref_pics_sps %u\n" + "chroma_format_idc %u\n" + "sps_max_sub_layers_minus1 %u\n" + "flags %s", + __entry->s.video_parameter_set_id, + __entry->s.seq_parameter_set_id, + __entry->s.pic_width_in_luma_samples, + __entry->s.pic_height_in_luma_samples, + __entry->s.bit_depth_luma_minus8, + __entry->s.bit_depth_chroma_minus8, + __entry->s.log2_max_pic_order_cnt_lsb_minus4, + __entry->s.sps_max_dec_pic_buffering_minus1, + __entry->s.sps_max_num_reorder_pics, + __entry->s.sps_max_latency_increase_plus1, + __entry->s.log2_min_luma_coding_block_size_minus3, + __entry->s.log2_diff_max_min_luma_coding_block_size, + __entry->s.log2_min_luma_transform_block_size_minus2, + __entry->s.log2_diff_max_min_luma_transform_block_size, + __entry->s.max_transform_hierarchy_depth_inter, + __entry->s.max_transform_hierarchy_depth_intra, + __entry->s.pcm_sample_bit_depth_luma_minus1, + __entry->s.pcm_sample_bit_depth_chroma_minus1, + __entry->s.log2_min_pcm_luma_coding_block_size_minus3, + __entry->s.log2_diff_max_min_pcm_luma_coding_block_size, + __entry->s.num_short_term_ref_pic_sets, + __entry->s.num_long_term_ref_pics_sps, + __entry->s.chroma_format_idc, + __entry->s.sps_max_sub_layers_minus1, + __print_flags(__entry->s.flags, "|", + {V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE, "SEPARATE_COLOUR_PLANE"}, + {V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED, "SCALING_LIST_ENABLED"}, + {V4L2_HEVC_SPS_FLAG_AMP_ENABLED, "AMP_ENABLED"}, + {V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET, "SAMPLE_ADAPTIVE_OFFSET"}, + {V4L2_HEVC_SPS_FLAG_PCM_ENABLED, "PCM_ENABLED"}, + {V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED, "V4L2_HEVC_SPS_FLAG_PCM_= LOOP_FILTER_DISABLED"}, + {V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PICS_PRESENT, "LONG_TERM_REF_PICS_PR= ESENT"}, + {V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED, "TEMPORAL_MVP_ENABLED"}, + {V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED, "STRONG_INTRA_SMOO= THING_ENABLED"} + )) + +); + + +DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_pps_tmpl, + TP_PROTO(const struct v4l2_ctrl_hevc_pps *p), + TP_ARGS(p), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_pps, p)), + TP_fast_assign(__entry->p =3D *p), + TP_printk("\npic_parameter_set_id %u\n" + "num_extra_slice_header_bits %u\n" + "num_ref_idx_l0_default_active_minus1 %u\n" + "num_ref_idx_l1_default_active_minus1 %u\n" + "init_qp_minus26 %d\n" + "diff_cu_qp_delta_depth %u\n" + "pps_cb_qp_offset %d\n" + "pps_cr_qp_offset %d\n" + "num_tile_columns_minus1 %d\n" + "num_tile_rows_minus1 %d\n" + "column_width_minus1 %s\n" + "row_height_minus1 %s\n" + "pps_beta_offset_div2 %d\n" + "pps_tc_offset_div2 %d\n" + "log2_parallel_merge_level_minus2 %u\n" + "flags %s", + __entry->p.pic_parameter_set_id, + __entry->p.num_extra_slice_header_bits, + __entry->p.num_ref_idx_l0_default_active_minus1, + __entry->p.num_ref_idx_l1_default_active_minus1, + __entry->p.init_qp_minus26, + __entry->p.diff_cu_qp_delta_depth, + __entry->p.pps_cb_qp_offset, + __entry->p.pps_cr_qp_offset, + __entry->p.num_tile_columns_minus1, + __entry->p.num_tile_rows_minus1, + __print_array(__entry->p.column_width_minus1, + ARRAY_SIZE(__entry->p.column_width_minus1), + sizeof(__entry->p.column_width_minus1[0])), + __print_array(__entry->p.row_height_minus1, + ARRAY_SIZE(__entry->p.row_height_minus1), + sizeof(__entry->p.row_height_minus1[0])), + __entry->p.pps_beta_offset_div2, + __entry->p.pps_tc_offset_div2, + __entry->p.log2_parallel_merge_level_minus2, + __print_flags(__entry->p.flags, "|", + {V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED, "DEPENDENT_SLICE_= SEGMENT_ENABLED"}, + {V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRESENT, "OUTPUT_FLAG_PRESENT"}, + {V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED, "SIGN_DATA_HIDING_ENABLE= D"}, + {V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESENT, "CABAC_INIT_PRESENT"}, + {V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED, "CONSTRAINED_INTRA_PRED"}, + {V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED, "CU_QP_DELTA_ENABLED"}, + {V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT, "PPS_SLICE_CH= ROMA_QP_OFFSETS_PRESENT"}, + {V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED, "WEIGHTED_PRED"}, + {V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED, "WEIGHTED_BIPRED"}, + {V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED, "TRANSQUANT_BYPASS_ENAB= LED"}, + {V4L2_HEVC_PPS_FLAG_TILES_ENABLED, "TILES_ENABLED"}, + {V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED, "ENTROPY_CODING_SYNC_= ENABLED"}, + {V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED, "LOOP_FILTER_ACR= OSS_TILES_ENABLED"}, + {V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED, "PPS_LOOP_F= ILTER_ACROSS_SLICES_ENABLED"}, + {V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_OVERRIDE_ENABLED, "DEBLOCKING_FI= LTER_OVERRIDE_ENABLED"}, + {V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER, "DISABLE_DEBLOCKING= _FILTER"}, + {V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT, "LISTS_MODIFICATION_PR= ESENT"}, + {V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT, "SLICE_SEG= MENT_HEADER_EXTENSION_PRESENT"}, + {V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT, "DEBLOCKING_FIL= TER_CONTROL_PRESENT"}, + {V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING, "UNIFORM_SPACING"} + )) + +); + + + +DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_slice_params_tmpl, + TP_PROTO(const struct v4l2_ctrl_hevc_slice_params *s), + TP_ARGS(s), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_slice_params, s)), + TP_fast_assign(__entry->s =3D *s), + TP_printk("\nbit_size %u\n" + "data_byte_offset %u\n" + "num_entry_point_offsets %u\n" + "nal_unit_type %u\n" + "nuh_temporal_id_plus1 %u\n" + "slice_type %u\n" + "colour_plane_id %u\n" + "slice_pic_order_cnt %d\n" + "num_ref_idx_l0_active_minus1 %u\n" + "num_ref_idx_l1_active_minus1 %u\n" + "collocated_ref_idx %u\n" + "five_minus_max_num_merge_cand %u\n" + "slice_qp_delta %d\n" + "slice_cb_qp_offset %d\n" + "slice_cr_qp_offset %d\n" + "slice_act_y_qp_offset %d\n" + "slice_act_cb_qp_offset %d\n" + "slice_act_cr_qp_offset %d\n" + "slice_beta_offset_div2 %d\n" + "slice_tc_offset_div2 %d\n" + "pic_struct %u\n" + "slice_segment_addr %u\n" + "ref_idx_l0 %s\n" + "ref_idx_l1 %s\n" + "short_term_ref_pic_set_size %u\n" + "long_term_ref_pic_set_size %u\n" + "flags %s", + __entry->s.bit_size, + __entry->s.data_byte_offset, + __entry->s.num_entry_point_offsets, + __entry->s.nal_unit_type, + __entry->s.nuh_temporal_id_plus1, + __entry->s.slice_type, + __entry->s.colour_plane_id, + __entry->s.slice_pic_order_cnt, + __entry->s.num_ref_idx_l0_active_minus1, + __entry->s.num_ref_idx_l1_active_minus1, + __entry->s.collocated_ref_idx, + __entry->s.five_minus_max_num_merge_cand, + __entry->s.slice_qp_delta, + __entry->s.slice_cb_qp_offset, + __entry->s.slice_cr_qp_offset, + __entry->s.slice_act_y_qp_offset, + __entry->s.slice_act_cb_qp_offset, + __entry->s.slice_act_cr_qp_offset, + __entry->s.slice_beta_offset_div2, + __entry->s.slice_tc_offset_div2, + __entry->s.pic_struct, + __entry->s.slice_segment_addr, + __print_array(__entry->s.ref_idx_l0, + ARRAY_SIZE(__entry->s.ref_idx_l0), + sizeof(__entry->s.ref_idx_l0[0])), + __print_array(__entry->s.ref_idx_l1, + ARRAY_SIZE(__entry->s.ref_idx_l1), + sizeof(__entry->s.ref_idx_l1[0])), + __entry->s.short_term_ref_pic_set_size, + __entry->s.long_term_ref_pic_set_size, + __print_flags(__entry->s.flags, "|", + {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA, "SLICE_SAO_LUMA"}, + {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA, "SLICE_SAO_CHROMA"}, + {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED, "SLICE_TEMPOR= AL_MVP_ENABLED"}, + {V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO, "MVD_L1_ZERO"}, + {V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT, "CABAC_INIT"}, + {V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0, "COLLOCATED_FROM_L0"}, + {V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INTEGER_MV, "USE_INTEGER_MV"}, + {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED, "SLICE_= DEBLOCKING_FILTER_DISABLED"}, + {V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED, = "SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED"}, + {V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT, "DEPENDENT_SLICE= _SEGMENT"} + + )) +); + +DECLARE_EVENT_CLASS(v4l2_hevc_pred_weight_table_tmpl, + TP_PROTO(const struct v4l2_hevc_pred_weight_table *p), + TP_ARGS(p), + TP_STRUCT__entry(__field_struct(struct v4l2_hevc_pred_weight_table, p)), + TP_fast_assign(__entry->p =3D *p), + TP_printk("\ndelta_luma_weight_l0 %s\n" + "luma_offset_l0 %s\n" + "delta_chroma_weight_l0 {%s}\n" + "chroma_offset_l0 {%s}\n" + "delta_luma_weight_l1 %s\n" + "luma_offset_l1 %s\n" + "delta_chroma_weight_l1 {%s}\n" + "chroma_offset_l1 {%s}\n" + "luma_log2_weight_denom %d\n" + "delta_chroma_log2_weight_denom %d\n", + __print_array(__entry->p.delta_luma_weight_l0, + ARRAY_SIZE(__entry->p.delta_luma_weight_l0), + sizeof(__entry->p.delta_luma_weight_l0[0])), + __print_array(__entry->p.luma_offset_l0, + ARRAY_SIZE(__entry->p.luma_offset_l0), + sizeof(__entry->p.luma_offset_l0[0])), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->p.delta_chroma_weight_l0, + sizeof(__entry->p.delta_chroma_weight_l0), + false), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->p.chroma_offset_l0, + sizeof(__entry->p.chroma_offset_l0), + false), + __print_array(__entry->p.delta_luma_weight_l1, + ARRAY_SIZE(__entry->p.delta_luma_weight_l1), + sizeof(__entry->p.delta_luma_weight_l1[0])), + __print_array(__entry->p.luma_offset_l1, + ARRAY_SIZE(__entry->p.luma_offset_l1), + sizeof(__entry->p.luma_offset_l1[0])), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->p.delta_chroma_weight_l1, + sizeof(__entry->p.delta_chroma_weight_l1), + false), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->p.chroma_offset_l1, + sizeof(__entry->p.chroma_offset_l1), + false), + __entry->p.luma_log2_weight_denom, + __entry->p.delta_chroma_log2_weight_denom + + )) + +DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_scaling_matrix_tmpl, + TP_PROTO(const struct v4l2_ctrl_hevc_scaling_matrix *s), + TP_ARGS(s), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_scaling_matrix, s)), + TP_fast_assign(__entry->s =3D *s), + TP_printk("\nscaling_list_4x4 {%s}\n" + "scaling_list_8x8 {%s}\n" + "scaling_list_16x16 {%s}\n" + "scaling_list_32x32 {%s}\n" + "scaling_list_dc_coef_16x16 %s\n" + "scaling_list_dc_coef_32x32 %s\n", + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->s.scaling_list_4x4, + sizeof(__entry->s.scaling_list_4x4), + false), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->s.scaling_list_8x8, + sizeof(__entry->s.scaling_list_8x8), + false), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->s.scaling_list_16x16, + sizeof(__entry->s.scaling_list_16x16), + false), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->s.scaling_list_32x32, + sizeof(__entry->s.scaling_list_32x32), + false), + __print_array(__entry->s.scaling_list_dc_coef_16x16, + ARRAY_SIZE(__entry->s.scaling_list_dc_coef_16x16), + sizeof(__entry->s.scaling_list_dc_coef_16x16[0])), + __print_array(__entry->s.scaling_list_dc_coef_32x32, + ARRAY_SIZE(__entry->s.scaling_list_dc_coef_32x32), + sizeof(__entry->s.scaling_list_dc_coef_32x32[0])) + )) + +DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_decode_params_tmpl, + TP_PROTO(const struct v4l2_ctrl_hevc_decode_params *d), + TP_ARGS(d), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_decode_params, d)), + TP_fast_assign(__entry->d =3D *d), + TP_printk("\npic_order_cnt_val %d\n" + "short_term_ref_pic_set_size %u\n" + "long_term_ref_pic_set_size %u\n" + "num_active_dpb_entries %u\n" + "num_poc_st_curr_before %u\n" + "num_poc_st_curr_after %u\n" + "num_poc_lt_curr %u\n" + "poc_st_curr_before %s\n" + "poc_st_curr_after %s\n" + "poc_lt_curr %s\n" + "flags %s", + __entry->d.pic_order_cnt_val, + __entry->d.short_term_ref_pic_set_size, + __entry->d.long_term_ref_pic_set_size, + __entry->d.num_active_dpb_entries, + __entry->d.num_poc_st_curr_before, + __entry->d.num_poc_st_curr_after, + __entry->d.num_poc_lt_curr, + __print_array(__entry->d.poc_st_curr_before, + ARRAY_SIZE(__entry->d.poc_st_curr_before), + sizeof(__entry->d.poc_st_curr_before[0])), + __print_array(__entry->d.poc_st_curr_after, + ARRAY_SIZE(__entry->d.poc_st_curr_after), + sizeof(__entry->d.poc_st_curr_after[0])), + __print_array(__entry->d.poc_lt_curr, + ARRAY_SIZE(__entry->d.poc_lt_curr), + sizeof(__entry->d.poc_lt_curr[0])), + __print_flags(__entry->d.flags, "|", + {V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC, "IRAP_PIC"}, + {V4L2_HEVC_DECODE_PARAM_FLAG_IDR_PIC, "IDR_PIC"}, + {V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTPUT_OF_PRIOR, "NO_OUTPUT_OF_PRIOR"} + )) +); + +DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_lt_rps_tmpl, + TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt), + TP_ARGS(lt), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_lt_rps, lt)= ), + TP_fast_assign(__entry->lt =3D *lt), + TP_printk("\nflags %s\n" + "lt_ref_pic_poc_lsb_sps %x\n", + __print_flags(__entry->lt.flags, "|", + {V4L2_HEVC_EXT_SPS_LT_RPS_FLAG_USED_LT, "USED_LT"} + ), + __entry->lt.lt_ref_pic_poc_lsb_sps + ) +); + +DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_st_rps_tmpl, + TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_st_rps *st), + TP_ARGS(st), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_st_rps, st)= ), + TP_fast_assign(__entry->st =3D *st), + TP_printk("\nflags %s\n" + "delta_idx_minus1: %u\n" + "delta_rps_sign: %u\n" + "abs_delta_rps_minus1: %u\n" + "num_negative_pics: %u\n" + "num_positive_pics: %u\n" + "used_by_curr_pic: %08x\n" + "use_delta_flag: %08x\n" + "delta_poc_s0_minus1: %s\n" + "delta_poc_s1_minus1: %s\n", + __print_flags(__entry->st.flags, "|", + {V4L2_HEVC_EXT_SPS_ST_RPS_FLAG_INTER_REF_PIC_SET_PRED, "INTER_REF_PIC_= SET_PRED"} + ), + __entry->st.delta_idx_minus1, + __entry->st.delta_rps_sign, + __entry->st.abs_delta_rps_minus1, + __entry->st.num_negative_pics, + __entry->st.num_positive_pics, + __entry->st.used_by_curr_pic, + __entry->st.use_delta_flag, + __print_array(__entry->st.delta_poc_s0_minus1, + ARRAY_SIZE(__entry->st.delta_poc_s0_minus1), + sizeof(__entry->st.delta_poc_s0_minus1[0])), + __print_array(__entry->st.delta_poc_s1_minus1, + ARRAY_SIZE(__entry->st.delta_poc_s1_minus1), + sizeof(__entry->st.delta_poc_s1_minus1[0])) + ) +); + +DECLARE_EVENT_CLASS(v4l2_hevc_dpb_entry_tmpl, + TP_PROTO(const struct v4l2_hevc_dpb_entry *e), + TP_ARGS(e), + TP_STRUCT__entry(__field_struct(struct v4l2_hevc_dpb_entry, e)), + TP_fast_assign(__entry->e =3D *e), + TP_printk("\ntimestamp %llu\n" + "flags %s\n" + "field_pic %u\n" + "pic_order_cnt_val %d\n", + __entry->e.timestamp, + __print_flags(__entry->e.flags, "|", + {V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE, "LONG_TERM_REFERENCE"} + ), + __entry->e.field_pic, + __entry->e.pic_order_cnt_val + )) + +DEFINE_EVENT(v4l2_ctrl_hevc_sps_tmpl, v4l2_ctrl_hevc_sps, + TP_PROTO(const struct v4l2_ctrl_hevc_sps *s), + TP_ARGS(s) +); + +DEFINE_EVENT(v4l2_ctrl_hevc_pps_tmpl, v4l2_ctrl_hevc_pps, + TP_PROTO(const struct v4l2_ctrl_hevc_pps *p), + TP_ARGS(p) +); + +DEFINE_EVENT(v4l2_ctrl_hevc_slice_params_tmpl, v4l2_ctrl_hevc_slice_params, + TP_PROTO(const struct v4l2_ctrl_hevc_slice_params *s), + TP_ARGS(s) +); + +DEFINE_EVENT(v4l2_hevc_pred_weight_table_tmpl, v4l2_hevc_pred_weight_table, + TP_PROTO(const struct v4l2_hevc_pred_weight_table *p), + TP_ARGS(p) +); + +DEFINE_EVENT(v4l2_ctrl_hevc_scaling_matrix_tmpl, v4l2_ctrl_hevc_scaling_ma= trix, + TP_PROTO(const struct v4l2_ctrl_hevc_scaling_matrix *s), + TP_ARGS(s) +); + +DEFINE_EVENT(v4l2_ctrl_hevc_decode_params_tmpl, v4l2_ctrl_hevc_decode_para= ms, + TP_PROTO(const struct v4l2_ctrl_hevc_decode_params *d), + TP_ARGS(d) +); + +DEFINE_EVENT(v4l2_ctrl_hevc_ext_sps_lt_rps_tmpl, v4l2_ctrl_hevc_ext_sps_lt= _rps, + TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt), + TP_ARGS(lt) +); + +DEFINE_EVENT(v4l2_ctrl_hevc_ext_sps_st_rps_tmpl, v4l2_ctrl_hevc_ext_sps_st= _rps, + TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_st_rps *st), + TP_ARGS(st) +); + +DEFINE_EVENT(v4l2_hevc_dpb_entry_tmpl, v4l2_hevc_dpb_entry, + TP_PROTO(const struct v4l2_hevc_dpb_entry *e), + TP_ARGS(e) +); + +/* MPEG2 controls */ + +DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_seq_tmpl, + TP_PROTO(const struct v4l2_ctrl_mpeg2_sequence *s), + TP_ARGS(s), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_sequence, s)), + TP_fast_assign(__entry->s =3D *s;), + TP_printk("\nhorizontal_size %u\nvertical_size %u\nvbv_buffer_size %u\n" + "profile_and_level_indication %u\nchroma_format %u\nflags %s\n", + __entry->s.horizontal_size, + __entry->s.vertical_size, + __entry->s.vbv_buffer_size, + __entry->s.profile_and_level_indication, + __entry->s.chroma_format, + __print_flags(__entry->s.flags, "|", + {V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE, "PROGRESSIVE"}) + ) +); + +DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_pic_tmpl, + TP_PROTO(const struct v4l2_ctrl_mpeg2_picture *p), + TP_ARGS(p), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_picture, p)), + TP_fast_assign(__entry->p =3D *p;), + TP_printk("\nbackward_ref_ts %llu\nforward_ref_ts %llu\nflags %s\nf_code = {%s}\n" + "picture_coding_type: %u\npicture_structure %u\nintra_dc_precision %u\= n", + __entry->p.backward_ref_ts, + __entry->p.forward_ref_ts, + __print_flags(__entry->p.flags, "|", + {V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST, "TOP_FIELD_FIRST"}, + {V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT, "FRAME_PRED_DCT"}, + {V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV, "CONCEALMENT_MV"}, + {V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE, "Q_SCALE_TYPE"}, + {V4L2_MPEG2_PIC_FLAG_INTRA_VLC, "INTA_VLC"}, + {V4L2_MPEG2_PIC_FLAG_ALT_SCAN, "ALT_SCAN"}, + {V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST, "REPEAT_FIRST"}, + {V4L2_MPEG2_PIC_FLAG_PROGRESSIVE, "PROGRESSIVE"}), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->p.f_code, + sizeof(__entry->p.f_code), + false), + __entry->p.picture_coding_type, + __entry->p.picture_structure, + __entry->p.intra_dc_precision + ) +); + +DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_quant_tmpl, + TP_PROTO(const struct v4l2_ctrl_mpeg2_quantisation *q), + TP_ARGS(q), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_quantisation, q)), + TP_fast_assign(__entry->q =3D *q;), + TP_printk("\nintra_quantiser_matrix %s\nnon_intra_quantiser_matrix %s\n" + "chroma_intra_quantiser_matrix %s\nchroma_non_intra_quantiser_matrix %= s\n", + __print_array(__entry->q.intra_quantiser_matrix, + ARRAY_SIZE(__entry->q.intra_quantiser_matrix), + sizeof(__entry->q.intra_quantiser_matrix[0])), + __print_array(__entry->q.non_intra_quantiser_matrix, + ARRAY_SIZE(__entry->q.non_intra_quantiser_matrix), + sizeof(__entry->q.non_intra_quantiser_matrix[0])), + __print_array(__entry->q.chroma_intra_quantiser_matrix, + ARRAY_SIZE(__entry->q.chroma_intra_quantiser_matrix), + sizeof(__entry->q.chroma_intra_quantiser_matrix[0])), + __print_array(__entry->q.chroma_non_intra_quantiser_matrix, + ARRAY_SIZE(__entry->q.chroma_non_intra_quantiser_matrix), + sizeof(__entry->q.chroma_non_intra_quantiser_matrix[0])) + ) +) + +DEFINE_EVENT(v4l2_ctrl_mpeg2_seq_tmpl, v4l2_ctrl_mpeg2_sequence, + TP_PROTO(const struct v4l2_ctrl_mpeg2_sequence *s), + TP_ARGS(s) +); + +DEFINE_EVENT(v4l2_ctrl_mpeg2_pic_tmpl, v4l2_ctrl_mpeg2_picture, + TP_PROTO(const struct v4l2_ctrl_mpeg2_picture *p), + TP_ARGS(p) +); + +DEFINE_EVENT(v4l2_ctrl_mpeg2_quant_tmpl, v4l2_ctrl_mpeg2_quantisation, + TP_PROTO(const struct v4l2_ctrl_mpeg2_quantisation *q), + TP_ARGS(q) +); + +/* VP8 controls */ + +DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_entropy_tmpl, + TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), + TP_ARGS(f), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp8_frame, f)), + TP_fast_assign(__entry->f =3D *f;), + TP_printk("\nentropy.coeff_probs {%s}\n" + "entropy.y_mode_probs %s\n" + "entropy.uv_mode_probs %s\n" + "entropy.mv_probs {%s}", + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->f.entropy.coeff_probs, + sizeof(__entry->f.entropy.coeff_probs), + false), + __print_array(__entry->f.entropy.y_mode_probs, + ARRAY_SIZE(__entry->f.entropy.y_mode_probs), + sizeof(__entry->f.entropy.y_mode_probs[0])), + __print_array(__entry->f.entropy.uv_mode_probs, + ARRAY_SIZE(__entry->f.entropy.uv_mode_probs), + sizeof(__entry->f.entropy.uv_mode_probs[0])), + __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, + __entry->f.entropy.mv_probs, + sizeof(__entry->f.entropy.mv_probs), + false) + ) +) + +DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_frame_tmpl, + TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), + TP_ARGS(f), + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp8_frame, f)), + TP_fast_assign(__entry->f =3D *f;), + TP_printk("\nsegment.quant_update %s\n" + "segment.lf_update %s\n" + "segment.segment_probs %s\n" + "segment.flags %s\n" + "lf.ref_frm_delta %s\n" + "lf.mb_mode_delta %s\n" + "lf.sharpness_level %u\n" + "lf.level %u\n" + "lf.flags %s\n" + "quant.y_ac_qi %u\n" + "quant.y_dc_delta %d\n" + "quant.y2_dc_delta %d\n" + "quant.y2_ac_delta %d\n" + "quant.uv_dc_delta %d\n" + "quant.uv_ac_delta %d\n" + "coder_state.range %u\n" + "coder_state.value %u\n" + "coder_state.bit_count %u\n" + "width %u\n" + "height %u\n" + "horizontal_scale %u\n" + "vertical_scale %u\n" + "version %u\n" + "prob_skip_false %u\n" + "prob_intra %u\n" + "prob_last %u\n" + "prob_gf %u\n" + "num_dct_parts %u\n" + "first_part_size %u\n" + "first_part_header_bits %u\n" + "dct_part_sizes %s\n" + "last_frame_ts %llu\n" + "golden_frame_ts %llu\n" + "alt_frame_ts %llu\n" + "flags %s", + __print_array(__entry->f.segment.quant_update, + ARRAY_SIZE(__entry->f.segment.quant_update), + sizeof(__entry->f.segment.quant_update[0])), + __print_array(__entry->f.segment.lf_update, + ARRAY_SIZE(__entry->f.segment.lf_update), + sizeof(__entry->f.segment.lf_update[0])), + __print_array(__entry->f.segment.segment_probs, + ARRAY_SIZE(__entry->f.segment.segment_probs), + sizeof(__entry->f.segment.segment_probs[0])), + __print_flags(__entry->f.segment.flags, "|", + {V4L2_VP8_SEGMENT_FLAG_ENABLED, "SEGMENT_ENABLED"}, + {V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP, "SEGMENT_UPDATE_MAP"}, + {V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA, "SEGMENT_UPDATE_FEATURE_DA= TA"}, + {V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE, "SEGMENT_DELTA_VALUE_MODE"}), + __print_array(__entry->f.lf.ref_frm_delta, + ARRAY_SIZE(__entry->f.lf.ref_frm_delta), + sizeof(__entry->f.lf.ref_frm_delta[0])), + __print_array(__entry->f.lf.mb_mode_delta, + ARRAY_SIZE(__entry->f.lf.mb_mode_delta), + sizeof(__entry->f.lf.mb_mode_delta[0])), + __entry->f.lf.sharpness_level, + __entry->f.lf.level, + __print_flags(__entry->f.lf.flags, "|", + {V4L2_VP8_LF_ADJ_ENABLE, "LF_ADJ_ENABLED"}, + {V4L2_VP8_LF_DELTA_UPDATE, "LF_DELTA_UPDATE"}, + {V4L2_VP8_LF_FILTER_TYPE_SIMPLE, "LF_FILTER_TYPE_SIMPLE"}), + __entry->f.quant.y_ac_qi, + __entry->f.quant.y_dc_delta, + __entry->f.quant.y2_dc_delta, + __entry->f.quant.y2_ac_delta, + __entry->f.quant.uv_dc_delta, + __entry->f.quant.uv_ac_delta, + __entry->f.coder_state.range, + __entry->f.coder_state.value, + __entry->f.coder_state.bit_count, + __entry->f.width, + __entry->f.height, + __entry->f.horizontal_scale, + __entry->f.vertical_scale, + __entry->f.version, + __entry->f.prob_skip_false, + __entry->f.prob_intra, + __entry->f.prob_last, + __entry->f.prob_gf, + __entry->f.num_dct_parts, + __entry->f.first_part_size, + __entry->f.first_part_header_bits, + __print_array(__entry->f.dct_part_sizes, + ARRAY_SIZE(__entry->f.dct_part_sizes), + sizeof(__entry->f.dct_part_sizes[0])), + __entry->f.last_frame_ts, + __entry->f.golden_frame_ts, + __entry->f.alt_frame_ts, + __print_flags(__entry->f.flags, "|", + {V4L2_VP8_FRAME_FLAG_KEY_FRAME, "KEY_FRAME"}, + {V4L2_VP8_FRAME_FLAG_EXPERIMENTAL, "EXPERIMENTAL"}, + {V4L2_VP8_FRAME_FLAG_SHOW_FRAME, "SHOW_FRAME"}, + {V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF, "MB_NO_SKIP_COEFF"}, + {V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN, "SIGN_BIAS_GOLDEN"}, + {V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT, "SIGN_BIAS_ALT"}) + ) +); + +DEFINE_EVENT(v4l2_ctrl_vp8_frame_tmpl, v4l2_ctrl_vp8_frame, + TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), + TP_ARGS(f) +); + +DEFINE_EVENT(v4l2_ctrl_vp8_entropy_tmpl, v4l2_ctrl_vp8_entropy, + TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), + TP_ARGS(f) +); + +/* 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 =3D *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_SMOOT= H"}, + {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_REFE= RENCE"}, + {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 =3D *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 =3D *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 =3D *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_h= dr, + 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 /* if !defined(_TRACE_V4L2_REQUESTS_H_) || defined(TRACE_HEADER_MUL= TI_READ) */ + +#include --=20 2.53.0 From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A37B286A8; Thu, 12 Feb 2026 16:23:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913426; cv=none; b=lQ4S2YpLjxk9SHRHPJzfDFZgEcoMurKFG2J3c6Fk8VPl0Y8MGLI33lsfW20YjSHbAQfkmKK7MrK0MjyDx+VwU+Wao5JxCTb4iRHJDmEu3f31l8wceLH1UtlsGGuuaE97R+JajtOtqooimXjATFvfJWGrZro51eC34dGbTKPpHTw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913426; c=relaxed/simple; bh=qy81Pqqa2Myt8BjEAyFmqPf7oaeAiia+QOMCQLW4gh4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MYSvapEz2plIoojm2WDjxKeKZnqYLhs9Cbeql1SHqX16t8uuZ6PaNDldFMKqEj/t9Nl3axmTkS4vTUEaa9jgY5UJoytr+pgEjHEifGgWfLOO7HaKkzy7bcFcNcNLGB0IxfE6aDdZiw0PjYsbF/og0eyZrfKABvVLWo7doGpVG9Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=IoFwvMSU; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="IoFwvMSU" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913422; bh=qy81Pqqa2Myt8BjEAyFmqPf7oaeAiia+QOMCQLW4gh4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IoFwvMSUjuYqy8K7RRb9ZMHCII4gwqdL4uvmtN83EG6EnJYxryZvZ4GBaf6LID8Rr G7y+Q456M/7A39A8Ef8jABF57oJquylFofXIRh50wfDPvN1WlbfohjecY/0hGOBY/X yydB36pOjo11M5r6JT3QGlXrBYaIJ4BFf4BkPR9kR6omQctckyVAcHoNtXwYw2ihNX n/KOzyu6kW328y+JeoRgWc4bJ1ReDZB1eJghH7apYFl/QdWG7mszMPLokmpGX4IlyK GwSpjpTVebtihcAeNsNmF0xpx0CKQ1c5EylB0RX4AADeiWx/jWkrf3Jm+4SnBLp0ui FpAK+SVpZO+2A== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id 58E6817E0A49; Thu, 12 Feb 2026 17:23:39 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 02/11] media: Reformat v4l2-requests trace event printk Date: Thu, 12 Feb 2026 11:23:19 -0500 Message-ID: <20260212162328.192217-3-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When printing the v4l2-request traces the format was not stable. Sometimes using a ':' separator, sometimes with an extra space and using new lines. Reformat the printk calls to match the format used in v4l2.h so that parsers can use the same format for all events. Signed-off-by: Detlev Casanova --- include/trace/events/v4l2_requests.h | 649 ++++++++++++++------------- 1 file changed, 328 insertions(+), 321 deletions(-) diff --git a/include/trace/events/v4l2_requests.h b/include/trace/events/v4= l2_requests.h index 1e137d39d5fe..34f4a74df5ea 100644 --- a/include/trace/events/v4l2_requests.h +++ b/include/trace/events/v4l2_requests.h @@ -14,8 +14,8 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_av1_seq_tmpl, TP_ARGS(s), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_av1_sequence, s)), TP_fast_assign(__entry->s =3D *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", + TP_printk("flags =3D %s, seq_profile =3D %u, order_hint_bits =3D %u, bit_= depth =3D %u, " + "max_frame_width_minus_1 =3D %u, max_frame_height_minus_1 =3D %u", __print_flags(__entry->s.flags, "|", {V4L2_AV1_SEQUENCE_FLAG_STILL_PICTURE, "STILL_PICTURE"}, {V4L2_AV1_SEQUENCE_FLAG_USE_128X128_SUPERBLOCK, "USE_128X128_SUPERBLOC= K"}, @@ -50,7 +50,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_av1_tge_tmpl, TP_ARGS(t), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_av1_tile_group_entry, t)= ), TP_fast_assign(__entry->t =3D *t;), - TP_printk("\ntile_offset: %u\n tile_size: %u\n tile_row: %u\ntile_col: %u= \n", + TP_printk("tile_offset =3D %u, tile_size =3D %u, tile_row =3D %u, tile_co= l =3D %u", __entry->t.tile_offset, __entry->t.tile_size, __entry->t.tile_row, @@ -63,30 +63,30 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_av1_frame_tmpl, TP_ARGS(f), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_av1_frame, f)), TP_fast_assign(__entry->f =3D *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", + TP_printk("tile_info.flags =3D %s, tile_info.context_update_tile_id =3D %= u, " + "tile_info.tile_cols =3D %u, tile_info.tile_rows =3D %u, " + "tile_info.mi_col_starts =3D %s, tile_info.mi_row_starts =3D %s, " + "tile_info.width_in_sbs_minus_1 =3D %s, tile_info.height_in_sbs_minus_= 1 =3D %s, " + "tile_info.tile_size_bytes =3D %u, quantization.flags =3D %s, " + "quantization.base_q_idx =3D %u, quantization.delta_q_y_dc =3D %d, " + "quantization.delta_q_u_dc =3D %d, quantization.delta_q_u_ac =3D %d, " + "quantization.delta_q_v_dc =3D %d, quantization.delta_q_v_ac =3D %d, " + "quantization.qm_y =3D %u, quantization.qm_u =3D %u, quantization.qm_v= =3D %u, " + "quantization.delta_q_res =3D %u, superres_denom =3D %u, segmentation.= flags =3D %s, " + "segmentation.last_active_seg_id =3D %u, segmentation.feature_enabled = =3D %s, " + "loop_filter.flags =3D %s, loop_filter.level =3D %s, loop_filter.sharp= ness =3D %u, " + "loop_filter.ref_deltas =3D %s, loop_filter.mode_deltas =3D %s, " + "loop_filter.delta_lf_res =3D %u, cdef.damping_minus_3 =3D %u, cdef.bi= ts =3D %u, " + "cdef.y_pri_strength =3D %s, cdef.y_sec_strength =3D %s, " + "cdef.uv_pri_strength =3D %s, cdef.uv_sec_strength =3D %s, skip_mode_f= rame =3D %s, " + "primary_ref_frame =3D %u, loop_restoration.flags =3D %s, " + "loop_restoration.lr_unit_shift =3D %u, loop_restoration.lr_uv_shift = =3D %u, " + "loop_restoration.frame_restoration_type =3D %s, " + "loop_restoration.loop_restoration_size =3D %s, flags =3D %s, order_hi= nt =3D %u, " + "upscaled_width =3D %u, frame_width_minus_1 =3D %u, frame_height_minus= _1 =3D %u, " + "render_width_minus_1 =3D %u, render_height_minus_1 =3D %u, current_fr= ame_id =3D %u, " + "buffer_removal_time =3D %s, order_hints =3D %s, reference_frame_ts = =3D %s, " + "ref_frame_idx =3D %s, refresh_frame_flags =3D %u", __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, @@ -226,15 +226,15 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_av1_film_grain_tmpl, TP_ARGS(f), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_av1_film_grain, f)), TP_fast_assign(__entry->f =3D *f;), - TP_printk("\nflags %s\ncr_mult: %u\ngrain_seed: %u\n" - "film_grain_params_ref_idx: %u\nnum_y_points: %u\npoint_y_value: %s\n" - "point_y_scaling: %s\nnum_cb_points: %u\npoint_cb_value: %s\n" - "point_cb_scaling: %s\nnum_cr_points: %u\npoint_cr_value: %s\n" - "point_cr_scaling: %s\ngrain_scaling_minus_8: %u\nar_coeff_lag: %u\n" - "ar_coeffs_y_plus_128: %s\nar_coeffs_cb_plus_128: %s\n" - "ar_coeffs_cr_plus_128: %s\nar_coeff_shift_minus_6: %u\n" - "grain_scale_shift: %u\ncb_mult: %u\ncb_luma_mult: %u\ncr_luma_mult: %= u\n" - "cb_offset: %u\ncr_offset: %u\n", + TP_printk("flags =3D %s, cr_mult =3D %u, grain_seed =3D %u, " + "film_grain_params_ref_idx =3D %u, num_y_points =3D %u, point_y_value = =3D %s, " + "point_y_scaling =3D %s, num_cb_points =3D %u, point_cb_value =3D %s, " + "point_cb_scaling =3D %s, num_cr_points =3D %u, point_cr_value =3D %s,= " + "point_cr_scaling =3D %s, grain_scaling_minus_8 =3D %u, ar_coeff_lag = =3D %u, " + "ar_coeffs_y_plus_128 =3D %s, ar_coeffs_cb_plus_128 =3D %s, " + "ar_coeffs_cr_plus_128 =3D %s, ar_coeff_shift_minus_6 =3D %u, " + "grain_scale_shift =3D %u, cb_mult =3D %u, cb_luma_mult =3D %u, cr_lum= a_mult =3D %u, " + "cb_offset =3D %u, cr_offset =3D %u", __print_flags(__entry->f.flags, "|", {V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN, "APPLY_GRAIN"}, {V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN, "UPDATE_GRAIN"}, @@ -333,7 +333,15 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_fwht_params_tmpl, __entry->ycbcr_enc =3D p->ycbcr_enc; __entry->quantization =3D p->quantization; ), - TP_printk("backward_ref_ts %llu version %u width %u height %u flags %s co= lorspace %u xfer_func %u ycbcr_enc %u quantization %u", + TP_printk("backward_ref_ts =3D %llu, " + "version =3D %u, " + "width =3D %u, " + "height =3D %u, " + "flags =3D %s, " + "colorspace =3D %u, " + "xfer_func =3D %u, " + "ycbcr_enc =3D %u, " + "quantization =3D %u", __entry->backward_ref_ts, __entry->version, __entry->width, __entry->h= eight, __print_flags(__entry->flags, "|", {V4L2_FWHT_FL_IS_INTERLACED, "IS_INTERLACED"}, @@ -364,24 +372,24 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_sps_tmpl, TP_ARGS(s), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_sps, s)), TP_fast_assign(__entry->s =3D *s), - TP_printk("\nprofile_idc %u\n" - "constraint_set_flags %s\n" - "level_idc %u\n" - "seq_parameter_set_id %u\n" - "chroma_format_idc %u\n" - "bit_depth_luma_minus8 %u\n" - "bit_depth_chroma_minus8 %u\n" - "log2_max_frame_num_minus4 %u\n" - "pic_order_cnt_type %u\n" - "log2_max_pic_order_cnt_lsb_minus4 %u\n" - "max_num_ref_frames %u\n" - "num_ref_frames_in_pic_order_cnt_cycle %u\n" - "offset_for_ref_frame %s\n" - "offset_for_non_ref_pic %d\n" - "offset_for_top_to_bottom_field %d\n" - "pic_width_in_mbs_minus1 %u\n" - "pic_height_in_map_units_minus1 %u\n" - "flags %s", + TP_printk("profile_idc =3D %u, " + "constraint_set_flags =3D %s, " + "level_idc =3D %u, " + "seq_parameter_set_id =3D %u, " + "chroma_format_idc =3D %u, " + "bit_depth_luma_minus8 =3D %u, " + "bit_depth_chroma_minus8 =3D %u, " + "log2_max_frame_num_minus4 =3D %u, " + "pic_order_cnt_type =3D %u, " + "log2_max_pic_order_cnt_lsb_minus4 =3D %u, " + "max_num_ref_frames =3D %u, " + "num_ref_frames_in_pic_order_cnt_cycle =3D %u, " + "offset_for_ref_frame =3D %s, " + "offset_for_non_ref_pic =3D %d, " + "offset_for_top_to_bottom_field =3D %d, " + "pic_width_in_mbs_minus1 =3D %u, " + "pic_height_in_map_units_minus1 =3D %u, " + "flags =3D %s", __entry->s.profile_idc, __print_flags(__entry->s.constraint_set_flags, "|", {V4L2_H264_SPS_CONSTRAINT_SET0_FLAG, "CONSTRAINT_SET0_FLAG"}, @@ -423,17 +431,17 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pps_tmpl, TP_ARGS(p), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pps, p)), TP_fast_assign(__entry->p =3D *p), - TP_printk("\npic_parameter_set_id %u\n" - "seq_parameter_set_id %u\n" - "num_slice_groups_minus1 %u\n" - "num_ref_idx_l0_default_active_minus1 %u\n" - "num_ref_idx_l1_default_active_minus1 %u\n" - "weighted_bipred_idc %u\n" - "pic_init_qp_minus26 %d\n" - "pic_init_qs_minus26 %d\n" - "chroma_qp_index_offset %d\n" - "second_chroma_qp_index_offset %d\n" - "flags %s", + TP_printk("pic_parameter_set_id =3D %u, " + "seq_parameter_set_id =3D %u, " + "num_slice_groups_minus1 =3D %u, " + "num_ref_idx_l0_default_active_minus1 =3D %u, " + "num_ref_idx_l1_default_active_minus1 =3D %u, " + "weighted_bipred_idc =3D %u, " + "pic_init_qp_minus26 =3D %d, " + "pic_init_qs_minus26 =3D %d, " + "chroma_qp_index_offset =3D %d, " + "second_chroma_qp_index_offset =3D %d, " + "flags =3D %s", __entry->p.pic_parameter_set_id, __entry->p.seq_parameter_set_id, __entry->p.num_slice_groups_minus1, @@ -461,7 +469,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_scaling_matrix_tmpl, TP_ARGS(s), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_scaling_matrix, s)), TP_fast_assign(__entry->s =3D *s), - TP_printk("\nscaling_list_4x4 {%s}\nscaling_list_8x8 {%s}", + TP_printk("scaling_list_4x4 =3D {%s}, scaling_list_8x8 =3D {%s}", __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, __entry->s.scaling_list_4x4, sizeof(__entry->s.scaling_list_4x4), @@ -478,16 +486,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pred_weights_tmpl, TP_ARGS(p), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pred_weights, p)), TP_fast_assign(__entry->p =3D *p), - TP_printk("\nluma_log2_weight_denom %u\n" - "chroma_log2_weight_denom %u\n" - "weight_factor[0].luma_weight %s\n" - "weight_factor[0].luma_offset %s\n" - "weight_factor[0].chroma_weight {%s}\n" - "weight_factor[0].chroma_offset {%s}\n" - "weight_factor[1].luma_weight %s\n" - "weight_factor[1].luma_offset %s\n" - "weight_factor[1].chroma_weight {%s}\n" - "weight_factor[1].chroma_offset {%s}\n", + TP_printk("luma_log2_weight_denom =3D %u, " + "chroma_log2_weight_denom =3D %u, " + "weight_factor[0].luma_weight =3D %s, " + "weight_factor[0].luma_offset =3D %s, " + "weight_factor[0].chroma_weight =3D {%s}, " + "weight_factor[0].chroma_offset =3D {%s}, " + "weight_factor[1].luma_weight =3D %s, " + "weight_factor[1].luma_offset =3D %s, " + "weight_factor[1].chroma_weight =3D {%s}, " + "weight_factor[1].chroma_offset =3D {%s}", __entry->p.luma_log2_weight_denom, __entry->p.chroma_log2_weight_denom, __print_array(__entry->p.weight_factors[0].luma_weight, @@ -526,20 +534,20 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_slice_params_tmpl, TP_ARGS(s), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_slice_params, s)), TP_fast_assign(__entry->s =3D *s), - TP_printk("\nheader_bit_size %u\n" - "first_mb_in_slice %u\n" - "slice_type %s\n" - "colour_plane_id %u\n" - "redundant_pic_cnt %u\n" - "cabac_init_idc %u\n" - "slice_qp_delta %d\n" - "slice_qs_delta %d\n" - "disable_deblocking_filter_idc %u\n" - "slice_alpha_c0_offset_div2 %u\n" - "slice_beta_offset_div2 %u\n" - "num_ref_idx_l0_active_minus1 %u\n" - "num_ref_idx_l1_active_minus1 %u\n" - "flags %s", + TP_printk("header_bit_size =3D %u, " + "first_mb_in_slice =3D %u, " + "slice_type =3D %s, " + "colour_plane_id =3D %u, " + "redundant_pic_cnt =3D %u, " + "cabac_init_idc =3D %u, " + "slice_qp_delta =3D %d, " + "slice_qs_delta =3D %d, " + "disable_deblocking_filter_idc =3D %u, " + "slice_alpha_c0_offset_div2 =3D %u, " + "slice_beta_offset_div2 =3D %u, " + "num_ref_idx_l0_active_minus1 =3D %u, " + "num_ref_idx_l1_active_minus1 =3D %u, " + "flags =3D %s", __entry->s.header_bit_size, __entry->s.first_mb_in_slice, __print_symbolic(__entry->s.slice_type, @@ -570,7 +578,7 @@ DECLARE_EVENT_CLASS(v4l2_h264_reference_tmpl, TP_STRUCT__entry(__field_struct(struct v4l2_h264_reference, r) __field(int, i)), TP_fast_assign(__entry->r =3D *r; __entry->i =3D i;), - TP_printk("[%d]: fields %s index %u", + TP_printk("[%d]: fields =3D %s, index =3D %u", __entry->i, __print_flags(__entry->r.fields, "|", {V4L2_H264_TOP_FIELD_REF, "TOP_FIELD_REF"}, @@ -585,19 +593,19 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_decode_params_tmpl, TP_ARGS(d), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_decode_params, d)), TP_fast_assign(__entry->d =3D *d), - TP_printk("\nnal_ref_idc %u\n" - "frame_num %u\n" - "top_field_order_cnt %d\n" - "bottom_field_order_cnt %d\n" - "idr_pic_id %u\n" - "pic_order_cnt_lsb %u\n" - "delta_pic_order_cnt_bottom %d\n" - "delta_pic_order_cnt0 %d\n" - "delta_pic_order_cnt1 %d\n" - "dec_ref_pic_marking_bit_size %u\n" - "pic_order_cnt_bit_size %u\n" - "slice_group_change_cycle %u\n" - "flags %s\n", + TP_printk("nal_ref_idc =3D %u, " + "frame_num =3D %u, " + "top_field_order_cnt =3D %d, " + "bottom_field_order_cnt =3D %d, " + "idr_pic_id =3D %u, " + "pic_order_cnt_lsb =3D %u, " + "delta_pic_order_cnt_bottom =3D %d, " + "delta_pic_order_cnt0 =3D %d, " + "delta_pic_order_cnt1 =3D %d, " + "dec_ref_pic_marking_bit_size =3D %u, " + "pic_order_cnt_bit_size =3D %u, " + "slice_group_change_cycle =3D %u, " + "flags =3D %s", __entry->d.nal_ref_idc, __entry->d.frame_num, __entry->d.top_field_order_cnt, @@ -625,8 +633,8 @@ DECLARE_EVENT_CLASS(v4l2_h264_dpb_entry_tmpl, TP_STRUCT__entry(__field_struct(struct v4l2_h264_dpb_entry, e) __field(int, i)), TP_fast_assign(__entry->e =3D *e; __entry->i =3D i;), - TP_printk("[%d]: reference_ts %llu, pic_num %u frame_num %u fields %s " - "top_field_order_cnt %d bottom_field_order_cnt %d flags %s", + TP_printk("[%d]: reference_ts =3D %llu, pic_num =3D %u, frame_num =3D %u,= fields =3D %s " + "top_field_order_cnt =3D %d, bottom_field_order_cnt =3D %d, flags =3D = %s", __entry->i, __entry->e.reference_ts, __entry->e.pic_num, @@ -642,7 +650,6 @@ DECLARE_EVENT_CLASS(v4l2_h264_dpb_entry_tmpl, {V4L2_H264_DPB_ENTRY_FLAG_ACTIVE, "ACTIVE"}, {V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM, "LONG_TERM"}, {V4L2_H264_DPB_ENTRY_FLAG_FIELD, "FIELD"}) - ) ); =20 @@ -698,31 +705,31 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_sps_tmpl, TP_ARGS(s), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_sps, s)), TP_fast_assign(__entry->s =3D *s), - TP_printk("\nvideo_parameter_set_id %u\n" - "seq_parameter_set_id %u\n" - "pic_width_in_luma_samples %u\n" - "pic_height_in_luma_samples %u\n" - "bit_depth_luma_minus8 %u\n" - "bit_depth_chroma_minus8 %u\n" - "log2_max_pic_order_cnt_lsb_minus4 %u\n" - "sps_max_dec_pic_buffering_minus1 %u\n" - "sps_max_num_reorder_pics %u\n" - "sps_max_latency_increase_plus1 %u\n" - "log2_min_luma_coding_block_size_minus3 %u\n" - "log2_diff_max_min_luma_coding_block_size %u\n" - "log2_min_luma_transform_block_size_minus2 %u\n" - "log2_diff_max_min_luma_transform_block_size %u\n" - "max_transform_hierarchy_depth_inter %u\n" - "max_transform_hierarchy_depth_intra %u\n" - "pcm_sample_bit_depth_luma_minus1 %u\n" - "pcm_sample_bit_depth_chroma_minus1 %u\n" - "log2_min_pcm_luma_coding_block_size_minus3 %u\n" - "log2_diff_max_min_pcm_luma_coding_block_size %u\n" - "num_short_term_ref_pic_sets %u\n" - "num_long_term_ref_pics_sps %u\n" - "chroma_format_idc %u\n" - "sps_max_sub_layers_minus1 %u\n" - "flags %s", + TP_printk("video_parameter_set_id =3D %u, " + "seq_parameter_set_id =3D %u, " + "pic_width_in_luma_samples =3D %u, " + "pic_height_in_luma_samples =3D %u, " + "bit_depth_luma_minus8 =3D %u, " + "bit_depth_chroma_minus8 =3D %u, " + "log2_max_pic_order_cnt_lsb_minus4 =3D %u, " + "sps_max_dec_pic_buffering_minus1 =3D %u, " + "sps_max_num_reorder_pics =3D %u, " + "sps_max_latency_increase_plus1 =3D %u, " + "log2_min_luma_coding_block_size_minus3 =3D %u, " + "log2_diff_max_min_luma_coding_block_size =3D %u, " + "log2_min_luma_transform_block_size_minus2 =3D %u, " + "log2_diff_max_min_luma_transform_block_size =3D %u, " + "max_transform_hierarchy_depth_inter =3D %u, " + "max_transform_hierarchy_depth_intra =3D %u, " + "pcm_sample_bit_depth_luma_minus1 =3D %u, " + "pcm_sample_bit_depth_chroma_minus1 =3D %u, " + "log2_min_pcm_luma_coding_block_size_minus3 =3D %u, " + "log2_diff_max_min_pcm_luma_coding_block_size =3D %u, " + "num_short_term_ref_pic_sets =3D %u, " + "num_long_term_ref_pics_sps =3D %u, " + "chroma_format_idc =3D %u, " + "sps_max_sub_layers_minus1 =3D %u, " + "flags =3D %s", __entry->s.video_parameter_set_id, __entry->s.seq_parameter_set_id, __entry->s.pic_width_in_luma_samples, @@ -767,22 +774,22 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_pps_tmpl, TP_ARGS(p), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_pps, p)), TP_fast_assign(__entry->p =3D *p), - TP_printk("\npic_parameter_set_id %u\n" - "num_extra_slice_header_bits %u\n" - "num_ref_idx_l0_default_active_minus1 %u\n" - "num_ref_idx_l1_default_active_minus1 %u\n" - "init_qp_minus26 %d\n" - "diff_cu_qp_delta_depth %u\n" - "pps_cb_qp_offset %d\n" - "pps_cr_qp_offset %d\n" - "num_tile_columns_minus1 %d\n" - "num_tile_rows_minus1 %d\n" - "column_width_minus1 %s\n" - "row_height_minus1 %s\n" - "pps_beta_offset_div2 %d\n" - "pps_tc_offset_div2 %d\n" - "log2_parallel_merge_level_minus2 %u\n" - "flags %s", + TP_printk("pic_parameter_set_id =3D %u, " + "num_extra_slice_header_bits =3D %u, " + "num_ref_idx_l0_default_active_minus1 =3D %u, " + "num_ref_idx_l1_default_active_minus1 =3D %u, " + "init_qp_minus26 =3D %d, " + "diff_cu_qp_delta_depth =3D %u, " + "pps_cb_qp_offset =3D %d, " + "pps_cr_qp_offset =3D %d, " + "num_tile_columns_minus1 =3D %d, " + "num_tile_rows_minus1 =3D %d, " + "column_width_minus1 =3D %s, " + "row_height_minus1 =3D %s, " + "pps_beta_offset_div2 =3D %d, " + "pps_tc_offset_div2 =3D %d, " + "log2_parallel_merge_level_minus2 =3D %u, " + "flags =3D %s", __entry->p.pic_parameter_set_id, __entry->p.num_extra_slice_header_bits, __entry->p.num_ref_idx_l0_default_active_minus1, @@ -834,33 +841,33 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_slice_params_tmpl, TP_ARGS(s), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_slice_params, s)), TP_fast_assign(__entry->s =3D *s), - TP_printk("\nbit_size %u\n" - "data_byte_offset %u\n" - "num_entry_point_offsets %u\n" - "nal_unit_type %u\n" - "nuh_temporal_id_plus1 %u\n" - "slice_type %u\n" - "colour_plane_id %u\n" - "slice_pic_order_cnt %d\n" - "num_ref_idx_l0_active_minus1 %u\n" - "num_ref_idx_l1_active_minus1 %u\n" - "collocated_ref_idx %u\n" - "five_minus_max_num_merge_cand %u\n" - "slice_qp_delta %d\n" - "slice_cb_qp_offset %d\n" - "slice_cr_qp_offset %d\n" - "slice_act_y_qp_offset %d\n" - "slice_act_cb_qp_offset %d\n" - "slice_act_cr_qp_offset %d\n" - "slice_beta_offset_div2 %d\n" - "slice_tc_offset_div2 %d\n" - "pic_struct %u\n" - "slice_segment_addr %u\n" - "ref_idx_l0 %s\n" - "ref_idx_l1 %s\n" - "short_term_ref_pic_set_size %u\n" - "long_term_ref_pic_set_size %u\n" - "flags %s", + TP_printk("bit_size =3D %u, " + "data_byte_offset =3D %u, " + "num_entry_point_offsets =3D %u, " + "nal_unit_type =3D %u, " + "nuh_temporal_id_plus1 =3D %u, " + "slice_type =3D %u, " + "colour_plane_id =3D %u, " + "slice_pic_order_cnt =3D %d, " + "num_ref_idx_l0_active_minus1 =3D %u, " + "num_ref_idx_l1_active_minus1 =3D %u, " + "collocated_ref_idx =3D %u, " + "five_minus_max_num_merge_cand =3D %u, " + "slice_qp_delta =3D %d, " + "slice_cb_qp_offset =3D %d, " + "slice_cr_qp_offset =3D %d, " + "slice_act_y_qp_offset =3D %d, " + "slice_act_cb_qp_offset =3D %d, " + "slice_act_cr_qp_offset =3D %d, " + "slice_beta_offset_div2 =3D %d, " + "slice_tc_offset_div2 =3D %d, " + "pic_struct =3D %u, " + "slice_segment_addr =3D %u, " + "ref_idx_l0 =3D %s, " + "ref_idx_l1 =3D %s, " + "short_term_ref_pic_set_size =3D %u, " + "long_term_ref_pic_set_size =3D %u, " + "flags =3D %s", __entry->s.bit_size, __entry->s.data_byte_offset, __entry->s.num_entry_point_offsets, @@ -911,16 +918,16 @@ DECLARE_EVENT_CLASS(v4l2_hevc_pred_weight_table_tmpl, TP_ARGS(p), TP_STRUCT__entry(__field_struct(struct v4l2_hevc_pred_weight_table, p)), TP_fast_assign(__entry->p =3D *p), - TP_printk("\ndelta_luma_weight_l0 %s\n" - "luma_offset_l0 %s\n" - "delta_chroma_weight_l0 {%s}\n" - "chroma_offset_l0 {%s}\n" - "delta_luma_weight_l1 %s\n" - "luma_offset_l1 %s\n" - "delta_chroma_weight_l1 {%s}\n" - "chroma_offset_l1 {%s}\n" - "luma_log2_weight_denom %d\n" - "delta_chroma_log2_weight_denom %d\n", + TP_printk("delta_luma_weight_l0 =3D %s, " + "luma_offset_l0 =3D %s, " + "delta_chroma_weight_l0 =3D {%s}, " + "chroma_offset_l0 =3D {%s}, " + "delta_luma_weight_l1 =3D %s, " + "luma_offset_l1 =3D %s, " + "delta_chroma_weight_l1 =3D {%s}, " + "chroma_offset_l1 =3D {%s}, " + "luma_log2_weight_denom =3D %d, " + "delta_chroma_log2_weight_denom =3D %d", __print_array(__entry->p.delta_luma_weight_l0, ARRAY_SIZE(__entry->p.delta_luma_weight_l0), sizeof(__entry->p.delta_luma_weight_l0[0])), @@ -959,12 +966,12 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_scaling_matrix_tmp= l, TP_ARGS(s), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_scaling_matrix, s)), TP_fast_assign(__entry->s =3D *s), - TP_printk("\nscaling_list_4x4 {%s}\n" - "scaling_list_8x8 {%s}\n" - "scaling_list_16x16 {%s}\n" - "scaling_list_32x32 {%s}\n" - "scaling_list_dc_coef_16x16 %s\n" - "scaling_list_dc_coef_32x32 %s\n", + TP_printk("scaling_list_4x4 =3D {%s}, " + "scaling_list_8x8 =3D {%s}, " + "scaling_list_16x16 =3D {%s}, " + "scaling_list_32x32 =3D {%s}, " + "scaling_list_dc_coef_16x16 =3D %s, " + "scaling_list_dc_coef_32x32 =3D %s", __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, __entry->s.scaling_list_4x4, sizeof(__entry->s.scaling_list_4x4), @@ -994,17 +1001,17 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_decode_params_tmp= l, TP_ARGS(d), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_decode_params, d)), TP_fast_assign(__entry->d =3D *d), - TP_printk("\npic_order_cnt_val %d\n" - "short_term_ref_pic_set_size %u\n" - "long_term_ref_pic_set_size %u\n" - "num_active_dpb_entries %u\n" - "num_poc_st_curr_before %u\n" - "num_poc_st_curr_after %u\n" - "num_poc_lt_curr %u\n" - "poc_st_curr_before %s\n" - "poc_st_curr_after %s\n" - "poc_lt_curr %s\n" - "flags %s", + TP_printk("pic_order_cnt_val =3D %d, " + "short_term_ref_pic_set_size =3D %u, " + "long_term_ref_pic_set_size =3D %u, " + "num_active_dpb_entries =3D %u, " + "num_poc_st_curr_before =3D %u, " + "num_poc_st_curr_after =3D %u, " + "num_poc_lt_curr =3D %u, " + "poc_st_curr_before =3D %s, " + "poc_st_curr_after =3D %s, " + "poc_lt_curr =3D %s, " + "flags =3D %s", __entry->d.pic_order_cnt_val, __entry->d.short_term_ref_pic_set_size, __entry->d.long_term_ref_pic_set_size, @@ -1033,8 +1040,8 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_lt_rps_tmp= l, TP_ARGS(lt), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_lt_rps, lt)= ), TP_fast_assign(__entry->lt =3D *lt), - TP_printk("\nflags %s\n" - "lt_ref_pic_poc_lsb_sps %x\n", + TP_printk("flags =3D %s, " + "lt_ref_pic_poc_lsb_sps =3D %x", __print_flags(__entry->lt.flags, "|", {V4L2_HEVC_EXT_SPS_LT_RPS_FLAG_USED_LT, "USED_LT"} ), @@ -1047,16 +1054,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_st_rps_t= mpl, TP_ARGS(st), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_st_rps, st)= ), TP_fast_assign(__entry->st =3D *st), - TP_printk("\nflags %s\n" - "delta_idx_minus1: %u\n" - "delta_rps_sign: %u\n" - "abs_delta_rps_minus1: %u\n" - "num_negative_pics: %u\n" - "num_positive_pics: %u\n" - "used_by_curr_pic: %08x\n" - "use_delta_flag: %08x\n" - "delta_poc_s0_minus1: %s\n" - "delta_poc_s1_minus1: %s\n", + TP_printk("flags =3D %s, " + "delta_idx_minus1 =3D %u, " + "delta_rps_sign =3D %u, " + "abs_delta_rps_minus1 =3D %u, " + "num_negative_pics =3D %u, " + "num_positive_pics =3D %u, " + "used_by_curr_pic =3D %08x, " + "use_delta_flag =3D %08x, " + "delta_poc_s0_minus1 =3D %s, " + "delta_poc_s1_minus1 =3D %s", __print_flags(__entry->st.flags, "|", {V4L2_HEVC_EXT_SPS_ST_RPS_FLAG_INTER_REF_PIC_SET_PRED, "INTER_REF_PIC_= SET_PRED"} ), @@ -1081,10 +1088,10 @@ DECLARE_EVENT_CLASS(v4l2_hevc_dpb_entry_tmpl, TP_ARGS(e), TP_STRUCT__entry(__field_struct(struct v4l2_hevc_dpb_entry, e)), TP_fast_assign(__entry->e =3D *e), - TP_printk("\ntimestamp %llu\n" - "flags %s\n" - "field_pic %u\n" - "pic_order_cnt_val %d\n", + TP_printk("timestamp =3D %llu, " + "flags =3D %s, " + "field_pic =3D %u, " + "pic_order_cnt_val =3D %d", __entry->e.timestamp, __print_flags(__entry->e.flags, "|", {V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE, "LONG_TERM_REFERENCE"} @@ -1145,8 +1152,8 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_seq_tmpl, TP_ARGS(s), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_sequence, s)), TP_fast_assign(__entry->s =3D *s;), - TP_printk("\nhorizontal_size %u\nvertical_size %u\nvbv_buffer_size %u\n" - "profile_and_level_indication %u\nchroma_format %u\nflags %s\n", + TP_printk("horizontal_size =3D %u, vertical_size =3D %u, vbv_buffer_size = =3D %u, " + "profile_and_level_indication =3D %u, chroma_format =3D %u, flags =3D = %s", __entry->s.horizontal_size, __entry->s.vertical_size, __entry->s.vbv_buffer_size, @@ -1162,8 +1169,8 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_pic_tmpl, TP_ARGS(p), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_picture, p)), TP_fast_assign(__entry->p =3D *p;), - TP_printk("\nbackward_ref_ts %llu\nforward_ref_ts %llu\nflags %s\nf_code = {%s}\n" - "picture_coding_type: %u\npicture_structure %u\nintra_dc_precision %u\= n", + TP_printk("backward_ref_ts =3D %llu, forward_ref_ts =3D %llu, flags =3D %= s, f_code =3D {%s}, " + "picture_coding_type =3D %u, picture_structure =3D %u, intra_dc_precis= ion =3D %u", __entry->p.backward_ref_ts, __entry->p.forward_ref_ts, __print_flags(__entry->p.flags, "|", @@ -1190,8 +1197,8 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_quant_tmpl, TP_ARGS(q), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_quantisation, q)), TP_fast_assign(__entry->q =3D *q;), - TP_printk("\nintra_quantiser_matrix %s\nnon_intra_quantiser_matrix %s\n" - "chroma_intra_quantiser_matrix %s\nchroma_non_intra_quantiser_matrix %= s\n", + TP_printk("intra_quantiser_matrix =3D %s, non_intra_quantiser_matrix =3D = %s, " + "chroma_intra_quantiser_matrix =3D %s, chroma_non_intra_quantiser_matr= ix =3D %s", __print_array(__entry->q.intra_quantiser_matrix, ARRAY_SIZE(__entry->q.intra_quantiser_matrix), sizeof(__entry->q.intra_quantiser_matrix[0])), @@ -1229,10 +1236,10 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_entropy_tmpl, TP_ARGS(f), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp8_frame, f)), TP_fast_assign(__entry->f =3D *f;), - TP_printk("\nentropy.coeff_probs {%s}\n" - "entropy.y_mode_probs %s\n" - "entropy.uv_mode_probs %s\n" - "entropy.mv_probs {%s}", + TP_printk("entropy.coeff_probs =3D {%s}, " + "entropy.y_mode_probs =3D %s, " + "entropy.uv_mode_probs =3D %s, " + "entropy.mv_probs =3D {%s}", __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, __entry->f.entropy.coeff_probs, sizeof(__entry->f.entropy.coeff_probs), @@ -1255,41 +1262,41 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_frame_tmpl, TP_ARGS(f), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp8_frame, f)), TP_fast_assign(__entry->f =3D *f;), - TP_printk("\nsegment.quant_update %s\n" - "segment.lf_update %s\n" - "segment.segment_probs %s\n" - "segment.flags %s\n" - "lf.ref_frm_delta %s\n" - "lf.mb_mode_delta %s\n" - "lf.sharpness_level %u\n" - "lf.level %u\n" - "lf.flags %s\n" - "quant.y_ac_qi %u\n" - "quant.y_dc_delta %d\n" - "quant.y2_dc_delta %d\n" - "quant.y2_ac_delta %d\n" - "quant.uv_dc_delta %d\n" - "quant.uv_ac_delta %d\n" - "coder_state.range %u\n" - "coder_state.value %u\n" - "coder_state.bit_count %u\n" - "width %u\n" - "height %u\n" - "horizontal_scale %u\n" - "vertical_scale %u\n" - "version %u\n" - "prob_skip_false %u\n" - "prob_intra %u\n" - "prob_last %u\n" - "prob_gf %u\n" - "num_dct_parts %u\n" - "first_part_size %u\n" - "first_part_header_bits %u\n" - "dct_part_sizes %s\n" - "last_frame_ts %llu\n" - "golden_frame_ts %llu\n" - "alt_frame_ts %llu\n" - "flags %s", + TP_printk("segment.quant_update =3D %s, " + "segment.lf_update =3D %s, " + "segment.segment_probs =3D %s, " + "segment.flags =3D %s, " + "lf.ref_frm_delta =3D %s, " + "lf.mb_mode_delta =3D %s, " + "lf.sharpness_level =3D %u, " + "lf.level =3D %u, " + "lf.flags =3D %s, " + "quant.y_ac_qi =3D %u, " + "quant.y_dc_delta =3D %d, " + "quant.y2_dc_delta =3D %d, " + "quant.y2_ac_delta =3D %d, " + "quant.uv_dc_delta =3D %d, " + "quant.uv_ac_delta =3D %d, " + "coder_state.range =3D %u, " + "coder_state.value =3D %u, " + "coder_state.bit_count =3D %u, " + "width =3D %u, " + "height =3D %u, " + "horizontal_scale =3D %u, " + "vertical_scale =3D %u, " + "version =3D %u, " + "prob_skip_false =3D %u, " + "prob_intra =3D %u, " + "prob_last =3D %u, " + "prob_gf =3D %u, " + "num_dct_parts =3D %u, " + "first_part_size =3D %u, " + "first_part_header_bits =3D %u, " + "dct_part_sizes =3D %s, " + "last_frame_ts =3D %llu, " + "golden_frame_ts =3D %llu, " + "alt_frame_ts =3D %llu, " + "flags =3D %s", __print_array(__entry->f.segment.quant_update, ARRAY_SIZE(__entry->f.segment.quant_update), sizeof(__entry->f.segment.quant_update[0])), @@ -1370,39 +1377,39 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_frame_tmpl, TP_ARGS(f), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp9_frame, f)), TP_fast_assign(__entry->f =3D *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", + TP_printk("lf.ref_deltas =3D %s, " + "lf.mode_deltas =3D %s, " + "lf.level =3D %u, " + "lf.sharpness =3D %u, " + "lf.flags =3D %s, " + "quant.base_q_idx =3D %u, " + "quant.delta_q_y_dc =3D %d, " + "quant.delta_q_uv_dc =3D %d, " + "quant.delta_q_uv_ac =3D %d, " + "seg.feature_data =3D {%s}, " + "seg.feature_enabled =3D %s, " + "seg.tree_probs =3D %s, " + "seg.pred_probs =3D %s, " + "seg.flags =3D %s, " + "flags =3D %s, " + "compressed_header_size =3D %u, " + "uncompressed_header_size =3D %u, " + "frame_width_minus_1 =3D %u, " + "frame_height_minus_1 =3D %u, " + "render_width_minus_1 =3D %u, " + "render_height_minus_1 =3D %u, " + "last_frame_ts =3D %llu, " + "golden_frame_ts =3D %llu, " + "alt_frame_ts =3D %llu, " + "ref_frame_sign_bias =3D %s, " + "reset_frame_context =3D %s, " + "frame_context_idx =3D %u, " + "profile =3D %u, " + "bit_depth =3D %u, " + "interpolation_filter =3D %s, " + "tile_cols_log2 =3D %u, " + "tile_rows_log_2 =3D %u, " + "reference_mode =3D %s", __print_array(__entry->f.lf.ref_deltas, ARRAY_SIZE(__entry->f.lf.ref_deltas), sizeof(__entry->f.lf.ref_deltas[0])), @@ -1487,20 +1494,20 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_compressed_hdr_tm= pl, TP_ARGS(h), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp9_compressed_hdr, h)), TP_fast_assign(__entry->h =3D *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", + TP_printk("tx_mode =3D %s, " + "tx8 =3D {%s}, " + "tx16 =3D {%s}, " + "tx32 =3D {%s}, " + "skip =3D %s, " + "inter_mode =3D {%s}, " + "interp_filter =3D {%s}, " + "is_inter =3D %s, " + "comp_mode =3D %s, " + "single_ref =3D {%s}, " + "comp_ref =3D %s, " + "y_mode =3D {%s}, " + "uv_mode =3D {%s}, " + "partition =3D {%s}", __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"}, @@ -1563,7 +1570,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_compressed_coef_tmp= l, TP_ARGS(h), TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp9_compressed_hdr, h)), TP_fast_assign(__entry->h =3D *h;), - TP_printk("\n coef {%s}", + TP_printk("coef =3D {%s}", __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, __entry->h.coef, sizeof(__entry->h.coef), @@ -1576,15 +1583,15 @@ DECLARE_EVENT_CLASS(v4l2_vp9_mv_probs_tmpl, TP_ARGS(p), TP_STRUCT__entry(__field_struct(struct v4l2_vp9_mv_probs, p)), TP_fast_assign(__entry->p =3D *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", + TP_printk("joint =3D %s, " + "sign =3D %s, " + "classes =3D {%s}, " + "class0_bit =3D %s, " + "bits =3D {%s}, " + "class0_fr =3D {%s}, " + "fr =3D {%s}, " + "class0_hp =3D %s, " + "hp =3D %s", __print_array(__entry->p.joint, ARRAY_SIZE(__entry->p.joint), sizeof(__entry->p.joint[0])), --=20 2.53.0 From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C35C435B624; Thu, 12 Feb 2026 16:23:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913429; cv=none; b=EYuQ2ZVZ/yE39SyRUi1jhwJlDIBmi7Mcr3SrXcRbRsU6RCUkAa4xhR028ZtxLyrVPyzuCzTgpj4JOrKngP/SB3a8ikmLSEUPDlhiI9nnAXXeo3x4rmFaYC3HFBm+zOtSDfdQ5HyXl8IZ7cjHB/GBVtAK53Cpeu3ApNWBMGIVAlI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913429; c=relaxed/simple; bh=b6iQGMkGcjBVVv0K+5rsTGEPunZ8R76rYg3Zy/SqlNM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ii4G41kYX/8ZrmI3VTFFmg1+7KRg2n34wwEZk3+YTfDAJa1q+ve/5wZm3j7ZTBLxMDGqfPrDHWhjvfkYvzGv7LKryEpW9xgseR6ntsKMEyceKtJnYyljuQlnCeZmucFoYeTWi2wfEZYOzZKVjKqbJ4OPMlBYNQXj8ACNManxs9s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=Ruq7eDmd; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="Ruq7eDmd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913426; bh=b6iQGMkGcjBVVv0K+5rsTGEPunZ8R76rYg3Zy/SqlNM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ruq7eDmdRq6+pPoP/6THf/N7FxwquhpvR0F6ZOqwcjxTrCvNXl4cfUjHQ4/4pSnya ihWJ5BOEX92zJwzUHp83k0WClx4/2FNpzXdf2Z8uY+hday6c5vl99DjKnKigSVFvBJ kUigE+Pjv0zx++qygsib2v8kp62t4XS+/jgjDaW2ceUu49FRffvGafaZI897jzI+tB UedZlTCmobQWtYeql/qpNV8HtPA29MCbn1ICKleaTQ9X8lbp71d6AFepEmDIxWmYJ5 3gA+NiDmRYcRh0/MmS1DmjD8I1uDkAmNG+VRbzMR1Guiq9OyEVdzrH7wykwJlNLB+4 +susdeBZdtWBg== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id D1C0217E1144; Thu, 12 Feb 2026 17:23:42 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 03/11] media: Add tgid and fd fields in v4l2_fh struct Date: Thu, 12 Feb 2026 11:23:20 -0500 Message-ID: <20260212162328.192217-4-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" These fields will be used in traces to help userspace tracing tools identify streams. The tgid field will keep the PID of the process that opened the video file. That is needed because trace calls can happen in IRQs, for which there is no current PID. The fd field helps identify the context in case the same process opens the video device multiple times. Note that the fd field is set in the __video_do_ioctl() function. That is because the file descriptor has not been allocated yet when v4l2_open() is called. Signed-off-by: Detlev Casanova --- drivers/media/v4l2-core/v4l2-fh.c | 1 + drivers/media/v4l2-core/v4l2-ioctl.c | 17 +++++++++++++++++ include/media/v4l2-fh.h | 4 ++++ 3 files changed, 22 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-fh.c b/drivers/media/v4l2-core/v4= l2-fh.c index df3ba9d4674b..86e8223b46cb 100644 --- a/drivers/media/v4l2-core/v4l2-fh.c +++ b/drivers/media/v4l2-core/v4l2-fh.c @@ -37,6 +37,7 @@ void v4l2_fh_init(struct v4l2_fh *fh, struct video_device= *vdev) INIT_LIST_HEAD(&fh->available); INIT_LIST_HEAD(&fh->subscribed); fh->sequence =3D -1; + fh->tgid =3D current->tgid; mutex_init(&fh->subscribe_lock); } EXPORT_SYMBOL_GPL(v4l2_fh_init); diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core= /v4l2-ioctl.c index 37d33d4a363d..a3b6df0571d6 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -9,6 +9,7 @@ */ =20 #include +#include #include #include #include @@ -3061,6 +3062,16 @@ void v4l_printk_ioctl(const char *prefix, unsigned i= nt cmd) } EXPORT_SYMBOL(v4l_printk_ioctl); =20 +static int _file_iterate(const void *priv, struct file *filp, unsigned int= fd) +{ + const struct file *fh_filp =3D priv; + + if (fh_filp =3D=3D filp) + return fd; + + return 0; +} + static long __video_do_ioctl(struct file *file, unsigned int cmd, void *arg) { @@ -3081,6 +3092,12 @@ static long __video_do_ioctl(struct file *file, return ret; } =20 + if (unlikely(!vfh->fd)) { + vfh->fd =3D iterate_fd(current->files, 0, _file_iterate, file); + if (!vfh->fd) + vfh->fd =3D -1; + } + /* * We need to serialize streamon/off with queueing new requests. * These ioctls may trigger the cancellation of a streaming diff --git a/include/media/v4l2-fh.h b/include/media/v4l2-fh.h index aad4b3689d7e..4ef4e58ab8d1 100644 --- a/include/media/v4l2-fh.h +++ b/include/media/v4l2-fh.h @@ -28,6 +28,8 @@ struct v4l2_ctrl_handler; * @vdev: pointer to &struct video_device * @ctrl_handler: pointer to &struct v4l2_ctrl_handler * @prio: priority of the file handler, as defined by &enum v4l2_priority + * @tgid: process id that initialized the v4l2_fh + * @fd: file descriptor associated to this v4l2_fh for the process id in t= gid * * @wait: event' s wait queue * @subscribe_lock: serialise changes to the subscribed list; guarantee th= at @@ -44,6 +46,8 @@ struct v4l2_fh { struct video_device *vdev; struct v4l2_ctrl_handler *ctrl_handler; enum v4l2_priority prio; + uint32_t tgid; + int fd; =20 /* Events */ wait_queue_head_t wait; --=20 2.53.0 From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11C423559F1; Thu, 12 Feb 2026 16:23:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913434; cv=none; b=e9jpZxpHeGkzuEaCGGrqHob3ziy8OlgPoBcHnaeTRjzLg+/Te6hL9tXsPWFSyCOcT37N9ja9zDYZpsLpUgo6xdDGL+5YMgFsvhlud7euj/y2NyzT7STpj52hrNOEi9FbHFh7uTt3X5wJWIIfWveG4EC3AiMBAfHDI/Hszj6yJQ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913434; c=relaxed/simple; bh=GPRnpO6ypKwBjVC/4+7i47pgavRgC7x0EB0ZX75Yx/Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Vg7EnfVT0DL9Z8qr+sVU42yBsBnINiy5iUx3uuxPJ80aIbVvbLpdoQmHxrMx5Az8HPBedcUgs/CCP6lNyb8ULXwIopAMqIn43XqC3O8ZuCRqb+eRxsw/H2Q/R1WlGrVLuMdYhZBsqflakol2PeHuKsYirAbmbc/BN7Jz3YK4TWw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=TH92q0R7; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="TH92q0R7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913429; bh=GPRnpO6ypKwBjVC/4+7i47pgavRgC7x0EB0ZX75Yx/Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TH92q0R7arPb5lPCI6xl495DygaAbp7yi7f8ei8mpIjh9La5ILbqeVjmrCBmAwjQC X6plCBGn8KV5KhRLqxZ67SiClZJFhyiwJOR42vAWfOOnApT7PLmEg0cASLNG2gP1tG +Nax2PBoUBZ18L6SLeg/qz2NFeibXTgEjNijUf0p8jG9WIozf1r+b0iyn8fTPrMNXm wpY+iundXBj0sQwSAOZlY72LW+BHeCGX1T99wG1aEqpiB6jMI4LGAzDy2TB71iH2Jn fCz75EK0+HlB4chqVD1TL4R7waUHWb/d/J9Eob+fOhGeZGr2sXebaVDpNgQuZQZ9Gi SoGp4mAaSF/VQ== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id 5417C17E0E6A; Thu, 12 Feb 2026 17:23:46 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 04/11] media: Add tgid and fd to the v4l2-requests trace fields Date: Thu, 12 Feb 2026 11:23:21 -0500 Message-ID: <20260212162328.192217-5-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" With these fields, userspace can better track which trace event matches with a given stream. Even though the trace shows the PID (based on current->tgid), trace functions could be called from other contexts, therefore showing the wrong PID, or none at all. These will ensure that the trace event can be matched with the PID/FD that opened and configured the video device file. Signed-off-by: Detlev Casanova --- drivers/media/test-drivers/visl/visl-dec.c | 68 +-- include/trace/events/v4l2_requests.h | 622 +++++++++++++-------- 2 files changed, 439 insertions(+), 251 deletions(-) diff --git a/drivers/media/test-drivers/visl/visl-dec.c b/drivers/media/tes= t-drivers/visl/visl-dec.c index d49208e83726..fc216da17048 100644 --- a/drivers/media/test-drivers/visl/visl-dec.c +++ b/drivers/media/test-drivers/visl/visl-dec.c @@ -489,67 +489,71 @@ static void visl_tpg_fill(struct visl_ctx *ctx, struc= t visl_run *run) static void visl_trace_ctrls(struct visl_ctx *ctx, struct visl_run *run) { int i; + struct v4l2_fh *fh =3D &ctx->fh; =20 switch (ctx->current_codec) { default: case VISL_CODEC_NONE: break; case VISL_CODEC_FWHT: - trace_v4l2_ctrl_fwht_params(run->fwht.params); + trace_v4l2_ctrl_fwht_params(fh->tgid, fh->fd, run->fwht.params); break; case VISL_CODEC_MPEG2: - trace_v4l2_ctrl_mpeg2_sequence(run->mpeg2.seq); - trace_v4l2_ctrl_mpeg2_picture(run->mpeg2.pic); - trace_v4l2_ctrl_mpeg2_quantisation(run->mpeg2.quant); + trace_v4l2_ctrl_mpeg2_sequence(fh->tgid, fh->fd, run->mpeg2.seq); + trace_v4l2_ctrl_mpeg2_picture(fh->tgid, fh->fd, run->mpeg2.pic); + trace_v4l2_ctrl_mpeg2_quantisation(fh->tgid, fh->fd, run->mpeg2.quant); break; case VISL_CODEC_VP8: - trace_v4l2_ctrl_vp8_frame(run->vp8.frame); - trace_v4l2_ctrl_vp8_entropy(run->vp8.frame); + trace_v4l2_ctrl_vp8_frame(fh->tgid, fh->fd, run->vp8.frame); + trace_v4l2_ctrl_vp8_entropy(fh->tgid, fh->fd, run->vp8.frame); break; case VISL_CODEC_VP9: - trace_v4l2_ctrl_vp9_frame(run->vp9.frame); - trace_v4l2_ctrl_vp9_compressed_hdr(run->vp9.probs); - trace_v4l2_ctrl_vp9_compressed_coeff(run->vp9.probs); - trace_v4l2_vp9_mv_probs(&run->vp9.probs->mv); + trace_v4l2_ctrl_vp9_frame(fh->tgid, fh->fd, run->vp9.frame); + trace_v4l2_ctrl_vp9_compressed_hdr(fh->tgid, fh->fd, run->vp9.probs); + trace_v4l2_ctrl_vp9_compressed_coeff(fh->tgid, fh->fd, run->vp9.probs); + trace_v4l2_vp9_mv_probs(fh->tgid, fh->fd, &run->vp9.probs->mv); break; case VISL_CODEC_H264: - trace_v4l2_ctrl_h264_sps(run->h264.sps); - trace_v4l2_ctrl_h264_pps(run->h264.pps); - trace_v4l2_ctrl_h264_scaling_matrix(run->h264.sm); - trace_v4l2_ctrl_h264_slice_params(run->h264.spram); + trace_v4l2_ctrl_h264_sps(fh->tgid, fh->fd, run->h264.sps); + trace_v4l2_ctrl_h264_pps(fh->tgid, fh->fd, run->h264.pps); + trace_v4l2_ctrl_h264_scaling_matrix(fh->tgid, fh->fd, run->h264.sm); + trace_v4l2_ctrl_h264_slice_params(fh->tgid, fh->fd, run->h264.spram); =20 for (i =3D 0; i < ARRAY_SIZE(run->h264.spram->ref_pic_list0); i++) - trace_v4l2_h264_ref_pic_list0(&run->h264.spram->ref_pic_list0[i], i); + trace_v4l2_h264_ref_pic_list0(fh->tgid, fh->fd, + &run->h264.spram->ref_pic_list0[i], i); for (i =3D 0; i < ARRAY_SIZE(run->h264.spram->ref_pic_list0); i++) - trace_v4l2_h264_ref_pic_list1(&run->h264.spram->ref_pic_list1[i], i); + trace_v4l2_h264_ref_pic_list1(fh->tgid, fh->fd, + &run->h264.spram->ref_pic_list1[i], i); =20 - trace_v4l2_ctrl_h264_decode_params(run->h264.dpram); + trace_v4l2_ctrl_h264_decode_params(fh->tgid, fh->fd, run->h264.dpram); =20 for (i =3D 0; i < ARRAY_SIZE(run->h264.dpram->dpb); i++) - trace_v4l2_h264_dpb_entry(&run->h264.dpram->dpb[i], i); + trace_v4l2_h264_dpb_entry(fh->tgid, fh->fd, &run->h264.dpram->dpb[i], i= ); =20 - trace_v4l2_ctrl_h264_pred_weights(run->h264.pwht); + trace_v4l2_ctrl_h264_pred_weights(fh->tgid, fh->fd, run->h264.pwht); break; case VISL_CODEC_HEVC: - trace_v4l2_ctrl_hevc_sps(run->hevc.sps); - trace_v4l2_ctrl_hevc_pps(run->hevc.pps); - trace_v4l2_ctrl_hevc_slice_params(run->hevc.spram); - trace_v4l2_ctrl_hevc_scaling_matrix(run->hevc.sm); - trace_v4l2_ctrl_hevc_decode_params(run->hevc.dpram); + trace_v4l2_ctrl_hevc_sps(fh->tgid, fh->fd, run->hevc.sps); + trace_v4l2_ctrl_hevc_pps(fh->tgid, fh->fd, run->hevc.pps); + trace_v4l2_ctrl_hevc_slice_params(fh->tgid, fh->fd, run->hevc.spram); + trace_v4l2_ctrl_hevc_scaling_matrix(fh->tgid, fh->fd, run->hevc.sm); + trace_v4l2_ctrl_hevc_decode_params(fh->tgid, fh->fd, run->hevc.dpram); =20 for (i =3D 0; i < ARRAY_SIZE(run->hevc.dpram->dpb); i++) - trace_v4l2_hevc_dpb_entry(&run->hevc.dpram->dpb[i]); + trace_v4l2_hevc_dpb_entry(fh->tgid, fh->fd, &run->hevc.dpram->dpb[i]); =20 - trace_v4l2_hevc_pred_weight_table(&run->hevc.spram->pred_weight_table); - trace_v4l2_ctrl_hevc_ext_sps_lt_rps(run->hevc.rps_lt); - trace_v4l2_ctrl_hevc_ext_sps_st_rps(run->hevc.rps_st); =20 + trace_v4l2_hevc_pred_weight_table(fh->tgid, fh->fd, + &run->hevc.spram->pred_weight_table); + trace_v4l2_ctrl_hevc_ext_sps_lt_rps(fh->tgid, fh->fd, run->hevc.rps_lt); + trace_v4l2_ctrl_hevc_ext_sps_st_rps(fh->tgid, fh->fd, run->hevc.rps_st); break; case VISL_CODEC_AV1: - trace_v4l2_ctrl_av1_sequence(run->av1.seq); - trace_v4l2_ctrl_av1_frame(run->av1.frame); - trace_v4l2_ctrl_av1_film_grain(run->av1.grain); - trace_v4l2_ctrl_av1_tile_group_entry(run->av1.tge); + trace_v4l2_ctrl_av1_sequence(fh->tgid, fh->fd, run->av1.seq); + trace_v4l2_ctrl_av1_frame(fh->tgid, fh->fd, run->av1.frame); + trace_v4l2_ctrl_av1_film_grain(fh->tgid, fh->fd, run->av1.grain); + trace_v4l2_ctrl_av1_tile_group_entry(fh->tgid, fh->fd, run->av1.tge); break; } } diff --git a/include/trace/events/v4l2_requests.h b/include/trace/events/v4= l2_requests.h index 34f4a74df5ea..ab6718f40e28 100644 --- a/include/trace/events/v4l2_requests.h +++ b/include/trace/events/v4l2_requests.h @@ -10,12 +10,18 @@ =20 /* 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 =3D *s;), - TP_printk("flags =3D %s, seq_profile =3D %u, order_hint_bits =3D %u, bit_= depth =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_av1_sequence *s), + TP_ARGS(tgid, fd, s), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_av1_sequence, s)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->s =3D *s;), + TP_printk("tgid =3D %u, fd =3D %u, " + "flags =3D %s, seq_profile =3D %u, order_hint_bits =3D %u, bit_depth = =3D %u, " "max_frame_width_minus_1 =3D %u, max_frame_height_minus_1 =3D %u", + __entry->tgid, __entry->fd, __print_flags(__entry->s.flags, "|", {V4L2_AV1_SEQUENCE_FLAG_STILL_PICTURE, "STILL_PICTURE"}, {V4L2_AV1_SEQUENCE_FLAG_USE_128X128_SUPERBLOCK, "USE_128X128_SUPERBLOC= K"}, @@ -46,11 +52,17 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_av1_seq_tmpl, ); =20 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 =3D *t;), - TP_printk("tile_offset =3D %u, tile_size =3D %u, tile_row =3D %u, tile_co= l =3D %u", + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_av1_tile_group_entry *t= ), + TP_ARGS(tgid, fd, t), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_av1_tile_group_entry, t)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->t =3D *t;), + TP_printk("tgid =3D %u, fd =3D %u, " + "tile_offset =3D %u, tile_size =3D %u, tile_row =3D %u, tile_col =3D %= u", + __entry->tgid, __entry->fd, __entry->t.tile_offset, __entry->t.tile_size, __entry->t.tile_row, @@ -59,11 +71,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_av1_tge_tmpl, ); =20 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 =3D *f;), - TP_printk("tile_info.flags =3D %s, tile_info.context_update_tile_id =3D %= u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_av1_frame *f), + TP_ARGS(tgid, fd, f), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_av1_frame, f)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->f =3D *f;), + TP_printk("tgid =3D %u, fd =3D %u, " + "tile_info.flags =3D %s, tile_info.context_update_tile_id =3D %u, " "tile_info.tile_cols =3D %u, tile_info.tile_rows =3D %u, " "tile_info.mi_col_starts =3D %s, tile_info.mi_row_starts =3D %s, " "tile_info.width_in_sbs_minus_1 =3D %s, tile_info.height_in_sbs_minus_= 1 =3D %s, " @@ -87,6 +104,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_av1_frame_tmpl, "render_width_minus_1 =3D %u, render_height_minus_1 =3D %u, current_fr= ame_id =3D %u, " "buffer_removal_time =3D %s, order_hints =3D %s, reference_frame_ts = =3D %s, " "ref_frame_idx =3D %s, refresh_frame_flags =3D %u", + __entry->tgid, __entry->fd, __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, @@ -222,11 +240,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_av1_frame_tmpl, =20 =20 DECLARE_EVENT_CLASS(v4l2_ctrl_av1_film_grain_tmpl, - TP_PROTO(const struct v4l2_ctrl_av1_film_grain *f), - TP_ARGS(f), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_av1_film_grain, f)), - TP_fast_assign(__entry->f =3D *f;), - TP_printk("flags =3D %s, cr_mult =3D %u, grain_seed =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_av1_film_grain *f), + TP_ARGS(tgid, fd, f), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_av1_film_grain, f)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->f =3D *f;), + TP_printk("tgid =3D %u, fd =3D %u, " + "flags =3D %s, cr_mult =3D %u, grain_seed =3D %u, " "film_grain_params_ref_idx =3D %u, num_y_points =3D %u, point_y_value = =3D %s, " "point_y_scaling =3D %s, num_cb_points =3D %u, point_cb_value =3D %s, " "point_cb_scaling =3D %s, num_cr_points =3D %u, point_cr_value =3D %s,= " @@ -235,6 +258,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_av1_film_grain_tmpl, "ar_coeffs_cr_plus_128 =3D %s, ar_coeff_shift_minus_6 =3D %u, " "grain_scale_shift =3D %u, cb_mult =3D %u, cb_luma_mult =3D %u, cr_lum= a_mult =3D %u, " "cb_offset =3D %u, cr_offset =3D %u", + __entry->tgid, __entry->fd, __print_flags(__entry->f.flags, "|", {V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN, "APPLY_GRAIN"}, {V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN, "UPDATE_GRAIN"}, @@ -287,31 +311,32 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_av1_film_grain_tmpl, ) =20 DEFINE_EVENT(v4l2_ctrl_av1_seq_tmpl, v4l2_ctrl_av1_sequence, - TP_PROTO(const struct v4l2_ctrl_av1_sequence *s), - TP_ARGS(s) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_av1_sequence *s), + TP_ARGS(tgid, fd, s) ); =20 DEFINE_EVENT(v4l2_ctrl_av1_frame_tmpl, v4l2_ctrl_av1_frame, - TP_PROTO(const struct v4l2_ctrl_av1_frame *f), - TP_ARGS(f) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_av1_frame *f), + TP_ARGS(tgid, fd, f) ); =20 DEFINE_EVENT(v4l2_ctrl_av1_tge_tmpl, v4l2_ctrl_av1_tile_group_entry, - TP_PROTO(const struct v4l2_ctrl_av1_tile_group_entry *t), - TP_ARGS(t) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_av1_tile_group_entry *t= ), + TP_ARGS(tgid, fd, t) ); =20 DEFINE_EVENT(v4l2_ctrl_av1_film_grain_tmpl, v4l2_ctrl_av1_film_grain, - TP_PROTO(const struct v4l2_ctrl_av1_film_grain *f), - TP_ARGS(f) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_av1_film_grain *f), + TP_ARGS(tgid, fd, f) ); =20 /* FWHT controls */ =20 DECLARE_EVENT_CLASS(v4l2_ctrl_fwht_params_tmpl, - TP_PROTO(const struct v4l2_ctrl_fwht_params *p), - TP_ARGS(p), - TP_STRUCT__entry( + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_fwht_params *p), + TP_ARGS(tgid, fd, p), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) __field(u64, backward_ref_ts) __field(u32, version) __field(u32, width) @@ -322,7 +347,8 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_fwht_params_tmpl, __field(u32, ycbcr_enc) __field(u32, quantization) ), - TP_fast_assign( + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; __entry->backward_ref_ts =3D p->backward_ref_ts; __entry->version =3D p->version; __entry->width =3D p->width; @@ -333,7 +359,8 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_fwht_params_tmpl, __entry->ycbcr_enc =3D p->ycbcr_enc; __entry->quantization =3D p->quantization; ), - TP_printk("backward_ref_ts =3D %llu, " + TP_printk("tgid =3D %u, fd =3D %u, " + "backward_ref_ts =3D %llu, " "version =3D %u, " "width =3D %u, " "height =3D %u, " @@ -342,6 +369,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_fwht_params_tmpl, "xfer_func =3D %u, " "ycbcr_enc =3D %u, " "quantization =3D %u", + __entry->tgid, __entry->fd, __entry->backward_ref_ts, __entry->version, __entry->width, __entry->h= eight, __print_flags(__entry->flags, "|", {V4L2_FWHT_FL_IS_INTERLACED, "IS_INTERLACED"}, @@ -361,18 +389,23 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_fwht_params_tmpl, ); =20 DEFINE_EVENT(v4l2_ctrl_fwht_params_tmpl, v4l2_ctrl_fwht_params, - TP_PROTO(const struct v4l2_ctrl_fwht_params *p), - TP_ARGS(p) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_fwht_params *p), + TP_ARGS(tgid, fd, p) ); =20 /* H264 controls */ =20 DECLARE_EVENT_CLASS(v4l2_ctrl_h264_sps_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_sps *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_sps, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("profile_idc =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_sps *s), + TP_ARGS(tgid, fd, s), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_h264_sps, s)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->s =3D *s), + TP_printk("tgid =3D %u, fd =3D %u, " + "profile_idc =3D %u, " "constraint_set_flags =3D %s, " "level_idc =3D %u, " "seq_parameter_set_id =3D %u, " @@ -390,6 +423,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_sps_tmpl, "pic_width_in_mbs_minus1 =3D %u, " "pic_height_in_map_units_minus1 =3D %u, " "flags =3D %s", + __entry->tgid, __entry->fd, __entry->s.profile_idc, __print_flags(__entry->s.constraint_set_flags, "|", {V4L2_H264_SPS_CONSTRAINT_SET0_FLAG, "CONSTRAINT_SET0_FLAG"}, @@ -427,11 +461,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_sps_tmpl, ); =20 DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pps_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_pps *p), - TP_ARGS(p), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pps, p)), - TP_fast_assign(__entry->p =3D *p), - TP_printk("pic_parameter_set_id =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_pps *p), + TP_ARGS(tgid, fd, p), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_h264_pps, p)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->p =3D *p), + TP_printk("tgid =3D %u, fd =3D %u, " + "pic_parameter_set_id =3D %u, " "seq_parameter_set_id =3D %u, " "num_slice_groups_minus1 =3D %u, " "num_ref_idx_l0_default_active_minus1 =3D %u, " @@ -442,6 +481,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pps_tmpl, "chroma_qp_index_offset =3D %d, " "second_chroma_qp_index_offset =3D %d, " "flags =3D %s", + __entry->tgid, __entry->fd, __entry->p.pic_parameter_set_id, __entry->p.seq_parameter_set_id, __entry->p.num_slice_groups_minus1, @@ -465,11 +505,17 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pps_tmpl, ); =20 DECLARE_EVENT_CLASS(v4l2_ctrl_h264_scaling_matrix_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_scaling_matrix *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_scaling_matrix, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("scaling_list_4x4 =3D {%s}, scaling_list_8x8 =3D {%s}", + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_scaling_matrix *s), + TP_ARGS(tgid, fd, s), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_h264_scaling_matrix, s)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->s =3D *s), + TP_printk("tgid =3D %u, fd =3D %u, " + "scaling_list_4x4 =3D {%s}, scaling_list_8x8 =3D {%s}", + __entry->tgid, __entry->fd, __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, __entry->s.scaling_list_4x4, sizeof(__entry->s.scaling_list_4x4), @@ -482,11 +528,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_scaling_matrix_tmp= l, ); =20 DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pred_weights_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_pred_weights *p), - TP_ARGS(p), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pred_weights, p)), - TP_fast_assign(__entry->p =3D *p), - TP_printk("luma_log2_weight_denom =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_pred_weights *p), + TP_ARGS(tgid, fd, p), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_h264_pred_weights, p)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->p =3D *p), + TP_printk("tgid =3D %u, fd =3D %u, " + "luma_log2_weight_denom =3D %u, " "chroma_log2_weight_denom =3D %u, " "weight_factor[0].luma_weight =3D %s, " "weight_factor[0].luma_offset =3D %s, " @@ -496,6 +547,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pred_weights_tmpl, "weight_factor[1].luma_offset =3D %s, " "weight_factor[1].chroma_weight =3D {%s}, " "weight_factor[1].chroma_offset =3D {%s}", + __entry->tgid, __entry->fd, __entry->p.luma_log2_weight_denom, __entry->p.chroma_log2_weight_denom, __print_array(__entry->p.weight_factors[0].luma_weight, @@ -530,11 +582,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pred_weights_tmpl, ); =20 DECLARE_EVENT_CLASS(v4l2_ctrl_h264_slice_params_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_slice_params *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_slice_params, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("header_bit_size =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_slice_params *s), + TP_ARGS(tgid, fd, s), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_h264_slice_params, s)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->s =3D *s), + TP_printk("tgid =3D %u, fd =3D %u, " + "header_bit_size =3D %u, " "first_mb_in_slice =3D %u, " "slice_type =3D %s, " "colour_plane_id =3D %u, " @@ -548,6 +605,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_slice_params_tmpl, "num_ref_idx_l0_active_minus1 =3D %u, " "num_ref_idx_l1_active_minus1 =3D %u, " "flags =3D %s", + __entry->tgid, __entry->fd, __entry->s.header_bit_size, __entry->s.first_mb_in_slice, __print_symbolic(__entry->s.slice_type, @@ -573,12 +631,18 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_slice_params_tmpl, ); =20 DECLARE_EVENT_CLASS(v4l2_h264_reference_tmpl, - TP_PROTO(const struct v4l2_h264_reference *r, int i), - TP_ARGS(r, i), - TP_STRUCT__entry(__field_struct(struct v4l2_h264_reference, r) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_h264_reference *r, int i), + TP_ARGS(tgid, fd, r, i), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_h264_reference, r) __field(int, i)), - TP_fast_assign(__entry->r =3D *r; __entry->i =3D i;), - TP_printk("[%d]: fields =3D %s, index =3D %u", + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->r =3D *r; __entry->i =3D i;), + TP_printk("tgid =3D %u, fd =3D %u, " + "[%d]: fields =3D %s, index =3D %u", + __entry->tgid, __entry->fd, __entry->i, __print_flags(__entry->r.fields, "|", {V4L2_H264_TOP_FIELD_REF, "TOP_FIELD_REF"}, @@ -589,11 +653,16 @@ DECLARE_EVENT_CLASS(v4l2_h264_reference_tmpl, ); =20 DECLARE_EVENT_CLASS(v4l2_ctrl_h264_decode_params_tmpl, - TP_PROTO(const struct v4l2_ctrl_h264_decode_params *d), - TP_ARGS(d), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_decode_params, d)), - TP_fast_assign(__entry->d =3D *d), - TP_printk("nal_ref_idc =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_decode_params *d), + TP_ARGS(tgid, fd, d), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_h264_decode_params, d)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->d =3D *d), + TP_printk("tgid =3D %u, fd =3D %u, " + "nal_ref_idc =3D %u, " "frame_num =3D %u, " "top_field_order_cnt =3D %d, " "bottom_field_order_cnt =3D %d, " @@ -606,6 +675,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_decode_params_tmpl, "pic_order_cnt_bit_size =3D %u, " "slice_group_change_cycle =3D %u, " "flags =3D %s", + __entry->tgid, __entry->fd, __entry->d.nal_ref_idc, __entry->d.frame_num, __entry->d.top_field_order_cnt, @@ -628,13 +698,19 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_h264_decode_params_tmpl, ); =20 DECLARE_EVENT_CLASS(v4l2_h264_dpb_entry_tmpl, - TP_PROTO(const struct v4l2_h264_dpb_entry *e, int i), - TP_ARGS(e, i), - TP_STRUCT__entry(__field_struct(struct v4l2_h264_dpb_entry, e) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_h264_dpb_entry *e, int i), + TP_ARGS(tgid, fd, e, i), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_h264_dpb_entry, e) __field(int, i)), - TP_fast_assign(__entry->e =3D *e; __entry->i =3D i;), - TP_printk("[%d]: reference_ts =3D %llu, pic_num =3D %u, frame_num =3D %u,= fields =3D %s " + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->e =3D *e; __entry->i =3D i;), + TP_printk("tgid =3D %u, fd =3D %u, " + "[%d]: reference_ts =3D %llu, pic_num =3D %u, frame_num =3D %u, fields= =3D %s, " "top_field_order_cnt =3D %d, bottom_field_order_cnt =3D %d, flags =3D = %s", + __entry->tgid, __entry->fd, __entry->i, __entry->e.reference_ts, __entry->e.pic_num, @@ -654,58 +730,63 @@ DECLARE_EVENT_CLASS(v4l2_h264_dpb_entry_tmpl, ); =20 DEFINE_EVENT(v4l2_ctrl_h264_sps_tmpl, v4l2_ctrl_h264_sps, - TP_PROTO(const struct v4l2_ctrl_h264_sps *s), - TP_ARGS(s) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_sps *s), + TP_ARGS(tgid, fd, s) ); =20 DEFINE_EVENT(v4l2_ctrl_h264_pps_tmpl, v4l2_ctrl_h264_pps, - TP_PROTO(const struct v4l2_ctrl_h264_pps *p), - TP_ARGS(p) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_pps *p), + TP_ARGS(tgid, fd, p) ); =20 DEFINE_EVENT(v4l2_ctrl_h264_scaling_matrix_tmpl, v4l2_ctrl_h264_scaling_ma= trix, - TP_PROTO(const struct v4l2_ctrl_h264_scaling_matrix *s), - TP_ARGS(s) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_scaling_matrix *s), + TP_ARGS(tgid, fd, s) ); =20 DEFINE_EVENT(v4l2_ctrl_h264_pred_weights_tmpl, v4l2_ctrl_h264_pred_weights, - TP_PROTO(const struct v4l2_ctrl_h264_pred_weights *p), - TP_ARGS(p) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_pred_weights *p), + TP_ARGS(tgid, fd, p) ); =20 DEFINE_EVENT(v4l2_ctrl_h264_slice_params_tmpl, v4l2_ctrl_h264_slice_params, - TP_PROTO(const struct v4l2_ctrl_h264_slice_params *s), - TP_ARGS(s) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_slice_params *s), + TP_ARGS(tgid, fd, s) ); =20 DEFINE_EVENT(v4l2_h264_reference_tmpl, v4l2_h264_ref_pic_list0, - TP_PROTO(const struct v4l2_h264_reference *r, int i), - TP_ARGS(r, i) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_h264_reference *r, int i), + TP_ARGS(tgid, fd, r, i) ); =20 DEFINE_EVENT(v4l2_h264_reference_tmpl, v4l2_h264_ref_pic_list1, - TP_PROTO(const struct v4l2_h264_reference *r, int i), - TP_ARGS(r, i) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_h264_reference *r, int i), + TP_ARGS(tgid, fd, r, i) ); =20 DEFINE_EVENT(v4l2_ctrl_h264_decode_params_tmpl, v4l2_ctrl_h264_decode_para= ms, - TP_PROTO(const struct v4l2_ctrl_h264_decode_params *d), - TP_ARGS(d) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_h264_decode_params *d), + TP_ARGS(tgid, fd, d) ); =20 DEFINE_EVENT(v4l2_h264_dpb_entry_tmpl, v4l2_h264_dpb_entry, - TP_PROTO(const struct v4l2_h264_dpb_entry *e, int i), - TP_ARGS(e, i) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_h264_dpb_entry *e, int i), + TP_ARGS(tgid, fd, e, i) ); =20 /* HEVC controls */ =20 DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_sps_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_sps *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_sps, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("video_parameter_set_id =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_sps *s), + TP_ARGS(tgid, fd, s), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_hevc_sps, s)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->s =3D *s), + TP_printk("tgid =3D %u, fd =3D %u, " + "video_parameter_set_id =3D %u, " "seq_parameter_set_id =3D %u, " "pic_width_in_luma_samples =3D %u, " "pic_height_in_luma_samples =3D %u, " @@ -730,6 +811,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_sps_tmpl, "chroma_format_idc =3D %u, " "sps_max_sub_layers_minus1 =3D %u, " "flags =3D %s", + __entry->tgid, __entry->fd, __entry->s.video_parameter_set_id, __entry->s.seq_parameter_set_id, __entry->s.pic_width_in_luma_samples, @@ -770,11 +852,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_sps_tmpl, =20 =20 DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_pps_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_pps *p), - TP_ARGS(p), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_pps, p)), - TP_fast_assign(__entry->p =3D *p), - TP_printk("pic_parameter_set_id =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_pps *p), + TP_ARGS(tgid, fd, p), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_hevc_pps, p)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->p =3D *p), + TP_printk("tgid =3D %u, fd =3D %u, " + "pic_parameter_set_id =3D %u, " "num_extra_slice_header_bits =3D %u, " "num_ref_idx_l0_default_active_minus1 =3D %u, " "num_ref_idx_l1_default_active_minus1 =3D %u, " @@ -790,6 +877,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_pps_tmpl, "pps_tc_offset_div2 =3D %d, " "log2_parallel_merge_level_minus2 =3D %u, " "flags =3D %s", + __entry->tgid, __entry->fd, __entry->p.pic_parameter_set_id, __entry->p.num_extra_slice_header_bits, __entry->p.num_ref_idx_l0_default_active_minus1, @@ -837,11 +925,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_pps_tmpl, =20 =20 DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_slice_params_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_slice_params *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_slice_params, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("bit_size =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_slice_params *s), + TP_ARGS(tgid, fd, s), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_hevc_slice_params, s)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->s =3D *s), + TP_printk("tgid =3D %u, fd =3D %u, " + "bit_size =3D %u, " "data_byte_offset =3D %u, " "num_entry_point_offsets =3D %u, " "nal_unit_type =3D %u, " @@ -868,6 +961,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_slice_params_tmpl, "short_term_ref_pic_set_size =3D %u, " "long_term_ref_pic_set_size =3D %u, " "flags =3D %s", + __entry->tgid, __entry->fd, __entry->s.bit_size, __entry->s.data_byte_offset, __entry->s.num_entry_point_offsets, @@ -914,11 +1008,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_slice_params_tmpl, ); =20 DECLARE_EVENT_CLASS(v4l2_hevc_pred_weight_table_tmpl, - TP_PROTO(const struct v4l2_hevc_pred_weight_table *p), - TP_ARGS(p), - TP_STRUCT__entry(__field_struct(struct v4l2_hevc_pred_weight_table, p)), - TP_fast_assign(__entry->p =3D *p), - TP_printk("delta_luma_weight_l0 =3D %s, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_hevc_pred_weight_table *p), + TP_ARGS(tgid, fd, p), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_hevc_pred_weight_table, p)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->p =3D *p), + TP_printk("tgid =3D %u, fd =3D %u, " + "delta_luma_weight_l0 =3D %s, " "luma_offset_l0 =3D %s, " "delta_chroma_weight_l0 =3D {%s}, " "chroma_offset_l0 =3D {%s}, " @@ -928,6 +1027,7 @@ DECLARE_EVENT_CLASS(v4l2_hevc_pred_weight_table_tmpl, "chroma_offset_l1 =3D {%s}, " "luma_log2_weight_denom =3D %d, " "delta_chroma_log2_weight_denom =3D %d", + __entry->tgid, __entry->fd, __print_array(__entry->p.delta_luma_weight_l0, ARRAY_SIZE(__entry->p.delta_luma_weight_l0), sizeof(__entry->p.delta_luma_weight_l0[0])), @@ -962,16 +1062,22 @@ DECLARE_EVENT_CLASS(v4l2_hevc_pred_weight_table_tmpl, )) =20 DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_scaling_matrix_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_scaling_matrix *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_scaling_matrix, s)), - TP_fast_assign(__entry->s =3D *s), - TP_printk("scaling_list_4x4 =3D {%s}, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_scaling_matrix *s), + TP_ARGS(tgid, fd, s), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_hevc_scaling_matrix, s)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->s =3D *s), + TP_printk("tgid =3D %u, fd =3D %u, " + "scaling_list_4x4 =3D {%s}, " "scaling_list_8x8 =3D {%s}, " "scaling_list_16x16 =3D {%s}, " "scaling_list_32x32 =3D {%s}, " "scaling_list_dc_coef_16x16 =3D %s, " "scaling_list_dc_coef_32x32 =3D %s", + __entry->tgid, __entry->fd, __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, __entry->s.scaling_list_4x4, sizeof(__entry->s.scaling_list_4x4), @@ -997,11 +1103,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_scaling_matrix_tm= pl, )) =20 DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_decode_params_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_decode_params *d), - TP_ARGS(d), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_decode_params, d)), - TP_fast_assign(__entry->d =3D *d), - TP_printk("pic_order_cnt_val =3D %d, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_decode_params *d), + TP_ARGS(tgid, fd, d), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_hevc_decode_params, d)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->d =3D *d), + TP_printk("tgid =3D %u, fd =3D %u, " + "pic_order_cnt_val =3D %d, " "short_term_ref_pic_set_size =3D %u, " "long_term_ref_pic_set_size =3D %u, " "num_active_dpb_entries =3D %u, " @@ -1012,6 +1123,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_decode_params_tmpl, "poc_st_curr_after =3D %s, " "poc_lt_curr =3D %s, " "flags =3D %s", + __entry->tgid, __entry->fd, __entry->d.pic_order_cnt_val, __entry->d.short_term_ref_pic_set_size, __entry->d.long_term_ref_pic_set_size, @@ -1036,12 +1148,18 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_decode_params_tm= pl, ); =20 DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_lt_rps_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt), - TP_ARGS(lt), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_lt_rps, lt)= ), - TP_fast_assign(__entry->lt =3D *lt), - TP_printk("flags =3D %s, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt= ), + TP_ARGS(tgid, fd, lt), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_hevc_ext_sps_lt_rps, lt)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->lt =3D *lt), + TP_printk("tgid =3D %u, fd =3D %u, " + "flags =3D %s, " "lt_ref_pic_poc_lsb_sps =3D %x", + __entry->tgid, __entry->fd, __print_flags(__entry->lt.flags, "|", {V4L2_HEVC_EXT_SPS_LT_RPS_FLAG_USED_LT, "USED_LT"} ), @@ -1050,11 +1168,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_lt_rps_t= mpl, ); =20 DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_st_rps_tmpl, - TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_st_rps *st), - TP_ARGS(st), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_st_rps, st)= ), - TP_fast_assign(__entry->st =3D *st), - TP_printk("flags =3D %s, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_ext_sps_st_rps *st= ), + TP_ARGS(tgid, fd, st), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_hevc_ext_sps_st_rps, st)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->st =3D *st), + TP_printk("tgid =3D %u, fd =3D %u, " + "flags =3D %s, " "delta_idx_minus1 =3D %u, " "delta_rps_sign =3D %u, " "abs_delta_rps_minus1 =3D %u, " @@ -1064,6 +1187,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_st_rps_tmp= l, "use_delta_flag =3D %08x, " "delta_poc_s0_minus1 =3D %s, " "delta_poc_s1_minus1 =3D %s", + __entry->tgid, __entry->fd, __print_flags(__entry->st.flags, "|", {V4L2_HEVC_EXT_SPS_ST_RPS_FLAG_INTER_REF_PIC_SET_PRED, "INTER_REF_PIC_= SET_PRED"} ), @@ -1084,14 +1208,20 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_st_rps_t= mpl, ); =20 DECLARE_EVENT_CLASS(v4l2_hevc_dpb_entry_tmpl, - TP_PROTO(const struct v4l2_hevc_dpb_entry *e), - TP_ARGS(e), - TP_STRUCT__entry(__field_struct(struct v4l2_hevc_dpb_entry, e)), - TP_fast_assign(__entry->e =3D *e), - TP_printk("timestamp =3D %llu, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_hevc_dpb_entry *e), + TP_ARGS(tgid, fd, e), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_hevc_dpb_entry, e)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->e =3D *e), + TP_printk("tgid =3D %u, fd =3D %u, " + "timestamp =3D %llu, " "flags =3D %s, " "field_pic =3D %u, " "pic_order_cnt_val =3D %d", + __entry->tgid, __entry->fd, __entry->e.timestamp, __print_flags(__entry->e.flags, "|", {V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE, "LONG_TERM_REFERENCE"} @@ -1101,59 +1231,65 @@ DECLARE_EVENT_CLASS(v4l2_hevc_dpb_entry_tmpl, )) =20 DEFINE_EVENT(v4l2_ctrl_hevc_sps_tmpl, v4l2_ctrl_hevc_sps, - TP_PROTO(const struct v4l2_ctrl_hevc_sps *s), - TP_ARGS(s) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_sps *s), + TP_ARGS(tgid, fd, s) ); =20 DEFINE_EVENT(v4l2_ctrl_hevc_pps_tmpl, v4l2_ctrl_hevc_pps, - TP_PROTO(const struct v4l2_ctrl_hevc_pps *p), - TP_ARGS(p) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_pps *p), + TP_ARGS(tgid, fd, p) ); =20 DEFINE_EVENT(v4l2_ctrl_hevc_slice_params_tmpl, v4l2_ctrl_hevc_slice_params, - TP_PROTO(const struct v4l2_ctrl_hevc_slice_params *s), - TP_ARGS(s) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_slice_params *s), + TP_ARGS(tgid, fd, s) ); =20 DEFINE_EVENT(v4l2_hevc_pred_weight_table_tmpl, v4l2_hevc_pred_weight_table, - TP_PROTO(const struct v4l2_hevc_pred_weight_table *p), - TP_ARGS(p) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_hevc_pred_weight_table *p), + TP_ARGS(tgid, fd, p) ); =20 DEFINE_EVENT(v4l2_ctrl_hevc_scaling_matrix_tmpl, v4l2_ctrl_hevc_scaling_ma= trix, - TP_PROTO(const struct v4l2_ctrl_hevc_scaling_matrix *s), - TP_ARGS(s) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_scaling_matrix *s), + TP_ARGS(tgid, fd, s) ); =20 DEFINE_EVENT(v4l2_ctrl_hevc_decode_params_tmpl, v4l2_ctrl_hevc_decode_para= ms, - TP_PROTO(const struct v4l2_ctrl_hevc_decode_params *d), - TP_ARGS(d) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_decode_params *d), + TP_ARGS(tgid, fd, d) ); =20 DEFINE_EVENT(v4l2_ctrl_hevc_ext_sps_lt_rps_tmpl, v4l2_ctrl_hevc_ext_sps_lt= _rps, - TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt), - TP_ARGS(lt) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt= ), + TP_ARGS(tgid, fd, lt) ); =20 DEFINE_EVENT(v4l2_ctrl_hevc_ext_sps_st_rps_tmpl, v4l2_ctrl_hevc_ext_sps_st= _rps, - TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_st_rps *st), - TP_ARGS(st) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_hevc_ext_sps_st_rps *st= ), + TP_ARGS(tgid, fd, st) ); =20 DEFINE_EVENT(v4l2_hevc_dpb_entry_tmpl, v4l2_hevc_dpb_entry, - TP_PROTO(const struct v4l2_hevc_dpb_entry *e), - TP_ARGS(e) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_hevc_dpb_entry *e), + TP_ARGS(tgid, fd, e) ); =20 /* MPEG2 controls */ =20 DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_seq_tmpl, - TP_PROTO(const struct v4l2_ctrl_mpeg2_sequence *s), - TP_ARGS(s), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_sequence, s)), - TP_fast_assign(__entry->s =3D *s;), - TP_printk("horizontal_size =3D %u, vertical_size =3D %u, vbv_buffer_size = =3D %u, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_mpeg2_sequence *s), + TP_ARGS(tgid, fd, s), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_mpeg2_sequence, s)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->s =3D *s;), + TP_printk("tgid =3D %u, fd =3D %u, " + "horizontal_size =3D %u, vertical_size =3D %u, vbv_buffer_size =3D %u,= " "profile_and_level_indication =3D %u, chroma_format =3D %u, flags =3D = %s", + __entry->tgid, __entry->fd, __entry->s.horizontal_size, __entry->s.vertical_size, __entry->s.vbv_buffer_size, @@ -1165,12 +1301,18 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_seq_tmpl, ); =20 DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_pic_tmpl, - TP_PROTO(const struct v4l2_ctrl_mpeg2_picture *p), - TP_ARGS(p), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_picture, p)), - TP_fast_assign(__entry->p =3D *p;), - TP_printk("backward_ref_ts =3D %llu, forward_ref_ts =3D %llu, flags =3D %= s, f_code =3D {%s}, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_mpeg2_picture *p), + TP_ARGS(tgid, fd, p), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_mpeg2_picture, p)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->p =3D *p;), + TP_printk("tgid =3D %u, fd =3D %u, " + "backward_ref_ts =3D %llu, forward_ref_ts =3D %llu, flags =3D %s, f_co= de =3D {%s}, " "picture_coding_type =3D %u, picture_structure =3D %u, intra_dc_precis= ion =3D %u", + __entry->tgid, __entry->fd, __entry->p.backward_ref_ts, __entry->p.forward_ref_ts, __print_flags(__entry->p.flags, "|", @@ -1193,12 +1335,18 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_pic_tmpl, ); =20 DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_quant_tmpl, - TP_PROTO(const struct v4l2_ctrl_mpeg2_quantisation *q), - TP_ARGS(q), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_mpeg2_quantisation, q)), - TP_fast_assign(__entry->q =3D *q;), - TP_printk("intra_quantiser_matrix =3D %s, non_intra_quantiser_matrix =3D = %s, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_mpeg2_quantisation *q), + TP_ARGS(tgid, fd, q), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_mpeg2_quantisation, q)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->q =3D *q;), + TP_printk("tgid =3D %u, fd =3D %u, " + "intra_quantiser_matrix =3D %s, non_intra_quantiser_matrix =3D %s, " "chroma_intra_quantiser_matrix =3D %s, chroma_non_intra_quantiser_matr= ix =3D %s", + __entry->tgid, __entry->fd, __print_array(__entry->q.intra_quantiser_matrix, ARRAY_SIZE(__entry->q.intra_quantiser_matrix), sizeof(__entry->q.intra_quantiser_matrix[0])), @@ -1215,31 +1363,37 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_mpeg2_quant_tmpl, ) =20 DEFINE_EVENT(v4l2_ctrl_mpeg2_seq_tmpl, v4l2_ctrl_mpeg2_sequence, - TP_PROTO(const struct v4l2_ctrl_mpeg2_sequence *s), - TP_ARGS(s) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_mpeg2_sequence *s), + TP_ARGS(tgid, fd, s) ); =20 DEFINE_EVENT(v4l2_ctrl_mpeg2_pic_tmpl, v4l2_ctrl_mpeg2_picture, - TP_PROTO(const struct v4l2_ctrl_mpeg2_picture *p), - TP_ARGS(p) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_mpeg2_picture *p), + TP_ARGS(tgid, fd, p) ); =20 DEFINE_EVENT(v4l2_ctrl_mpeg2_quant_tmpl, v4l2_ctrl_mpeg2_quantisation, - TP_PROTO(const struct v4l2_ctrl_mpeg2_quantisation *q), - TP_ARGS(q) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_mpeg2_quantisation *q), + TP_ARGS(tgid, fd, q) ); =20 /* VP8 controls */ =20 DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_entropy_tmpl, - TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), - TP_ARGS(f), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp8_frame, f)), - TP_fast_assign(__entry->f =3D *f;), - TP_printk("entropy.coeff_probs =3D {%s}, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_vp8_frame *f), + TP_ARGS(tgid, fd, f), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_vp8_frame, f)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->f =3D *f;), + TP_printk("tgid =3D %u, fd =3D %u, " + "entropy.coeff_probs =3D {%s}, " "entropy.y_mode_probs =3D %s, " "entropy.uv_mode_probs =3D %s, " "entropy.mv_probs =3D {%s}", + __entry->tgid, __entry->fd, __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, __entry->f.entropy.coeff_probs, sizeof(__entry->f.entropy.coeff_probs), @@ -1258,11 +1412,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_entropy_tmpl, ) =20 DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_frame_tmpl, - TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), - TP_ARGS(f), - TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_vp8_frame, f)), - TP_fast_assign(__entry->f =3D *f;), - TP_printk("segment.quant_update =3D %s, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_vp8_frame *f), + TP_ARGS(tgid, fd, f), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_vp8_frame, f)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->f =3D *f;), + TP_printk("tgid =3D %u, fd =3D %u, " + "segment.quant_update =3D %s, " "segment.lf_update =3D %s, " "segment.segment_probs =3D %s, " "segment.flags =3D %s, " @@ -1297,6 +1456,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_frame_tmpl, "golden_frame_ts =3D %llu, " "alt_frame_ts =3D %llu, " "flags =3D %s", + __entry->tgid, __entry->fd, __print_array(__entry->f.segment.quant_update, ARRAY_SIZE(__entry->f.segment.quant_update), sizeof(__entry->f.segment.quant_update[0])), @@ -1361,23 +1521,28 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp8_frame_tmpl, ); =20 DEFINE_EVENT(v4l2_ctrl_vp8_frame_tmpl, v4l2_ctrl_vp8_frame, - TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), - TP_ARGS(f) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_vp8_frame *f), + TP_ARGS(tgid, fd, f) ); =20 DEFINE_EVENT(v4l2_ctrl_vp8_entropy_tmpl, v4l2_ctrl_vp8_entropy, - TP_PROTO(const struct v4l2_ctrl_vp8_frame *f), - TP_ARGS(f) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_vp8_frame *f), + TP_ARGS(tgid, fd, f) ); =20 /* VP9 controls */ =20 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 =3D *f;), - TP_printk("lf.ref_deltas =3D %s, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_vp9_frame *f), + TP_ARGS(tgid, fd, f), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_vp9_frame, f)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->f =3D *f;), + TP_printk("tgid =3D %u, fd =3D %u, " + "lf.ref_deltas =3D %s, " "lf.mode_deltas =3D %s, " "lf.level =3D %u, " "lf.sharpness =3D %u, " @@ -1410,6 +1575,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_frame_tmpl, "tile_cols_log2 =3D %u, " "tile_rows_log_2 =3D %u, " "reference_mode =3D %s", + __entry->tgid, __entry->fd, __print_array(__entry->f.lf.ref_deltas, ARRAY_SIZE(__entry->f.lf.ref_deltas), sizeof(__entry->f.lf.ref_deltas[0])), @@ -1490,11 +1656,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_frame_tmpl, ); =20 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 =3D *h;), - TP_printk("tx_mode =3D %s, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_vp9_compressed_hdr *h), + TP_ARGS(tgid, fd, h), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_vp9_compressed_hdr, h)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->h =3D *h;), + TP_printk("tgid =3D %u, fd =3D %u, " + "tx_mode =3D %s, " "tx8 =3D {%s}, " "tx16 =3D {%s}, " "tx32 =3D {%s}, " @@ -1508,6 +1679,7 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_compressed_hdr_tmpl, "y_mode =3D {%s}, " "uv_mode =3D {%s}, " "partition =3D {%s}", + __entry->tgid, __entry->fd, __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"}, @@ -1566,11 +1738,17 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_compressed_hdr_tm= pl, ); =20 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 =3D *h;), - TP_printk("coef =3D {%s}", + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_vp9_compressed_hdr *h), + TP_ARGS(tgid, fd, h), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_ctrl_vp9_compressed_hdr, h)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->h =3D *h;), + TP_printk("tgid =3D %u, fd =3D %u, " + "coef =3D {%s}", + __entry->tgid, __entry->fd, __print_hex_dump("", DUMP_PREFIX_NONE, 32, 1, __entry->h.coef, sizeof(__entry->h.coef), @@ -1579,11 +1757,16 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_vp9_compressed_coef_t= mpl, ); =20 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 =3D *p;), - TP_printk("joint =3D %s, " + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_vp9_mv_probs *p), + TP_ARGS(tgid, fd, p), + TP_STRUCT__entry(__field(u32, tgid) + __field(u32, fd) + __field_struct(struct v4l2_vp9_mv_probs, p)), + TP_fast_assign(__entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->p =3D *p;), + TP_printk("tgid =3D %u, fd =3D %u, " + "joint =3D %s, " "sign =3D %s, " "classes =3D {%s}, " "class0_bit =3D %s, " @@ -1592,6 +1775,7 @@ DECLARE_EVENT_CLASS(v4l2_vp9_mv_probs_tmpl, "fr =3D {%s}, " "class0_hp =3D %s, " "hp =3D %s", + __entry->tgid, __entry->fd, __print_array(__entry->p.joint, ARRAY_SIZE(__entry->p.joint), sizeof(__entry->p.joint[0])), @@ -1627,24 +1811,24 @@ DECLARE_EVENT_CLASS(v4l2_vp9_mv_probs_tmpl, ); =20 DEFINE_EVENT(v4l2_ctrl_vp9_frame_tmpl, v4l2_ctrl_vp9_frame, - TP_PROTO(const struct v4l2_ctrl_vp9_frame *f), - TP_ARGS(f) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_vp9_frame *f), + TP_ARGS(tgid, fd, f) ); =20 DEFINE_EVENT(v4l2_ctrl_vp9_compressed_hdr_tmpl, v4l2_ctrl_vp9_compressed_h= dr, - TP_PROTO(const struct v4l2_ctrl_vp9_compressed_hdr *h), - TP_ARGS(h) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_vp9_compressed_hdr *h), + TP_ARGS(tgid, fd, h) ); =20 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) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_ctrl_vp9_compressed_hdr *h), + TP_ARGS(tgid, fd, h) ); =20 =20 DEFINE_EVENT(v4l2_vp9_mv_probs_tmpl, v4l2_vp9_mv_probs, - TP_PROTO(const struct v4l2_vp9_mv_probs *p), - TP_ARGS(p) + TP_PROTO(u32 tgid, u32 fd, const struct v4l2_vp9_mv_probs *p), + TP_ARGS(tgid, fd, p) ); =20 #endif /* if !defined(_TRACE_V4L2_REQUESTS_H_) || defined(TRACE_HEADER_MUL= TI_READ) */ --=20 2.53.0 From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 71CC935D5F6; Thu, 12 Feb 2026 16:23:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913435; cv=none; b=ozxg/HX/3vMj+a9ptenKseZEWQJs/j9kvxGHlRMKPn3RgB4z+DCLT/nQhkp76GtIyxJWSeBfyLMrai/xMZ+leHbEIGPQ2bJetrnKL55yO+fBDSBE/IBmkoyTDv51HgazSfRiEOkiY181n9a+Sy4U5iV6CBey+WD65e7I9egvFQw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913435; c=relaxed/simple; bh=fNNQtX28f9GiZ5pxqno8X2PanQOqZ2OXRGQFP7kam4Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FvY3qLhFgLU3X3qH/dpMXhNAr9pjZnPVuJle2Rd9gMc6ZdrvDuZpzlVFyOUAunhsMBoBaV2GxY2wXlIPYAWMelTTPiHtN0mZpaTz9i1ooU4NUqGVkdS/AQXbTVO0IDN8snUtMrJMlmKCyVUeny2sKWE9K/47QrY4VLqYMQq5vHY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=V3WfhW+A; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="V3WfhW+A" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913432; bh=fNNQtX28f9GiZ5pxqno8X2PanQOqZ2OXRGQFP7kam4Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V3WfhW+AEZf863yv6fDQbe/VpV65vnnUbDYtzbynGMT47XIbra3PBoj3Nq7zQv+1I m1HggUmrcthpL9998iNH0Adx0t7dnaeo8jLPWIxAIIxS0DR+VvrdbxKNKDPiUdg3O/ 8lvE9OgXOClvoqLZ22ZsIzmga24Upoew4tTqHajeX/DIumLstt+18HyWvzpcx3o92r OaGxj5685F0ny6egvL232JKQnldUrAYCXGMRhvp4yHtpQMbvfubYEc11h5i+eG0Js8 FB17nS4/z7LVWbWmJC2DuI8ZRnI2rSnGn2Nn8oJ4qdVeL9o6smHJmEkWxua5x6noLl sj9vdxxAFdtzg== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id BFA1C17E0A49; Thu, 12 Feb 2026 17:23:49 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 05/11] media: Add missing types to v4l2_ctrl_ptr Date: Thu, 12 Feb 2026 11:23:22 -0500 Message-ID: <20260212162328.192217-6-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The v4l2_ctrl_ptr union contains pointers for all control types, but v4l2_ctrl_hevc_decode_params and v4l2_ctrl_hevc_scaling_matrix are missing. Add them. Signed-off-by: Detlev Casanova --- include/media/v4l2-ctrls.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/media/v4l2-ctrls.h b/include/media/v4l2-ctrls.h index 327976b14d50..a2b4c96a9a6f 100644 --- a/include/media/v4l2-ctrls.h +++ b/include/media/v4l2-ctrls.h @@ -49,6 +49,8 @@ struct video_device; * @p_hevc_sps: Pointer to an HEVC sequence parameter set structure. * @p_hevc_pps: Pointer to an HEVC picture parameter set structure. * @p_hevc_slice_params: Pointer to an HEVC slice parameters structure. + * @p_hevc_decode_params: Pointer to an HEVC decode parameters structure. + * @p_hevc_scaling_matrix Pointer to an HEVC scaling matrix structure. * @p_hdr10_cll: Pointer to an HDR10 Content Light Level structure. * @p_hdr10_mastering: Pointer to an HDR10 Mastering Display structure. * @p_area: Pointer to an area. @@ -81,6 +83,8 @@ union v4l2_ctrl_ptr { struct v4l2_ctrl_hevc_sps *p_hevc_sps; struct v4l2_ctrl_hevc_pps *p_hevc_pps; struct v4l2_ctrl_hevc_slice_params *p_hevc_slice_params; + struct v4l2_ctrl_hevc_decode_params *p_hevc_decode_params; + struct v4l2_ctrl_hevc_scaling_matrix *p_hevc_scaling_matrix; struct v4l2_ctrl_vp9_compressed_hdr *p_vp9_compressed_hdr_probs; struct v4l2_ctrl_vp9_frame *p_vp9_frame; struct v4l2_ctrl_hdr10_cll_info *p_hdr10_cll; --=20 2.53.0 From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 06163286A8; Thu, 12 Feb 2026 16:23:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913439; cv=none; b=XsP17LL2t1Umu5ChL9OrskH9ssnC7oBNoiPSlV8IWNBHNlniXLUqDKW718ppVdk0F3y3Yg60K0VSnGWCo4/HcHfJlpyMQMu4ElDmwTCkMAXGHTBvw+XkvJmAeh/LhZ9id0O8E6Wm/k1gm6FIZiI93EmrJHNbkbS9+E2mhw5hq40= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913439; c=relaxed/simple; bh=CNPGkgh1aCeZicbL4rsaMSb6kfUJwjblUeoZ09BjmZU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Izjj8pqn55patemVAnL8AqZqhmHOFvBnFaj09AMEFAj8wwGx0vSodw8nQSYEhLX+fiKc3EzUXmNLFK8vutBWsfTsOApAxoXDCvMdDwolgUun1VJM19mP+9O7buS2Knl2zKOKEezPb3L8nxMXu+H4bfRC6+plYYUopkSgF5gISDE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=TiKf1fF3; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="TiKf1fF3" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913436; bh=CNPGkgh1aCeZicbL4rsaMSb6kfUJwjblUeoZ09BjmZU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TiKf1fF3dLt0EX0gPlR/ePU7JPDnOvco6iYuLn0enaPYN1HdYqaZ9v9ntWTt1afBF uc4IbjFkX43yE/146xSYo2ZIUgzkgSsQsgkAm8cEMdJLsRA1aktmHuoolFLbeD2xro M5XwIcJtcQxiakGqJdAuV+/n1pIgbY93XMpx80i2O8pnF0NdJaN5gb2J0dZSugQm5e x+akfJnhpLDwNmwM5q+V38ikt6mcD4sjvrdNXf4LzCZgn5E+UOZ8C0PMg7zrbDkxgm No4Ii9WYdpq596ZYoQCq/lgB3ncu3QD5KlfWYZQjAc6iysA/Pf/ycvwyWtneya2OK0 lKfvOudsGq/WQ== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id 4443D17E1144; Thu, 12 Feb 2026 17:23:53 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 06/11] media: Trace the stateless controls when set in v4l2-ctrls-core.c Date: Thu, 12 Feb 2026 11:23:23 -0500 Message-ID: <20260212162328.192217-7-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Also remove the trace from visl as the generic v4l2-requests traces can now be used instead. It allows all stateless drivers to inherit traceability, with just a small overhead when disabled in userspace. Signed-off-by: Detlev Casanova --- drivers/media/test-drivers/visl/visl-dec.c | 74 ------------- drivers/media/v4l2-core/v4l2-ctrls-api.c | 10 ++ drivers/media/v4l2-core/v4l2-ctrls-core.c | 114 +++++++++++++++++++++ include/media/v4l2-ctrls.h | 15 +++ 4 files changed, 139 insertions(+), 74 deletions(-) diff --git a/drivers/media/test-drivers/visl/visl-dec.c b/drivers/media/tes= t-drivers/visl/visl-dec.c index fc216da17048..9517830fb3e8 100644 --- a/drivers/media/test-drivers/visl/visl-dec.c +++ b/drivers/media/test-drivers/visl/visl-dec.c @@ -12,7 +12,6 @@ #include #include #include -#include =20 #define LAST_BUF_IDX (V4L2_AV1_REF_LAST_FRAME - V4L2_AV1_REF_LAST_FRAME) #define LAST2_BUF_IDX (V4L2_AV1_REF_LAST2_FRAME - V4L2_AV1_REF_LAST_FRAME) @@ -486,78 +485,6 @@ static void visl_tpg_fill(struct visl_ctx *ctx, struct= visl_run *run) } } =20 -static void visl_trace_ctrls(struct visl_ctx *ctx, struct visl_run *run) -{ - int i; - struct v4l2_fh *fh =3D &ctx->fh; - - switch (ctx->current_codec) { - default: - case VISL_CODEC_NONE: - break; - case VISL_CODEC_FWHT: - trace_v4l2_ctrl_fwht_params(fh->tgid, fh->fd, run->fwht.params); - break; - case VISL_CODEC_MPEG2: - trace_v4l2_ctrl_mpeg2_sequence(fh->tgid, fh->fd, run->mpeg2.seq); - trace_v4l2_ctrl_mpeg2_picture(fh->tgid, fh->fd, run->mpeg2.pic); - trace_v4l2_ctrl_mpeg2_quantisation(fh->tgid, fh->fd, run->mpeg2.quant); - break; - case VISL_CODEC_VP8: - trace_v4l2_ctrl_vp8_frame(fh->tgid, fh->fd, run->vp8.frame); - trace_v4l2_ctrl_vp8_entropy(fh->tgid, fh->fd, run->vp8.frame); - break; - case VISL_CODEC_VP9: - trace_v4l2_ctrl_vp9_frame(fh->tgid, fh->fd, run->vp9.frame); - trace_v4l2_ctrl_vp9_compressed_hdr(fh->tgid, fh->fd, run->vp9.probs); - trace_v4l2_ctrl_vp9_compressed_coeff(fh->tgid, fh->fd, run->vp9.probs); - trace_v4l2_vp9_mv_probs(fh->tgid, fh->fd, &run->vp9.probs->mv); - break; - case VISL_CODEC_H264: - trace_v4l2_ctrl_h264_sps(fh->tgid, fh->fd, run->h264.sps); - trace_v4l2_ctrl_h264_pps(fh->tgid, fh->fd, run->h264.pps); - trace_v4l2_ctrl_h264_scaling_matrix(fh->tgid, fh->fd, run->h264.sm); - trace_v4l2_ctrl_h264_slice_params(fh->tgid, fh->fd, run->h264.spram); - - for (i =3D 0; i < ARRAY_SIZE(run->h264.spram->ref_pic_list0); i++) - trace_v4l2_h264_ref_pic_list0(fh->tgid, fh->fd, - &run->h264.spram->ref_pic_list0[i], i); - for (i =3D 0; i < ARRAY_SIZE(run->h264.spram->ref_pic_list0); i++) - trace_v4l2_h264_ref_pic_list1(fh->tgid, fh->fd, - &run->h264.spram->ref_pic_list1[i], i); - - trace_v4l2_ctrl_h264_decode_params(fh->tgid, fh->fd, run->h264.dpram); - - for (i =3D 0; i < ARRAY_SIZE(run->h264.dpram->dpb); i++) - trace_v4l2_h264_dpb_entry(fh->tgid, fh->fd, &run->h264.dpram->dpb[i], i= ); - - trace_v4l2_ctrl_h264_pred_weights(fh->tgid, fh->fd, run->h264.pwht); - break; - case VISL_CODEC_HEVC: - trace_v4l2_ctrl_hevc_sps(fh->tgid, fh->fd, run->hevc.sps); - trace_v4l2_ctrl_hevc_pps(fh->tgid, fh->fd, run->hevc.pps); - trace_v4l2_ctrl_hevc_slice_params(fh->tgid, fh->fd, run->hevc.spram); - trace_v4l2_ctrl_hevc_scaling_matrix(fh->tgid, fh->fd, run->hevc.sm); - trace_v4l2_ctrl_hevc_decode_params(fh->tgid, fh->fd, run->hevc.dpram); - - for (i =3D 0; i < ARRAY_SIZE(run->hevc.dpram->dpb); i++) - trace_v4l2_hevc_dpb_entry(fh->tgid, fh->fd, &run->hevc.dpram->dpb[i]); - - - trace_v4l2_hevc_pred_weight_table(fh->tgid, fh->fd, - &run->hevc.spram->pred_weight_table); - trace_v4l2_ctrl_hevc_ext_sps_lt_rps(fh->tgid, fh->fd, run->hevc.rps_lt); - trace_v4l2_ctrl_hevc_ext_sps_st_rps(fh->tgid, fh->fd, run->hevc.rps_st); - break; - case VISL_CODEC_AV1: - trace_v4l2_ctrl_av1_sequence(fh->tgid, fh->fd, run->av1.seq); - trace_v4l2_ctrl_av1_frame(fh->tgid, fh->fd, run->av1.frame); - trace_v4l2_ctrl_av1_film_grain(fh->tgid, fh->fd, run->av1.grain); - trace_v4l2_ctrl_av1_tile_group_entry(fh->tgid, fh->fd, run->av1.tge); - break; - } -} - void visl_device_run(void *priv) { struct visl_ctx *ctx =3D priv; @@ -634,7 +561,6 @@ void visl_device_run(void *priv) run.dst->sequence, run.dst->vb2_buf.timestamp); =20 visl_tpg_fill(ctx, &run); - visl_trace_ctrls(ctx, &run); =20 if (bitstream_trace_frame_start > -1 && run.dst->sequence >=3D bitstream_trace_frame_start && diff --git a/drivers/media/v4l2-core/v4l2-ctrls-api.c b/drivers/media/v4l2-= core/v4l2-ctrls-api.c index 0078a04c5445..8a814eec7a30 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls-api.c +++ b/drivers/media/v4l2-core/v4l2-ctrls-api.c @@ -524,6 +524,12 @@ int v4l2_g_ext_ctrls(struct v4l2_ctrl_handler *hdl, st= ruct video_device *vdev, } EXPORT_SYMBOL(v4l2_g_ext_ctrls); =20 +static void trace_ext_ctrl(struct v4l2_fh *fh, const struct v4l2_ctrl *ctr= l) +{ + if (ctrl->type_ops->trace) + ctrl->type_ops->trace(fh, ctrl, ctrl->p_cur); +} + /* Validate a new control */ static int validate_new(const struct v4l2_ctrl *ctrl, union v4l2_ctrl_ptr = p_new) { @@ -713,6 +719,10 @@ int try_set_ext_ctrls_common(struct v4l2_fh *fh, idx =3D helpers[idx].next; } while (!ret && idx); } + + if (set) + trace_ext_ctrl(fh, master); + v4l2_ctrl_unlock(master); } =20 diff --git a/drivers/media/v4l2-core/v4l2-ctrls-core.c b/drivers/media/v4l2= -core/v4l2-ctrls-core.c index 79a157975f70..6165e36d8879 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls-core.c +++ b/drivers/media/v4l2-core/v4l2-ctrls-core.c @@ -10,8 +10,11 @@ #include #include #include +#include #include =20 +#include + #include "v4l2-ctrls-priv.h" =20 static const union v4l2_ctrl_ptr ptr_null; @@ -1462,12 +1465,123 @@ int v4l2_ctrl_type_op_validate(const struct v4l2_c= trl *ctrl, } EXPORT_SYMBOL(v4l2_ctrl_type_op_validate); =20 +void v4l2_ctrl_type_op_trace(const struct v4l2_fh *fh, + const struct v4l2_ctrl *ctrl, union v4l2_ctrl_ptr ptr) +{ + int i =3D 0; + + switch ((u32)ctrl->type) { + case V4L2_CTRL_TYPE_FWHT_PARAMS: + trace_v4l2_ctrl_fwht_params(fh->tgid, fh->fd, ptr.p_fwht_params); + break; + case V4L2_CTRL_TYPE_MPEG2_SEQUENCE: + trace_v4l2_ctrl_mpeg2_sequence(fh->tgid, fh->fd, ptr.p_mpeg2_sequence); + break; + case V4L2_CTRL_TYPE_MPEG2_PICTURE: + trace_v4l2_ctrl_mpeg2_picture(fh->tgid, fh->fd, ptr.p_mpeg2_picture); + break; + case V4L2_CTRL_TYPE_MPEG2_QUANTISATION: + trace_v4l2_ctrl_mpeg2_quantisation(fh->tgid, fh->fd, ptr.p_mpeg2_quantis= ation); + break; + case V4L2_CTRL_TYPE_VP8_FRAME: + trace_v4l2_ctrl_vp8_frame(fh->tgid, fh->fd, ptr.p_vp8_frame); + trace_v4l2_ctrl_vp8_entropy(fh->tgid, fh->fd, ptr.p_vp8_frame); + break; + case V4L2_CTRL_TYPE_VP9_FRAME: + trace_v4l2_ctrl_vp9_frame(fh->tgid, fh->fd, ptr.p_vp9_frame); + break; + case V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR: + trace_v4l2_ctrl_vp9_compressed_hdr(fh->tgid, fh->fd, + ptr.p_vp9_compressed_hdr_probs); + trace_v4l2_ctrl_vp9_compressed_coeff(fh->tgid, fh->fd, + ptr.p_vp9_compressed_hdr_probs); + trace_v4l2_vp9_mv_probs(fh->tgid, fh->fd, &ptr.p_vp9_compressed_hdr_prob= s->mv); + break; + case V4L2_CTRL_TYPE_H264_SPS: + trace_v4l2_ctrl_h264_sps(fh->tgid, fh->fd, ptr.p_h264_sps); + break; + case V4L2_CTRL_TYPE_H264_PPS: + trace_v4l2_ctrl_h264_pps(fh->tgid, fh->fd, ptr.p_h264_pps); + break; + case V4L2_CTRL_TYPE_H264_SCALING_MATRIX: + trace_v4l2_ctrl_h264_scaling_matrix(fh->tgid, fh->fd, ptr.p_h264_scaling= _matrix); + break; + case V4L2_CTRL_TYPE_H264_SLICE_PARAMS: + { + struct v4l2_ctrl_h264_slice_params *sp =3D ptr.p_h264_slice_params; + + trace_v4l2_ctrl_h264_slice_params(fh->tgid, fh->fd, sp); + + for (i =3D 0; i < ARRAY_SIZE(sp->ref_pic_list0); i++) + trace_v4l2_h264_ref_pic_list0(fh->tgid, fh->fd, &sp->ref_pic_list0[i], = i); + for (i =3D 0; i < ARRAY_SIZE(sp->ref_pic_list1); i++) + trace_v4l2_h264_ref_pic_list1(fh->tgid, fh->fd, &sp->ref_pic_list1[i], = i); + + break; + } + case V4L2_CTRL_TYPE_H264_DECODE_PARAMS: + { + struct v4l2_ctrl_h264_decode_params *dp =3D ptr.p_h264_decode_params; + + trace_v4l2_ctrl_h264_decode_params(fh->tgid, fh->fd, dp); + + for (i =3D 0; i < ARRAY_SIZE(dp->dpb); i++) + trace_v4l2_h264_dpb_entry(fh->tgid, fh->fd, &dp->dpb[i], i); + + break; + } + case V4L2_CTRL_TYPE_H264_PRED_WEIGHTS: + trace_v4l2_ctrl_h264_pred_weights(fh->tgid, fh->fd, ptr.p_h264_pred_weig= hts); + break; + case V4L2_CTRL_TYPE_HEVC_SPS: + trace_v4l2_ctrl_hevc_sps(fh->tgid, fh->fd, ptr.p_hevc_sps); + break; + case V4L2_CTRL_TYPE_HEVC_PPS: + trace_v4l2_ctrl_hevc_pps(fh->tgid, fh->fd, ptr.p_hevc_pps); + break; + case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: + trace_v4l2_ctrl_hevc_slice_params(fh->tgid, fh->fd, ptr.p_hevc_slice_par= ams); + trace_v4l2_hevc_pred_weight_table(fh->tgid, fh->fd, + &ptr.p_hevc_slice_params->pred_weight_table); + break; + case V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX: + trace_v4l2_ctrl_hevc_scaling_matrix(fh->tgid, fh->fd, ptr.p_hevc_scaling= _matrix); + break; + case V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS: + { + struct v4l2_ctrl_hevc_decode_params *dp =3D ptr.p_hevc_decode_params; + + trace_v4l2_ctrl_hevc_decode_params(fh->tgid, fh->fd, dp); + + for (i =3D 0; i < ARRAY_SIZE(dp->dpb); i++) + trace_v4l2_hevc_dpb_entry(fh->tgid, fh->fd, &dp->dpb[i]); + + break; + } + case V4L2_CTRL_TYPE_AV1_SEQUENCE: + trace_v4l2_ctrl_av1_sequence(fh->tgid, fh->fd, ptr.p_av1_sequence); + break; + case V4L2_CTRL_TYPE_AV1_FRAME: + trace_v4l2_ctrl_av1_frame(fh->tgid, fh->fd, ptr.p_av1_frame); + break; + case V4L2_CTRL_TYPE_AV1_FILM_GRAIN: + trace_v4l2_ctrl_av1_film_grain(fh->tgid, fh->fd, ptr.p_av1_film_grain); + break; + case V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY: + trace_v4l2_ctrl_av1_tile_group_entry(fh->tgid, fh->fd, ptr.p_av1_tile_gr= oup_entry); + break; + } + +} +EXPORT_SYMBOL(v4l2_ctrl_type_op_trace); + static const struct v4l2_ctrl_type_ops std_type_ops =3D { .equal =3D v4l2_ctrl_type_op_equal, .init =3D v4l2_ctrl_type_op_init, .minimum =3D v4l2_ctrl_type_op_minimum, .maximum =3D v4l2_ctrl_type_op_maximum, .log =3D v4l2_ctrl_type_op_log, + .trace =3D v4l2_ctrl_type_op_trace, .validate =3D v4l2_ctrl_type_op_validate, }; =20 diff --git a/include/media/v4l2-ctrls.h b/include/media/v4l2-ctrls.h index a2b4c96a9a6f..57c4bb999b7b 100644 --- a/include/media/v4l2-ctrls.h +++ b/include/media/v4l2-ctrls.h @@ -140,6 +140,7 @@ struct v4l2_ctrl_ops { * @minimum: set the value to the minimum value of the control. * @maximum: set the value to the maximum value of the control. * @log: log the value. + * @trace: trace the value of the control with Ftrace. * @validate: validate the value for ctrl->new_elems array elements. * Return 0 on success and a negative value otherwise. */ @@ -153,6 +154,8 @@ struct v4l2_ctrl_type_ops { void (*maximum)(const struct v4l2_ctrl *ctrl, u32 idx, union v4l2_ctrl_ptr ptr); void (*log)(const struct v4l2_ctrl *ctrl); + void (*trace)(const struct v4l2_fh *fh, + const struct v4l2_ctrl *ctrl, union v4l2_ctrl_ptr ptr); int (*validate)(const struct v4l2_ctrl *ctrl, union v4l2_ctrl_ptr ptr); }; =20 @@ -1627,6 +1630,18 @@ void v4l2_ctrl_type_op_init(const struct v4l2_ctrl *= ctrl, u32 from_idx, */ void v4l2_ctrl_type_op_log(const struct v4l2_ctrl *ctrl); =20 +/** + * v4l2_ctrl_type_op_trace - Default v4l2_ctrl_type_ops trace callback. + * + * @fh: The v4l2_fh of the current context. + * @ctrl: The v4l2_ctrl pointer. + * @ptr: The v4l2 control value. + * + * Return: void + */ +void v4l2_ctrl_type_op_trace(const struct v4l2_fh *fh, + const struct v4l2_ctrl *ctrl, union v4l2_ctrl_ptr ptr); + /** * v4l2_ctrl_type_op_validate - Default v4l2_ctrl_type_ops validate callba= ck. * --=20 2.53.0 From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 794CD35DD0B; Thu, 12 Feb 2026 16:24:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913442; cv=none; b=Rc7Dq1CRUq5bTWU5MeDkoAVaTYpWShAzPG8Ev+ReIdHRIBv/RLSs2D1OO+TnQO6Fe9cJuTogEStNfWbq8luoMDHvxRfZ+lP1+6+jPylh6VtDIRGGKooDpP/yiriAYewT4xiWkFGCfzIdH9BpJV6MrStep7wlFyfONYbHiTggJPw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913442; c=relaxed/simple; bh=D4Esu0PX9a6jwM8oltCOxAHVyCzKfA22p67UJYulAA4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fo0ZxljENR9PMz04ZD1pvoa7f9IXhA44Dscb8lGDFU7FjR7YdHDEe0aYhECBzkxDJ8ktWzKUgMLwSMJBSQTHxRxiPCiG/lZgTU4y10MdF0P7OMmrK/zNIveixd57B9eX6dG38tezwUvhx1g/k0bDWVwUQ8f4v25dnNG6x8Ja1rg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=HJ7OxUhE; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="HJ7OxUhE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913439; bh=D4Esu0PX9a6jwM8oltCOxAHVyCzKfA22p67UJYulAA4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HJ7OxUhEsl1jMv4aiowykMKh945jbIJwEj4X6VXYN5W/I6dFdblBgC5em9D6TdyMZ OCPT6R0B8/CGITxBSdT7GN+exkwlM8siS5PQz8esTCFFZr7vFWJ4FYQxdrX9tfva/B fpevt93xRF/qlCQkd5DAc5h0DWkByTu0GL+LXVM7ePRH1MlGLPffUmAsmgKtWEAqbO 5Ap+0yGYzaGB9dYIWlETIppxChyxs5fAUcbFFDeEMABmvUJW0yu1Pq2DBJ72rS8xJQ bHIr4CkfmdSEsKysrXoEBskoHB1cpjqkMn9RwpwXNEf1X5bKL99xvK6FfcIl0Yn9pR 3QvoQFSAKRr2Q== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id A8A1E17E12E2; Thu, 12 Feb 2026 17:23:56 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 07/11] media: Add stream on/off traces and run them in the ioctl Date: Thu, 12 Feb 2026 11:23:24 -0500 Message-ID: <20260212162328.192217-8-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This will automatically add stream on/off tracing for all v4l2 drivers. Signed-off-by: Detlev Casanova --- drivers/media/v4l2-core/v4l2-ioctl.c | 20 ++++++++++++++++++-- include/trace/events/v4l2.h | 28 ++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core= /v4l2-ioctl.c index a3b6df0571d6..fd5193fc722e 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1963,13 +1963,29 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops = *ops, struct file *file, static int v4l_streamon(const struct v4l2_ioctl_ops *ops, struct file *fil= e, void *arg) { - return ops->vidioc_streamon(file, NULL, *(unsigned int *)arg); + struct v4l2_fh *fh =3D file_to_v4l2_fh(file); + int err; + + err =3D ops->vidioc_streamon(file, NULL, *(unsigned int *)arg); + + if (!err) + trace_v4l2_streamon(fh->tgid, fh->fd); + + return err; } =20 static int v4l_streamoff(const struct v4l2_ioctl_ops *ops, struct file *fi= le, void *arg) { - return ops->vidioc_streamoff(file, NULL, *(unsigned int *)arg); + struct v4l2_fh *fh =3D file_to_v4l2_fh(file); + int err; + + err =3D ops->vidioc_streamoff(file, NULL, *(unsigned int *)arg); + + if (!err) + trace_v4l2_streamoff(fh->tgid, fh->fd); + + return err; } =20 static int v4l_g_tuner(const struct v4l2_ioctl_ops *ops, struct file *file, diff --git a/include/trace/events/v4l2.h b/include/trace/events/v4l2.h index 248bc09bfc99..bec310eaedc7 100644 --- a/include/trace/events/v4l2.h +++ b/include/trace/events/v4l2.h @@ -262,6 +262,34 @@ DEFINE_EVENT(vb2_v4l2_event_class, vb2_v4l2_qbuf, TP_ARGS(q, vb) ); =20 +DECLARE_EVENT_CLASS(v4l2_stream_class, + TP_PROTO(u32 tgid, u32 fd), + TP_ARGS(tgid, fd), + + TP_STRUCT__entry( + __field(u32, tgid) + __field(u32, fd) + ), + + TP_fast_assign( + __entry->tgid =3D tgid; + __entry->fd =3D fd; + ), + + TP_printk("tgid =3D %u, fd =3D %u", + __entry->tgid, __entry->fd) +); + +DEFINE_EVENT(v4l2_stream_class, v4l2_streamon, + TP_PROTO(u32 tgid, u32 fd), + TP_ARGS(tgid, fd) +); + +DEFINE_EVENT(v4l2_stream_class, v4l2_streamoff, + TP_PROTO(u32 tgid, u32 fd), + TP_ARGS(tgid, fd) +); + #endif /* if !defined(_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) */ =20 /* This part must be outside protection */ --=20 2.53.0 From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E86E735E535; Thu, 12 Feb 2026 16:24:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913446; cv=none; b=Xxy7nnXeM7fWxylUeRFH6QUuUQa2gn5TMKnCVbgTjRBF5oKSv1UAmxx5Ck6pN8ppHFK3WUnYhS3HacWER37rp9sMVwNd3W35YUmX0vq2CudNzNhtU/ROMEqJ1OOuvmo4HbZJSLyxYwVLPJNZnkALw72vjbXfngaIxf84qgvkeFc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913446; c=relaxed/simple; bh=kuaeeU6LpMHASQxhXNRqsVcHur7yHgGgjDZb5xy+6BI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qCFp4enAbvub0ZxOHBHy1954CcwH9sbP4a5RlzWCB/hqVIU5o8ydPVWWACbJhsaS825/Cy/wf5JrbjosZAl/mC2gVevYvwh0m4/MiikapIirNZZ+DWD+t17hseo693Rl5OZsTKp/9DLp1SSIUwG8fFH8NZqT2Z+uWUbKtF8e3EE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=DalFuv4s; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="DalFuv4s" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913443; bh=kuaeeU6LpMHASQxhXNRqsVcHur7yHgGgjDZb5xy+6BI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DalFuv4sw1iBmN+oew0RmVeMydia1jt2wNpk2m9oxceoQE2DFFIydqvYa18h8KbbF kVFzRKs8tupT9/1CikfUvwpjm97aeUani1+k2mXN/KapaYjyK5lZeL39Kv1RWWA2Cd IQZXnsTN1pO4fa+HS8B3YG5ObduMQ+KMKo2JpMYOetX8+sWzKw/qbcRfvx6Muv4htC yc19QOkMYoRwKmUla4CDygVtMD/aQyZZv+Kw9GCUADyztr+fAARjrxZ0jBHkuahrka 5HsaisjI79vg7Bpp0YDyGVVUYpjsbgBb/QQfSJ+VwEVeS3wbcTEw9O2LhuBueGJHS7 AtAIQbTDBBwnQ== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id 318EE17E0A49; Thu, 12 Feb 2026 17:24:00 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 08/11] media: Add HW run/done trace events Date: Thu, 12 Feb 2026 11:23:25 -0500 Message-ID: <20260212162328.192217-9-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The events can be fired by drivers when the hardware is run and when it is done. That can be used by userspace tracers to see HW performance and usage. The hw_done event allows setting the number of clock cycles the HW needed to do the work, to help tools evaluate performances. Signed-off-by: Detlev Casanova --- drivers/media/v4l2-core/v4l2-trace.c | 3 +++ include/trace/events/v4l2.h | 30 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-trace.c b/drivers/media/v4l2-core= /v4l2-trace.c index 9ce54c1968ef..2fbc05dde346 100644 --- a/drivers/media/v4l2-core/v4l2-trace.c +++ b/drivers/media/v4l2-core/v4l2-trace.c @@ -12,6 +12,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(vb2_v4l2_buf_queue); EXPORT_TRACEPOINT_SYMBOL_GPL(vb2_v4l2_dqbuf); EXPORT_TRACEPOINT_SYMBOL_GPL(vb2_v4l2_qbuf); =20 +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_hw_run); +EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_hw_done); + /* Export AV1 controls */ EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_av1_sequence); EXPORT_TRACEPOINT_SYMBOL_GPL(v4l2_ctrl_av1_frame); diff --git a/include/trace/events/v4l2.h b/include/trace/events/v4l2.h index bec310eaedc7..4a9dcdbea22b 100644 --- a/include/trace/events/v4l2.h +++ b/include/trace/events/v4l2.h @@ -290,6 +290,36 @@ DEFINE_EVENT(v4l2_stream_class, v4l2_streamoff, TP_ARGS(tgid, fd) ); =20 +DEFINE_EVENT(v4l2_stream_class, v4l2_hw_run, + TP_PROTO(u32 tgid, u32 fd), + TP_ARGS(tgid, fd) +); + +DECLARE_EVENT_CLASS(v4l2_hw_done_class, + TP_PROTO(u32 tgid, u32 fd, u32 hw_cycles), + TP_ARGS(tgid, fd, hw_cycles), + + TP_STRUCT__entry( + __field(u32, tgid) + __field(u32, fd) + __field(u32, hw_cycles) + ), + + TP_fast_assign( + __entry->tgid =3D tgid; + __entry->fd =3D fd; + __entry->hw_cycles =3D hw_cycles; + ), + + TP_printk("tgid =3D %u, fd =3D %u, hw_cycles =3D %u", + __entry->tgid, __entry->fd, __entry->hw_cycles) +); + +DEFINE_EVENT(v4l2_hw_done_class, v4l2_hw_done, + TP_PROTO(u32 tgid, u32 fd, u32 hw_cycles), + TP_ARGS(tgid, fd, hw_cycles) +); + #endif /* if !defined(_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) */ =20 /* This part must be outside protection */ --=20 2.53.0 From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 645F33559F1; Thu, 12 Feb 2026 16:24:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913449; cv=none; b=OGpsjFDQnKe3xd9n2pGJAgvnvOUr+EmrGR9zZkr0q1Li5tpq0DALvLn1QXr2vv0qqCEM7B2DxZ7Kll+uK8m488UrK7JOHHe2cVc1JL5PsZ3g34SJXqh20A7m1b2V9CtFyRoUcQOAGXYUdz9dJyaRk32+AH3Xpm3HR5xOkCp8kDg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913449; c=relaxed/simple; bh=vBBpxpebLiYJIkQxlVMyNrGvtfsuoFLONoMpU1V0tnA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aMI55aumWQScpXhW5i2FapPuKQL3+eIHtA0+vOet0MiDo/4wBtL+7q0DFtcsTkCZUK6ZkXw0iQpyOLctnQ5eIla5v9YCCEsL7NkzfLoa1VorHWKkTjfSOIXjC0ClDpaEsrupwzlsgwq+6AtR1+vZjv0d4wSyA2droxEqSm/TbmY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=llB9yrhO; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="llB9yrhO" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913446; bh=vBBpxpebLiYJIkQxlVMyNrGvtfsuoFLONoMpU1V0tnA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=llB9yrhOo03sz5nB1W2bO7oKNmywE3mQx95PEoFBf5IO7Xmy+m53z8CS/dbszM40c DAHfMqq4pKyVJwTp7vVFJ+Wua5OLOKuvASybimOwsxRzJJxdfEketRMWJU5MfxtTct ZiIduCsgzdYTMJpzz0+IH7dGiaxEWUGfFiqAFQOTgdM4lroenJhxFgRj3prFsR8KT2 wGPjp7jMec5+ue0CqhZ09Qv5EcagKrxvwWXVhXULftOkWLuaaPVlocxLxojPxC7jH5 XsYmKve3wwz0EO3D11QTHCP8UZBxcSlyRFtbvaWZ3M2bsXxB7bwVBG2RBPnmVcFp2y GDWT7Uu2VNxYQ== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id AA85B17E0E6A; Thu, 12 Feb 2026 17:24:03 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 09/11] media: hantro: Add v4l2_hw run/done traces Date: Thu, 12 Feb 2026 11:23:26 -0500 Message-ID: <20260212162328.192217-10-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add the trace calls as well as retrieving the number of clock cycles for the rockchip_vpu core. Signed-off-by: Detlev Casanova --- drivers/media/platform/verisilicon/hantro.h | 1 + drivers/media/platform/verisilicon/hantro_drv.c | 10 ++++++++++ .../media/platform/verisilicon/rockchip_vpu981_regs.h | 1 + drivers/media/platform/verisilicon/rockchip_vpu_hw.c | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/drivers/media/platform/verisilicon/hantro.h b/drivers/media/pl= atform/verisilicon/hantro.h index 0353de154a1e..d5cddc783688 100644 --- a/drivers/media/platform/verisilicon/hantro.h +++ b/drivers/media/platform/verisilicon/hantro.h @@ -253,6 +253,7 @@ struct hantro_ctx { =20 u32 sequence_cap; u32 sequence_out; + u32 hw_cycles; =20 const struct hantro_fmt *vpu_src_fmt; struct v4l2_pix_format_mplane src_fmt; diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/medi= a/platform/verisilicon/hantro_drv.c index 94f58f4e4a4e..8dd26ca32459 100644 --- a/drivers/media/platform/verisilicon/hantro_drv.c +++ b/drivers/media/platform/verisilicon/hantro_drv.c @@ -25,6 +25,8 @@ #include #include =20 +#include + #include "hantro_v4l2.h" #include "hantro.h" #include "hantro_hw.h" @@ -103,6 +105,9 @@ void hantro_irq_done(struct hantro_dev *vpu, struct hantro_ctx *ctx =3D v4l2_m2m_get_curr_priv(vpu->m2m_dev); =20 + if (ctx) + trace_v4l2_hw_done(ctx->fh.tgid, ctx->fh.fd, ctx->hw_cycles); + /* * If cancel_delayed_work returns false * the timeout expired. The watchdog is running, @@ -125,6 +130,9 @@ void hantro_watchdog(struct work_struct *work) ctx =3D v4l2_m2m_get_curr_priv(vpu->m2m_dev); if (ctx) { vpu_err("frame processing timed out!\n"); + + trace_v4l2_hw_done(ctx->fh.tgid, ctx->fh.fd, ctx->hw_cycles); + if (ctx->codec_ops->reset) ctx->codec_ops->reset(ctx); hantro_job_finish(vpu, ctx, VB2_BUF_STATE_ERROR); @@ -189,6 +197,8 @@ static void device_run(void *priv) if (ctx->codec_ops->run(ctx)) goto err_cancel_job; =20 + trace_v4l2_hw_run(ctx->fh.tgid, ctx->fh.fd); + return; =20 err_cancel_job: diff --git a/drivers/media/platform/verisilicon/rockchip_vpu981_regs.h b/dr= ivers/media/platform/verisilicon/rockchip_vpu981_regs.h index e4008da64f19..96b85470208b 100644 --- a/drivers/media/platform/verisilicon/rockchip_vpu981_regs.h +++ b/drivers/media/platform/verisilicon/rockchip_vpu981_regs.h @@ -451,6 +451,7 @@ #define av1_pp0_dup_ver AV1_DEC_REG(394, 16, 0xff) #define av1_pp0_dup_hor AV1_DEC_REG(394, 24, 0xff) =20 +#define AV1_CYCLE_COUNT (AV1_SWREG(63)) #define AV1_TILE_OUT_LU (AV1_SWREG(65)) #define AV1_REFERENCE_Y(i) (AV1_SWREG(67) + ((i) * 0x8)) #define AV1_SEGMENTATION (AV1_SWREG(81)) diff --git a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c b/drivers= /media/platform/verisilicon/rockchip_vpu_hw.c index 02673be9878e..f959151b6645 100644 --- a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c +++ b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c @@ -424,6 +424,8 @@ static irqreturn_t rk3588_vpu981_irq(int irq, void *dev= _id) { struct hantro_dev *vpu =3D dev_id; enum vb2_buffer_state state; + struct hantro_ctx *ctx =3D + v4l2_m2m_get_curr_priv(vpu->m2m_dev); u32 status; =20 status =3D vdpu_read(vpu, AV1_REG_INTERRUPT); @@ -433,6 +435,8 @@ static irqreturn_t rk3588_vpu981_irq(int irq, void *dev= _id) vdpu_write(vpu, 0, AV1_REG_INTERRUPT); vdpu_write(vpu, AV1_REG_CONFIG_DEC_CLK_GATE_E, AV1_REG_CONFIG); =20 + ctx->hw_cycles =3D vdpu_read(vpu, AV1_CYCLE_COUNT); + hantro_irq_done(vpu, state); =20 return IRQ_HANDLED; --=20 2.53.0 From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B705F35DCE8; Thu, 12 Feb 2026 16:24:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913453; cv=none; b=kvagbfshFhyz+8x1NbFs51Gywmwb6u20n4C/Zb7S5KSbKEuSTLW/grt+O1QVE/DqhzJkhjkcZHRtcE+IoP3XY8xwQAjW6+oSksSOYPnNirffXcjvKujVTh65DW+sxTmX3xMW0RlNnFLKeQIu9BnAZGRHI8u/OMtbW64EcK4K2Ww= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913453; c=relaxed/simple; bh=QqdFH7NwWvtYWHLyq+m7eMuRIfxQNi+SYpkiFhBYq0k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NLJfHMWw3CNz5EM+cduN00TfIgK9HcDrAJYuHV+GVnPkdz1RCgl7oJsP8+sY471i1YxGgDGn9BvtDDv8JKKSfEfutITVeXkC15i1m9+1zezAaKIhzbYmIHCFVEhvpsjnk6jTMC/f+ELZmiJ9IsrotNGIp4lJm6c3rMWISfSeJ2E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=cok2o3Kp; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="cok2o3Kp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913450; bh=QqdFH7NwWvtYWHLyq+m7eMuRIfxQNi+SYpkiFhBYq0k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cok2o3Kp51uFVv6QQ39FMI4NKGjrhEy+cnMLl7ot0lK58VFt+tmroIqj+40Exikk2 FgqoPFHg0rOlBAFxrY6xEJC36RaWyJme7Q73SbtfOB2yjk9IvYEsxVE29mFu9O/fk0 FC1zbEuT1MalSrHk5/RnGout1FWR955jxNALOtfRIbm9uVwO2ETJ3fAeQmE6QQjIvh CXdLlHjCN2f2FLmpbr7w9CeC5NZW2L+YmNlNqQstw4kthTi522jzvDhfgW9KtRD0bB Ym0H1KUZeNNb546vikIyZCfAva7KPcdYNEPS9SFZWIE24LTyMccW4rBg+cMR6DBG0u odbtFrThFdERw== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id 2B6DE17E1144; Thu, 12 Feb 2026 17:24:07 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 10/11] media: v4l2: Add callback for show_fdinfo Date: Thu, 12 Feb 2026 11:23:27 -0500 Message-ID: <20260212162328.192217-11-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Allow v4l2 drivers to add information in the fdinfo file matching the opened /dev/videoX file. Signed-off-by: Detlev Casanova --- drivers/media/v4l2-core/v4l2-dev.c | 10 ++++++++++ include/media/v4l2-dev.h | 1 + 2 files changed, 11 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v= 4l2-dev.c index 10a126e50c1c..29c04f5f4c59 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c @@ -481,6 +481,15 @@ static int v4l2_release(struct inode *inode, struct fi= le *filp) return ret; } =20 +/* Override for the show_fdinfo function */ +static void v4l2_show_fdinfo(struct seq_file *m, struct file *filp) +{ + struct video_device *vdev =3D video_devdata(filp); + + if (vdev->fops->show_fdinfo) + vdev->fops->show_fdinfo(m, filp); +} + static const struct file_operations v4l2_fops =3D { .owner =3D THIS_MODULE, .read =3D v4l2_read, @@ -494,6 +503,7 @@ static const struct file_operations v4l2_fops =3D { #endif .release =3D v4l2_release, .poll =3D v4l2_poll, + .show_fdinfo =3D v4l2_show_fdinfo, }; =20 /** diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index 2e0f6d2e6a78..1635ab186f21 100644 --- a/include/media/v4l2-dev.h +++ b/include/media/v4l2-dev.h @@ -212,6 +212,7 @@ struct v4l2_file_operations { int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct file *); int (*release) (struct file *); + void (*show_fdinfo)(struct seq_file *, struct file *); }; =20 /* --=20 2.53.0 From nobody Thu Apr 2 18:46:23 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99E3B35FF69; Thu, 12 Feb 2026 16:24:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913457; cv=none; b=VNBs9QEsGIB2Kk4Ff2bjHAfYprKMYaXVvC89KL3RC2J0rDvKsEZ8uDNlVZrzaVdU4kPlToZX2ljyk2hwlApIpOtvMmHQbGpD+iKs3mwXPmThd8lkMSdZonAZ7RRz0E04HJTvgeXubPK5fAgxvpcCBAX+Da0VCNfUak4eMpZdlX4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770913457; c=relaxed/simple; bh=EgY6rRozA0nftZszqOZUvhTiePvvlTkScGicAmL6ngk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nB4ZVN8tRvR1s4pU53BrY+qihpcexWQV2uk4Y+L8Sf7tIFfGLlNmIHFJnp+jA7dyojuXF3GhEB8WFh/oDTpLKfcsaFhcDaBo/93RFT35tTeuelxelfKOK1OWKHDdfoWgocBZIxoFQTnRrZV4Lj91OEFyC87bAw+wjT2abOQ53s8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=I/El3T4P; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="I/El3T4P" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770913453; bh=EgY6rRozA0nftZszqOZUvhTiePvvlTkScGicAmL6ngk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I/El3T4P0xovkgMTWcwcUXRdgkb5x/Jtnuc437sudcJIWdnjlnXYE41volTkySBfe g7jQRcLsGl/6alBEVCexl9s9fNPtON5QVNL73QcPbYHGdDtI2xmR/0NTAl9fXhJD97 qFgkabxP+3rZGcrSj/VLHSKhIhAq7nLVYZzkjHJ1vCw1IqG+/MV1hueucPtyb6z0Ib 6JJCp4vP4H9d182O5pN+LiOzLutxAzCRJr2Iv2W1tiEb3dXrCcmuYPMCgXKDOukGs9 CiNst9RRZQqTFC8aF46h8zMFj8HeWJ7xWZO/9c9oit/M9SXY9Hz5RaDDX0zYuBPuZD 0q/HX4jCb7KJw== Received: from trenzalore (modemcable014.2-22-96.mc.videotron.ca [96.22.2.14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id A672017E0A49; Thu, 12 Feb 2026 17:24:10 +0100 (CET) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Nicolas Dufresne , Benjamin Gaignard , Philipp Zabel , Mauro Carvalho Chehab , Heiko Stuebner , Daniel Almeida , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Hans Verkuil , Laurent Pinchart , Ricardo Ribalda , Yunke Cao , Detlev Casanova , Sakari Ailus , Pavan Bobba , James Cowgill , Ma Ke , Jacopo Mondi , Daniel Scally , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-trace-kernel@vger.kernel.org, kernel@collabora.com Subject: [PATCH 11/11] media: hantro: Add fdinfo callback Date: Thu, 12 Feb 2026 11:23:28 -0500 Message-ID: <20260212162328.192217-12-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260212162328.192217-1-detlev.casanova@collabora.com> References: <20260212162328.192217-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The fdinfo shows the number of buffers in each queue and the total amount of video buffer memory. Signed-off-by: Detlev Casanova --- drivers/media/platform/verisilicon/hantro.h | 1 + drivers/media/platform/verisilicon/hantro_drv.c | 15 +++++++++++++++ drivers/media/platform/verisilicon/hantro_v4l2.c | 10 +++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/verisilicon/hantro.h b/drivers/media/pl= atform/verisilicon/hantro.h index d5cddc783688..9e9fc0658586 100644 --- a/drivers/media/platform/verisilicon/hantro.h +++ b/drivers/media/platform/verisilicon/hantro.h @@ -268,6 +268,7 @@ struct hantro_ctx { const struct hantro_codec_ops *codec_ops; struct hantro_postproc_ctx postproc; bool need_postproc; + u64 stats_buf_memory; =20 /* Specific for particular codec modes. */ union { diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/medi= a/platform/verisilicon/hantro_drv.c index 8dd26ca32459..86d316a8a3e8 100644 --- a/drivers/media/platform/verisilicon/hantro_drv.c +++ b/drivers/media/platform/verisilicon/hantro_drv.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -711,6 +712,19 @@ static int hantro_release(struct file *filp) return 0; } =20 +static void hantro_show_fdinfo(struct seq_file *m, struct file *filp) +{ + struct hantro_ctx *ctx =3D + container_of(filp->private_data, struct hantro_ctx, fh); + + struct vb2_queue *src_q =3D v4l2_m2m_get_src_vq(ctx->fh.m2m_ctx); + struct vb2_queue *dst_q =3D v4l2_m2m_get_dst_vq(ctx->fh.m2m_ctx); + + seq_printf(m, "src-queued-count: %04u\n", src_q->queued_count); + seq_printf(m, "dst-queued-count: %04u\n", dst_q->queued_count); + seq_printf(m, "buf-size: %llu\n", ctx->stats_buf_memory); +} + static const struct v4l2_file_operations hantro_fops =3D { .owner =3D THIS_MODULE, .open =3D hantro_open, @@ -718,6 +732,7 @@ static const struct v4l2_file_operations hantro_fops = =3D { .poll =3D v4l2_m2m_fop_poll, .unlocked_ioctl =3D video_ioctl2, .mmap =3D v4l2_m2m_fop_mmap, + .show_fdinfo =3D hantro_show_fdinfo, }; =20 static const struct of_device_id of_hantro_match[] =3D { diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c b/drivers/med= ia/platform/verisilicon/hantro_v4l2.c index fcf3bd9bcda2..6d129613ea3d 100644 --- a/drivers/media/platform/verisilicon/hantro_v4l2.c +++ b/drivers/media/platform/verisilicon/hantro_v4l2.c @@ -820,18 +820,26 @@ hantro_queue_setup(struct vb2_queue *vq, unsigned int= *num_buffers, return -EINVAL; } =20 + ctx->stats_buf_memory =3D 0; + if (*num_planes) { if (*num_planes !=3D pixfmt->num_planes) return -EINVAL; - for (i =3D 0; i < pixfmt->num_planes; ++i) + for (i =3D 0; i < pixfmt->num_planes; ++i) { if (sizes[i] < pixfmt->plane_fmt[i].sizeimage) return -EINVAL; + ctx->stats_buf_memory +=3D pixfmt->plane_fmt[i].sizeimage; + } + + ctx->stats_buf_memory *=3D *num_buffers; + return 0; } =20 *num_planes =3D pixfmt->num_planes; for (i =3D 0; i < pixfmt->num_planes; ++i) sizes[i] =3D pixfmt->plane_fmt[i].sizeimage; + return 0; } =20 --=20 2.53.0