drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c:1022:1: warning: the frame size of 1112 bytes is larger than 1024 bytes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Benjamin,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   a452483508d7b70b0f6c69e249ec0b3ea2330b5c
commit: 727a400686a2c0d25015c9e44916a59b72882f83 media: verisilicon: Add Rockchip AV1 decoder
date:   4 weeks ago
config: arm-randconfig-r023-20230707 (https://download.01.org/0day-ci/archive/20230707/202307070653.xxncAC2W-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230707/202307070653.xxncAC2W-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307070653.xxncAC2W-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

   drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c: In function 'rockchip_vpu981_av1_dec_set_segmentation':
>> drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c:1022:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
    1022 | }
         | ^


vim +1022 drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c

   776	
   777	static void rockchip_vpu981_av1_dec_set_segmentation(struct hantro_ctx *ctx)
   778	{
   779		struct hantro_av1_dec_hw_ctx *av1_dec = &ctx->av1_dec;
   780		struct hantro_av1_dec_ctrls *ctrls = &av1_dec->ctrls;
   781		const struct v4l2_ctrl_av1_frame *frame = ctrls->frame;
   782		const struct v4l2_av1_segmentation *seg = &frame->segmentation;
   783		u32 segval[V4L2_AV1_MAX_SEGMENTS][V4L2_AV1_SEG_LVL_MAX] = { 0 };
   784		struct hantro_dev *vpu = ctx->dev;
   785		u8 segsign = 0, preskip_segid = 0, last_active_seg = 0, i, j;
   786	
   787		if (!!(seg->flags & V4L2_AV1_SEGMENTATION_FLAG_ENABLED) &&
   788		    frame->primary_ref_frame < V4L2_AV1_REFS_PER_FRAME) {
   789			int idx = rockchip_vpu981_get_frame_index(ctx, frame->primary_ref_frame);
   790	
   791			if (idx >= 0) {
   792				dma_addr_t luma_addr, mv_addr = 0;
   793				struct hantro_decoded_buffer *seg;
   794				size_t mv_offset = rockchip_vpu981_av1_dec_chroma_size(ctx);
   795	
   796				seg = vb2_to_hantro_decoded_buf(&av1_dec->frame_refs[idx].vb2_ref->vb2_buf);
   797				luma_addr = hantro_get_dec_buf_addr(ctx, &seg->base.vb.vb2_buf);
   798				mv_addr = luma_addr + mv_offset;
   799	
   800				hantro_write_addr(vpu, AV1_SEGMENTATION, mv_addr);
   801				hantro_reg_write(vpu, &av1_use_temporal3_mvs, 1);
   802			}
   803		}
   804	
   805		hantro_reg_write(vpu, &av1_segment_temp_upd_e,
   806				 !!(seg->flags & V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL_UPDATE));
   807		hantro_reg_write(vpu, &av1_segment_upd_e,
   808				 !!(seg->flags & V4L2_AV1_SEGMENTATION_FLAG_UPDATE_MAP));
   809		hantro_reg_write(vpu, &av1_segment_e,
   810				 !!(seg->flags & V4L2_AV1_SEGMENTATION_FLAG_ENABLED));
   811	
   812		hantro_reg_write(vpu, &av1_error_resilient,
   813				 !!(frame->flags & V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE));
   814	
   815		if (IS_INTRA(frame->frame_type) ||
   816		    !!(frame->flags & V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE)) {
   817			hantro_reg_write(vpu, &av1_use_temporal3_mvs, 0);
   818		}
   819	
   820		if (seg->flags & V4L2_AV1_SEGMENTATION_FLAG_ENABLED) {
   821			int s;
   822	
   823			for (s = 0; s < V4L2_AV1_MAX_SEGMENTS; s++) {
   824				if (seg->feature_enabled[s] &
   825				    V4L2_AV1_SEGMENT_FEATURE_ENABLED(V4L2_AV1_SEG_LVL_ALT_Q)) {
   826					segval[s][V4L2_AV1_SEG_LVL_ALT_Q] =
   827					    clamp(abs(seg->feature_data[s][V4L2_AV1_SEG_LVL_ALT_Q]),
   828						  0, 255);
   829					segsign |=
   830						(seg->feature_data[s][V4L2_AV1_SEG_LVL_ALT_Q] < 0) << s;
   831				}
   832	
   833				if (seg->feature_enabled[s] &
   834				    V4L2_AV1_SEGMENT_FEATURE_ENABLED(V4L2_AV1_SEG_LVL_ALT_LF_Y_V))
   835					segval[s][V4L2_AV1_SEG_LVL_ALT_LF_Y_V] =
   836						clamp(abs(seg->feature_data[s][V4L2_AV1_SEG_LVL_ALT_LF_Y_V]),
   837						      -63, 63);
   838	
   839				if (seg->feature_enabled[s] &
   840				    V4L2_AV1_SEGMENT_FEATURE_ENABLED(V4L2_AV1_SEG_LVL_ALT_LF_Y_H))
   841					segval[s][V4L2_AV1_SEG_LVL_ALT_LF_Y_H] =
   842					    clamp(abs(seg->feature_data[s][V4L2_AV1_SEG_LVL_ALT_LF_Y_H]),
   843						  -63, 63);
   844	
   845				if (seg->feature_enabled[s] &
   846				    V4L2_AV1_SEGMENT_FEATURE_ENABLED(V4L2_AV1_SEG_LVL_ALT_LF_U))
   847					segval[s][V4L2_AV1_SEG_LVL_ALT_LF_U] =
   848					    clamp(abs(seg->feature_data[s][V4L2_AV1_SEG_LVL_ALT_LF_U]),
   849						  -63, 63);
   850	
   851				if (seg->feature_enabled[s] &
   852				    V4L2_AV1_SEGMENT_FEATURE_ENABLED(V4L2_AV1_SEG_LVL_ALT_LF_V))
   853					segval[s][V4L2_AV1_SEG_LVL_ALT_LF_V] =
   854					    clamp(abs(seg->feature_data[s][V4L2_AV1_SEG_LVL_ALT_LF_V]),
   855						  -63, 63);
   856	
   857				if (frame->frame_type && seg->feature_enabled[s] &
   858				    V4L2_AV1_SEGMENT_FEATURE_ENABLED(V4L2_AV1_SEG_LVL_REF_FRAME))
   859					segval[s][V4L2_AV1_SEG_LVL_REF_FRAME]++;
   860	
   861				if (seg->feature_enabled[s] &
   862				    V4L2_AV1_SEGMENT_FEATURE_ENABLED(V4L2_AV1_SEG_LVL_REF_SKIP))
   863					segval[s][V4L2_AV1_SEG_LVL_REF_SKIP] = 1;
   864	
   865				if (seg->feature_enabled[s] &
   866				    V4L2_AV1_SEGMENT_FEATURE_ENABLED(V4L2_AV1_SEG_LVL_REF_GLOBALMV))
   867					segval[s][V4L2_AV1_SEG_LVL_REF_GLOBALMV] = 1;
   868			}
   869		}
   870	
   871		for (i = 0; i < V4L2_AV1_MAX_SEGMENTS; i++) {
   872			for (j = 0; j < V4L2_AV1_SEG_LVL_MAX; j++) {
   873				if (seg->feature_enabled[i]
   874				    & V4L2_AV1_SEGMENT_FEATURE_ENABLED(j)) {
   875					preskip_segid |= (j >= V4L2_AV1_SEG_LVL_REF_FRAME);
   876					last_active_seg = max(i, last_active_seg);
   877				}
   878			}
   879		}
   880	
   881		hantro_reg_write(vpu, &av1_last_active_seg, last_active_seg);
   882		hantro_reg_write(vpu, &av1_preskip_segid, preskip_segid);
   883	
   884		hantro_reg_write(vpu, &av1_seg_quant_sign, segsign);
   885	
   886		/* Write QP, filter level, ref frame and skip for every segment */
   887		hantro_reg_write(vpu, &av1_quant_seg0,
   888				 segval[0][V4L2_AV1_SEG_LVL_ALT_Q]);
   889		hantro_reg_write(vpu, &av1_filt_level_delta0_seg0,
   890				 segval[0][V4L2_AV1_SEG_LVL_ALT_LF_Y_V]);
   891		hantro_reg_write(vpu, &av1_filt_level_delta1_seg0,
   892				 segval[0][V4L2_AV1_SEG_LVL_ALT_LF_Y_H]);
   893		hantro_reg_write(vpu, &av1_filt_level_delta2_seg0,
   894				 segval[0][V4L2_AV1_SEG_LVL_ALT_LF_U]);
   895		hantro_reg_write(vpu, &av1_filt_level_delta3_seg0,
   896				 segval[0][V4L2_AV1_SEG_LVL_ALT_LF_V]);
   897		hantro_reg_write(vpu, &av1_refpic_seg0,
   898				 segval[0][V4L2_AV1_SEG_LVL_REF_FRAME]);
   899		hantro_reg_write(vpu, &av1_skip_seg0,
   900				 segval[0][V4L2_AV1_SEG_LVL_REF_SKIP]);
   901		hantro_reg_write(vpu, &av1_global_mv_seg0,
   902				 segval[0][V4L2_AV1_SEG_LVL_REF_GLOBALMV]);
   903	
   904		hantro_reg_write(vpu, &av1_quant_seg1,
   905				 segval[1][V4L2_AV1_SEG_LVL_ALT_Q]);
   906		hantro_reg_write(vpu, &av1_filt_level_delta0_seg1,
   907				 segval[1][V4L2_AV1_SEG_LVL_ALT_LF_Y_V]);
   908		hantro_reg_write(vpu, &av1_filt_level_delta1_seg1,
   909				 segval[1][V4L2_AV1_SEG_LVL_ALT_LF_Y_H]);
   910		hantro_reg_write(vpu, &av1_filt_level_delta2_seg1,
   911				 segval[1][V4L2_AV1_SEG_LVL_ALT_LF_U]);
   912		hantro_reg_write(vpu, &av1_filt_level_delta3_seg1,
   913				 segval[1][V4L2_AV1_SEG_LVL_ALT_LF_V]);
   914		hantro_reg_write(vpu, &av1_refpic_seg1,
   915				 segval[1][V4L2_AV1_SEG_LVL_REF_FRAME]);
   916		hantro_reg_write(vpu, &av1_skip_seg1,
   917				 segval[1][V4L2_AV1_SEG_LVL_REF_SKIP]);
   918		hantro_reg_write(vpu, &av1_global_mv_seg1,
   919				 segval[1][V4L2_AV1_SEG_LVL_REF_GLOBALMV]);
   920	
   921		hantro_reg_write(vpu, &av1_quant_seg2,
   922				 segval[2][V4L2_AV1_SEG_LVL_ALT_Q]);
   923		hantro_reg_write(vpu, &av1_filt_level_delta0_seg2,
   924				 segval[2][V4L2_AV1_SEG_LVL_ALT_LF_Y_V]);
   925		hantro_reg_write(vpu, &av1_filt_level_delta1_seg2,
   926				 segval[2][V4L2_AV1_SEG_LVL_ALT_LF_Y_H]);
   927		hantro_reg_write(vpu, &av1_filt_level_delta2_seg2,
   928				 segval[2][V4L2_AV1_SEG_LVL_ALT_LF_U]);
   929		hantro_reg_write(vpu, &av1_filt_level_delta3_seg2,
   930				 segval[2][V4L2_AV1_SEG_LVL_ALT_LF_V]);
   931		hantro_reg_write(vpu, &av1_refpic_seg2,
   932				 segval[2][V4L2_AV1_SEG_LVL_REF_FRAME]);
   933		hantro_reg_write(vpu, &av1_skip_seg2,
   934				 segval[2][V4L2_AV1_SEG_LVL_REF_SKIP]);
   935		hantro_reg_write(vpu, &av1_global_mv_seg2,
   936				 segval[2][V4L2_AV1_SEG_LVL_REF_GLOBALMV]);
   937	
   938		hantro_reg_write(vpu, &av1_quant_seg3,
   939				 segval[3][V4L2_AV1_SEG_LVL_ALT_Q]);
   940		hantro_reg_write(vpu, &av1_filt_level_delta0_seg3,
   941				 segval[3][V4L2_AV1_SEG_LVL_ALT_LF_Y_V]);
   942		hantro_reg_write(vpu, &av1_filt_level_delta1_seg3,
   943				 segval[3][V4L2_AV1_SEG_LVL_ALT_LF_Y_H]);
   944		hantro_reg_write(vpu, &av1_filt_level_delta2_seg3,
   945				 segval[3][V4L2_AV1_SEG_LVL_ALT_LF_U]);
   946		hantro_reg_write(vpu, &av1_filt_level_delta3_seg3,
   947				 segval[3][V4L2_AV1_SEG_LVL_ALT_LF_V]);
   948		hantro_reg_write(vpu, &av1_refpic_seg3,
   949				 segval[3][V4L2_AV1_SEG_LVL_REF_FRAME]);
   950		hantro_reg_write(vpu, &av1_skip_seg3,
   951				 segval[3][V4L2_AV1_SEG_LVL_REF_SKIP]);
   952		hantro_reg_write(vpu, &av1_global_mv_seg3,
   953				 segval[3][V4L2_AV1_SEG_LVL_REF_GLOBALMV]);
   954	
   955		hantro_reg_write(vpu, &av1_quant_seg4,
   956				 segval[4][V4L2_AV1_SEG_LVL_ALT_Q]);
   957		hantro_reg_write(vpu, &av1_filt_level_delta0_seg4,
   958				 segval[4][V4L2_AV1_SEG_LVL_ALT_LF_Y_V]);
   959		hantro_reg_write(vpu, &av1_filt_level_delta1_seg4,
   960				 segval[4][V4L2_AV1_SEG_LVL_ALT_LF_Y_H]);
   961		hantro_reg_write(vpu, &av1_filt_level_delta2_seg4,
   962				 segval[4][V4L2_AV1_SEG_LVL_ALT_LF_U]);
   963		hantro_reg_write(vpu, &av1_filt_level_delta3_seg4,
   964				 segval[4][V4L2_AV1_SEG_LVL_ALT_LF_V]);
   965		hantro_reg_write(vpu, &av1_refpic_seg4,
   966				 segval[4][V4L2_AV1_SEG_LVL_REF_FRAME]);
   967		hantro_reg_write(vpu, &av1_skip_seg4,
   968				 segval[4][V4L2_AV1_SEG_LVL_REF_SKIP]);
   969		hantro_reg_write(vpu, &av1_global_mv_seg4,
   970				 segval[4][V4L2_AV1_SEG_LVL_REF_GLOBALMV]);
   971	
   972		hantro_reg_write(vpu, &av1_quant_seg5,
   973				 segval[5][V4L2_AV1_SEG_LVL_ALT_Q]);
   974		hantro_reg_write(vpu, &av1_filt_level_delta0_seg5,
   975				 segval[5][V4L2_AV1_SEG_LVL_ALT_LF_Y_V]);
   976		hantro_reg_write(vpu, &av1_filt_level_delta1_seg5,
   977				 segval[5][V4L2_AV1_SEG_LVL_ALT_LF_Y_H]);
   978		hantro_reg_write(vpu, &av1_filt_level_delta2_seg5,
   979				 segval[5][V4L2_AV1_SEG_LVL_ALT_LF_U]);
   980		hantro_reg_write(vpu, &av1_filt_level_delta3_seg5,
   981				 segval[5][V4L2_AV1_SEG_LVL_ALT_LF_V]);
   982		hantro_reg_write(vpu, &av1_refpic_seg5,
   983				 segval[5][V4L2_AV1_SEG_LVL_REF_FRAME]);
   984		hantro_reg_write(vpu, &av1_skip_seg5,
   985				 segval[5][V4L2_AV1_SEG_LVL_REF_SKIP]);
   986		hantro_reg_write(vpu, &av1_global_mv_seg5,
   987				 segval[5][V4L2_AV1_SEG_LVL_REF_GLOBALMV]);
   988	
   989		hantro_reg_write(vpu, &av1_quant_seg6,
   990				 segval[6][V4L2_AV1_SEG_LVL_ALT_Q]);
   991		hantro_reg_write(vpu, &av1_filt_level_delta0_seg6,
   992				 segval[6][V4L2_AV1_SEG_LVL_ALT_LF_Y_V]);
   993		hantro_reg_write(vpu, &av1_filt_level_delta1_seg6,
   994				 segval[6][V4L2_AV1_SEG_LVL_ALT_LF_Y_H]);
   995		hantro_reg_write(vpu, &av1_filt_level_delta2_seg6,
   996				 segval[6][V4L2_AV1_SEG_LVL_ALT_LF_U]);
   997		hantro_reg_write(vpu, &av1_filt_level_delta3_seg6,
   998				 segval[6][V4L2_AV1_SEG_LVL_ALT_LF_V]);
   999		hantro_reg_write(vpu, &av1_refpic_seg6,
  1000				 segval[6][V4L2_AV1_SEG_LVL_REF_FRAME]);
  1001		hantro_reg_write(vpu, &av1_skip_seg6,
  1002				 segval[6][V4L2_AV1_SEG_LVL_REF_SKIP]);
  1003		hantro_reg_write(vpu, &av1_global_mv_seg6,
  1004				 segval[6][V4L2_AV1_SEG_LVL_REF_GLOBALMV]);
  1005	
  1006		hantro_reg_write(vpu, &av1_quant_seg7,
  1007				 segval[7][V4L2_AV1_SEG_LVL_ALT_Q]);
  1008		hantro_reg_write(vpu, &av1_filt_level_delta0_seg7,
  1009				 segval[7][V4L2_AV1_SEG_LVL_ALT_LF_Y_V]);
  1010		hantro_reg_write(vpu, &av1_filt_level_delta1_seg7,
  1011				 segval[7][V4L2_AV1_SEG_LVL_ALT_LF_Y_H]);
  1012		hantro_reg_write(vpu, &av1_filt_level_delta2_seg7,
  1013				 segval[7][V4L2_AV1_SEG_LVL_ALT_LF_U]);
  1014		hantro_reg_write(vpu, &av1_filt_level_delta3_seg7,
  1015				 segval[7][V4L2_AV1_SEG_LVL_ALT_LF_V]);
  1016		hantro_reg_write(vpu, &av1_refpic_seg7,
  1017				 segval[7][V4L2_AV1_SEG_LVL_REF_FRAME]);
  1018		hantro_reg_write(vpu, &av1_skip_seg7,
  1019				 segval[7][V4L2_AV1_SEG_LVL_REF_SKIP]);
  1020		hantro_reg_write(vpu, &av1_global_mv_seg7,
  1021				 segval[7][V4L2_AV1_SEG_LVL_REF_GLOBALMV]);
> 1022	}
  1023	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux