[PATCH v8 03/17] media: visl: Add HEVC short and long term RPS sets

Nicolas Dufresne nicolas.dufresne at collabora.com
Sun Jan 18 13:57:15 PST 2026


Le vendredi 09 janvier 2026 à 11:15 -0500, Detlev Casanova a écrit :
> Log the recently added v4l2 controls to set HEVC short and long term RPS
> sets with 2 new ftrace entries.
> 
> Signed-off-by: Detlev Casanova <detlev.casanova at collabora.com>

Reviewed-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>

> ---
>  drivers/media/test-drivers/visl/visl-dec.c    |  7 +++
>  drivers/media/test-drivers/visl/visl-dec.h    |  3 +
>  .../media/test-drivers/visl/visl-trace-hevc.h | 59 +++++++++++++++++++
>  3 files changed, 69 insertions(+)
> 
> diff --git a/drivers/media/test-drivers/visl/visl-dec.c b/drivers/media/test-drivers/visl/visl-dec.c
> index d90b79de8384..6bbf93757047 100644
> --- a/drivers/media/test-drivers/visl/visl-dec.c
> +++ b/drivers/media/test-drivers/visl/visl-dec.c
> @@ -547,6 +547,9 @@ static void visl_trace_ctrls(struct visl_ctx *ctx, struct visl_run *run)
>  			trace_v4l2_hevc_dpb_entry(&run->hevc.dpram->dpb[i]);
>  
>  		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);
> +
>  		break;
>  	case VISL_CODEC_AV1:
>  		trace_v4l2_ctrl_av1_sequence(run->av1.seq);
> @@ -611,6 +614,10 @@ void visl_device_run(void *priv)
>  		run.hevc.spram = visl_find_control_data(ctx, V4L2_CID_STATELESS_HEVC_SLICE_PARAMS);
>  		run.hevc.sm = visl_find_control_data(ctx, V4L2_CID_STATELESS_HEVC_SCALING_MATRIX);
>  		run.hevc.dpram = visl_find_control_data(ctx, V4L2_CID_STATELESS_HEVC_DECODE_PARAMS);
> +		run.hevc.rps_lt = visl_find_control_data(ctx,
> +							 V4L2_CID_STATELESS_HEVC_EXT_SPS_LT_RPS);
> +		run.hevc.rps_st = visl_find_control_data(ctx,
> +							 V4L2_CID_STATELESS_HEVC_EXT_SPS_ST_RPS);
>  		break;
>  	case VISL_CODEC_AV1:
>  		run.av1.seq = visl_find_control_data(ctx, V4L2_CID_STATELESS_AV1_SEQUENCE);
> diff --git a/drivers/media/test-drivers/visl/visl-dec.h b/drivers/media/test-drivers/visl/visl-dec.h
> index c2c2ef3a8798..6e7562e555bb 100644
> --- a/drivers/media/test-drivers/visl/visl-dec.h
> +++ b/drivers/media/test-drivers/visl/visl-dec.h
> @@ -7,6 +7,7 @@
>  #ifndef _VISL_DEC_H_
>  #define _VISL_DEC_H_
>  
> +#include "linux/v4l2-controls.h"
>  #include "visl.h"
>  
>  struct visl_fwht_run {
> @@ -43,6 +44,8 @@ struct visl_hevc_run {
>  	const struct v4l2_ctrl_hevc_slice_params *spram;
>  	const struct v4l2_ctrl_hevc_scaling_matrix *sm;
>  	const struct v4l2_ctrl_hevc_decode_params *dpram;
> +	const struct v4l2_ctrl_hevc_ext_sps_lt_rps *rps_lt;
> +	const struct v4l2_ctrl_hevc_ext_sps_st_rps *rps_st;
>  };
>  
>  struct visl_av1_run {
> diff --git a/drivers/media/test-drivers/visl/visl-trace-hevc.h b/drivers/media/test-drivers/visl/visl-trace-hevc.h
> index 837b8ec12e97..963914c463db 100644
> --- a/drivers/media/test-drivers/visl/visl-trace-hevc.h
> +++ b/drivers/media/test-drivers/visl/visl-trace-hevc.h
> @@ -1,4 +1,5 @@
>  /* 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_
>  
> @@ -343,6 +344,54 @@ DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_decode_params_tmpl,
>  	))
>  );
>  
> +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 = *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 = *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),
> @@ -391,6 +440,16 @@ DEFINE_EVENT(v4l2_ctrl_hevc_decode_params_tmpl, v4l2_ctrl_hevc_decode_params,
>  	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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20260118/3f154bfb/attachment.sig>


More information about the linux-arm-kernel mailing list