All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: [chrome-os:chromeos-5.4 54/243] drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_lat_if.c:575:34: warning: Uninitialized variable: timeout [uninitvar]
Date: Tue, 20 Apr 2021 11:28:28 +0300	[thread overview]
Message-ID: <20210420082827.GC1959@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 11554 bytes --]

tree:   https://chromium.googlesource.com/chromiumos/third_party/kernel  chromeos-5.4
head:   52d269f32500581166246e0e494b2b62d979dba6
commit: 0a438b290ea431bc87156be5819e9f85fa951240 [54/243] CHROMIUM: media: mtk-vcodec: Add h264 slice api driver for mt8192
compiler: hppa-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_lat_if.c:575:34: warning: Uninitialized variable: timeout [uninitvar]
    if (err == SLICE_HEADER_FULL || timeout || (err == TRANS_BUFFER_FULL &&
                                    ^

vim +575 drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_lat_if.c

0a438b290ea431 Yunfei Dong 2021-01-05  473  static int vdec_h264_slice_decode(void *h_vdec, struct mtk_vcodec_mem *bs,
0a438b290ea431 Yunfei Dong 2021-01-05  474  	struct vdec_fb *fb, bool *res_chg)
0a438b290ea431 Yunfei Dong 2021-01-05  475  {
0a438b290ea431 Yunfei Dong 2021-01-05  476  	struct vdec_h264_slice_inst *inst = h_vdec;
0a438b290ea431 Yunfei Dong 2021-01-05  477  	struct vdec_vpu_inst *vpu = &inst->vpu;
0a438b290ea431 Yunfei Dong 2021-01-05  478  	struct mtk_video_dec_buf *src_buf_info;
0a438b290ea431 Yunfei Dong 2021-01-05  479  	int nal_start_idx, err, timeout, i;
                                                                        ^^^^^^^

0a438b290ea431 Yunfei Dong 2021-01-05  480  	unsigned int nal_type, data[2];
0a438b290ea431 Yunfei Dong 2021-01-05  481  	struct vdec_lat_buf *lat_buf;
0a438b290ea431 Yunfei Dong 2021-01-05  482  	struct vdec_h264_slice_share_info *share_info;
0a438b290ea431 Yunfei Dong 2021-01-05  483  	unsigned char *buf;
0a438b290ea431 Yunfei Dong 2021-01-05  484  	struct mtk_vcodec_mem *mem;
0a438b290ea431 Yunfei Dong 2021-01-05  485  
0a438b290ea431 Yunfei Dong 2021-01-05  486  	mtk_vcodec_debug(inst, "+ [%d] ", ++inst->num_nalu);
0a438b290ea431 Yunfei Dong 2021-01-05  487  
0a438b290ea431 Yunfei Dong 2021-01-05  488  	if (!inst->ctx->msg_queue.init_done) {
0a438b290ea431 Yunfei Dong 2021-01-05  489  		if (vdec_msg_queue_init(inst->ctx, &inst->ctx->msg_queue,
0a438b290ea431 Yunfei Dong 2021-01-05  490  			vdec_h264_slice_core_decode, sizeof(*share_info)))
0a438b290ea431 Yunfei Dong 2021-01-05  491  		return -ENOMEM;
0a438b290ea431 Yunfei Dong 2021-01-05  492  	}
0a438b290ea431 Yunfei Dong 2021-01-05  493  
0a438b290ea431 Yunfei Dong 2021-01-05  494  	/* bs NULL means flush decoder */
0a438b290ea431 Yunfei Dong 2021-01-05  495  	if (!bs) {
0a438b290ea431 Yunfei Dong 2021-01-05  496  		vdec_msg_queue_wait_lat_buf_full(&inst->ctx->msg_queue);
0a438b290ea431 Yunfei Dong 2021-01-05  497  		return vpu_dec_reset(vpu);
0a438b290ea431 Yunfei Dong 2021-01-05  498  	}
0a438b290ea431 Yunfei Dong 2021-01-05  499  
0a438b290ea431 Yunfei Dong 2021-01-05  500  	lat_buf = vdec_msg_queue_get_lat_buf(&inst->ctx->msg_queue);
0a438b290ea431 Yunfei Dong 2021-01-05  501  	if (!lat_buf) {
0a438b290ea431 Yunfei Dong 2021-01-05  502  		mtk_vcodec_err(inst, "failed to get lat buffer");
0a438b290ea431 Yunfei Dong 2021-01-05  503  		return -EINVAL;
0a438b290ea431 Yunfei Dong 2021-01-05  504  	}
0a438b290ea431 Yunfei Dong 2021-01-05  505  	share_info = lat_buf->private_data;
0a438b290ea431 Yunfei Dong 2021-01-05  506  	src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
0a438b290ea431 Yunfei Dong 2021-01-05  507  
0a438b290ea431 Yunfei Dong 2021-01-05  508  	buf = (unsigned char *)bs->va;
0a438b290ea431 Yunfei Dong 2021-01-05  509  	nal_start_idx = mtk_vdec_h264_find_start_code(buf, bs->size);
0a438b290ea431 Yunfei Dong 2021-01-05  510  	if (nal_start_idx < 0) {
0a438b290ea431 Yunfei Dong 2021-01-05  511  		err = -EINVAL;
0a438b290ea431 Yunfei Dong 2021-01-05  512  		goto err_free_fb_out;
0a438b290ea431 Yunfei Dong 2021-01-05  513  	}
0a438b290ea431 Yunfei Dong 2021-01-05  514  
0a438b290ea431 Yunfei Dong 2021-01-05  515  	inst->vsi->dec.nal_info = buf[nal_start_idx];
0a438b290ea431 Yunfei Dong 2021-01-05  516  	nal_type = NAL_TYPE(buf[nal_start_idx]);
0a438b290ea431 Yunfei Dong 2021-01-05  517  	mtk_vcodec_debug(inst, "\n + NALU[%d] type %d +\n", inst->num_nalu,
0a438b290ea431 Yunfei Dong 2021-01-05  518  			 nal_type);
0a438b290ea431 Yunfei Dong 2021-01-05  519  
0a438b290ea431 Yunfei Dong 2021-01-05  520  	inst->vsi->dec.bs_buf_addr = (uint64_t)bs->dma_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  521  	inst->vsi->dec.bs_buf_size = bs->size;
0a438b290ea431 Yunfei Dong 2021-01-05  522  
0a438b290ea431 Yunfei Dong 2021-01-05  523  	v4l2_m2m_buf_copy_metadata(&src_buf_info->m2m_buf.vb,
0a438b290ea431 Yunfei Dong 2021-01-05  524  		&lat_buf->ts_info, true);
0a438b290ea431 Yunfei Dong 2021-01-05  525  
0a438b290ea431 Yunfei Dong 2021-01-05  526  	vdec_h264_slice_fill_decode_parameters(inst, share_info);
0a438b290ea431 Yunfei Dong 2021-01-05  527  	*res_chg = inst->resolution_changed;
0a438b290ea431 Yunfei Dong 2021-01-05  528  	if (inst->resolution_changed) {
0a438b290ea431 Yunfei Dong 2021-01-05  529  		mtk_vcodec_debug(inst, "- resolution changed -");
0a438b290ea431 Yunfei Dong 2021-01-05  530  		if (inst->realloc_mv_buf) {
0a438b290ea431 Yunfei Dong 2021-01-05  531  			err = vdec_h264_slice_alloc_mv_buf(inst, &inst->ctx->picinfo);
0a438b290ea431 Yunfei Dong 2021-01-05  532  			inst->realloc_mv_buf = false;
0a438b290ea431 Yunfei Dong 2021-01-05  533  			if (err)
0a438b290ea431 Yunfei Dong 2021-01-05  534  				goto err_free_fb_out;
0a438b290ea431 Yunfei Dong 2021-01-05  535  		}
0a438b290ea431 Yunfei Dong 2021-01-05  536  		inst->resolution_changed = false;
0a438b290ea431 Yunfei Dong 2021-01-05  537  	}
0a438b290ea431 Yunfei Dong 2021-01-05  538  	for (i = 0; i < H264_MAX_MV_NUM; i++) {
0a438b290ea431 Yunfei Dong 2021-01-05  539  		mem = &inst->mv_buf[i];
0a438b290ea431 Yunfei Dong 2021-01-05  540  		inst->vsi->mv_buf_dma[i] = mem->dma_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  541  	}
0a438b290ea431 Yunfei Dong 2021-01-05  542  	inst->vsi->wdma_start_addr = lat_buf->ctx->msg_queue.wdma_addr.dma_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  543  	inst->vsi->wdma_end_addr = lat_buf->ctx->msg_queue.wdma_addr.dma_addr +
0a438b290ea431 Yunfei Dong 2021-01-05  544  		lat_buf->ctx->msg_queue.wdma_addr.size;
0a438b290ea431 Yunfei Dong 2021-01-05  545  	inst->vsi->wdma_err_addr = lat_buf->wdma_err_addr.dma_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  546  	inst->vsi->slice_bc_start_addr = lat_buf->slice_bc_addr.dma_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  547  	inst->vsi->slice_bc_end_addr = lat_buf->slice_bc_addr.dma_addr +
0a438b290ea431 Yunfei Dong 2021-01-05  548  		lat_buf->slice_bc_addr.size;
0a438b290ea431 Yunfei Dong 2021-01-05  549  
0a438b290ea431 Yunfei Dong 2021-01-05  550  	inst->vsi->trans_end = inst->ctx->msg_queue.wdma_rptr_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  551  	inst->vsi->trans_start = inst->ctx->msg_queue.wdma_wptr_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  552  	mtk_vcodec_debug(inst, "lat:trans(0x%llx 0x%llx)err:0x%llx",
0a438b290ea431 Yunfei Dong 2021-01-05  553  		inst->vsi->wdma_start_addr,
0a438b290ea431 Yunfei Dong 2021-01-05  554  		inst->vsi->wdma_end_addr,
0a438b290ea431 Yunfei Dong 2021-01-05  555  		inst->vsi->wdma_err_addr);
0a438b290ea431 Yunfei Dong 2021-01-05  556  
0a438b290ea431 Yunfei Dong 2021-01-05  557  	mtk_vcodec_debug(inst, "slice(0x%llx 0x%llx) rprt((0x%llx 0x%llx))",
0a438b290ea431 Yunfei Dong 2021-01-05  558  		inst->vsi->slice_bc_start_addr,
0a438b290ea431 Yunfei Dong 2021-01-05  559  		inst->vsi->slice_bc_end_addr,
0a438b290ea431 Yunfei Dong 2021-01-05  560  		inst->vsi->trans_start,
0a438b290ea431 Yunfei Dong 2021-01-05  561  		inst->vsi->trans_end);
0a438b290ea431 Yunfei Dong 2021-01-05  562  	err = vpu_dec_start(vpu, data, 2);
0a438b290ea431 Yunfei Dong 2021-01-05  563  	if (err) {
0a438b290ea431 Yunfei Dong 2021-01-05  564  		mtk_vcodec_debug(inst, "lat decode err: %d", err);
0a438b290ea431 Yunfei Dong 2021-01-05  565  		goto err_free_fb_out;
0a438b290ea431 Yunfei Dong 2021-01-05  566  	}
0a438b290ea431 Yunfei Dong 2021-01-05  567  
0a438b290ea431 Yunfei Dong 2021-01-05  568  	if (nal_type == NAL_NON_IDR_SLICE || nal_type == NAL_IDR_SLICE) {
0a438b290ea431 Yunfei Dong 2021-01-05  569  		/* wait decoder done interrupt */
0a438b290ea431 Yunfei Dong 2021-01-05  570  		timeout = mtk_vcodec_wait_for_done_ctx(
0a438b290ea431 Yunfei Dong 2021-01-05  571  			inst->ctx, MTK_INST_IRQ_RECEIVED, WAIT_INTR_TIMEOUT_MS);
0a438b290ea431 Yunfei Dong 2021-01-05  572  		inst->vsi->dec.timeout = !!timeout;
0a438b290ea431 Yunfei Dong 2021-01-05  573  	}

"timeout" not initialized for false path.

0a438b290ea431 Yunfei Dong 2021-01-05  574  	err = vpu_dec_end(vpu);
0a438b290ea431 Yunfei Dong 2021-01-05 @575  	if (err == SLICE_HEADER_FULL || timeout || (err == TRANS_BUFFER_FULL &&
                                                                                ^^^^^^^

0a438b290ea431 Yunfei Dong 2021-01-05  576  		inst->ctx->msg_queue.wdma_rptr_addr ==
0a438b290ea431 Yunfei Dong 2021-01-05  577  		inst->ctx->msg_queue.wdma_wptr_addr)) {
0a438b290ea431 Yunfei Dong 2021-01-05  578  		err = -EINVAL;
0a438b290ea431 Yunfei Dong 2021-01-05  579  		goto err_free_fb_out;
0a438b290ea431 Yunfei Dong 2021-01-05  580  	} else if (err == TRANS_BUFFER_FULL){
0a438b290ea431 Yunfei Dong 2021-01-05  581  		goto err_free_fb_out;
0a438b290ea431 Yunfei Dong 2021-01-05  582  	}
0a438b290ea431 Yunfei Dong 2021-01-05  583  
0a438b290ea431 Yunfei Dong 2021-01-05  584  	share_info->trans_end = inst->ctx->msg_queue.wdma_addr.dma_addr +
0a438b290ea431 Yunfei Dong 2021-01-05  585  		inst->vsi->wdma_end_addr_offset;
0a438b290ea431 Yunfei Dong 2021-01-05  586  	share_info->trans_start = inst->ctx->msg_queue.wdma_wptr_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  587  	share_info->nal_info = inst->vsi->dec.nal_info;
0a438b290ea431 Yunfei Dong 2021-01-05  588  	vdec_msg_queue_update_ube_wptr(&lat_buf->ctx->msg_queue,
0a438b290ea431 Yunfei Dong 2021-01-05  589  		share_info->trans_end);
0a438b290ea431 Yunfei Dong 2021-01-05  590  
0a438b290ea431 Yunfei Dong 2021-01-05  591  	memcpy(&share_info->h264_slice_params, &inst->vsi->h264_slice_params,
0a438b290ea431 Yunfei Dong 2021-01-05  592  		sizeof(share_info->h264_slice_params));
0a438b290ea431 Yunfei Dong 2021-01-05  593  	vdec_msg_queue_buf_to_core(inst->ctx->dev, lat_buf);
0a438b290ea431 Yunfei Dong 2021-01-05  594  	mtk_vcodec_debug(inst, "- NALU[%d] type=%d -\n", inst->num_nalu,
0a438b290ea431 Yunfei Dong 2021-01-05  595  			 nal_type);
0a438b290ea431 Yunfei Dong 2021-01-05  596  	return 0;
0a438b290ea431 Yunfei Dong 2021-01-05  597  
0a438b290ea431 Yunfei Dong 2021-01-05  598  err_free_fb_out:
0a438b290ea431 Yunfei Dong 2021-01-05  599  	if (lat_buf)
0a438b290ea431 Yunfei Dong 2021-01-05  600  		vdec_msg_queue_buf_to_lat(lat_buf);
0a438b290ea431 Yunfei Dong 2021-01-05  601  	mtk_vcodec_err(inst, "- NALU[%d] err=%d -\n", inst->num_nalu, err);
0a438b290ea431 Yunfei Dong 2021-01-05  602  	return err;
0a438b290ea431 Yunfei Dong 2021-01-05  603  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org 
_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: [kbuild] [chrome-os:chromeos-5.4 54/243] drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_lat_if.c:575:34: warning: Uninitialized variable: timeout [uninitvar]
Date: Tue, 20 Apr 2021 11:28:28 +0300	[thread overview]
Message-ID: <20210420082827.GC1959@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 11554 bytes --]

tree:   https://chromium.googlesource.com/chromiumos/third_party/kernel  chromeos-5.4
head:   52d269f32500581166246e0e494b2b62d979dba6
commit: 0a438b290ea431bc87156be5819e9f85fa951240 [54/243] CHROMIUM: media: mtk-vcodec: Add h264 slice api driver for mt8192
compiler: hppa-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_lat_if.c:575:34: warning: Uninitialized variable: timeout [uninitvar]
    if (err == SLICE_HEADER_FULL || timeout || (err == TRANS_BUFFER_FULL &&
                                    ^

vim +575 drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_lat_if.c

0a438b290ea431 Yunfei Dong 2021-01-05  473  static int vdec_h264_slice_decode(void *h_vdec, struct mtk_vcodec_mem *bs,
0a438b290ea431 Yunfei Dong 2021-01-05  474  	struct vdec_fb *fb, bool *res_chg)
0a438b290ea431 Yunfei Dong 2021-01-05  475  {
0a438b290ea431 Yunfei Dong 2021-01-05  476  	struct vdec_h264_slice_inst *inst = h_vdec;
0a438b290ea431 Yunfei Dong 2021-01-05  477  	struct vdec_vpu_inst *vpu = &inst->vpu;
0a438b290ea431 Yunfei Dong 2021-01-05  478  	struct mtk_video_dec_buf *src_buf_info;
0a438b290ea431 Yunfei Dong 2021-01-05  479  	int nal_start_idx, err, timeout, i;
                                                                        ^^^^^^^

0a438b290ea431 Yunfei Dong 2021-01-05  480  	unsigned int nal_type, data[2];
0a438b290ea431 Yunfei Dong 2021-01-05  481  	struct vdec_lat_buf *lat_buf;
0a438b290ea431 Yunfei Dong 2021-01-05  482  	struct vdec_h264_slice_share_info *share_info;
0a438b290ea431 Yunfei Dong 2021-01-05  483  	unsigned char *buf;
0a438b290ea431 Yunfei Dong 2021-01-05  484  	struct mtk_vcodec_mem *mem;
0a438b290ea431 Yunfei Dong 2021-01-05  485  
0a438b290ea431 Yunfei Dong 2021-01-05  486  	mtk_vcodec_debug(inst, "+ [%d] ", ++inst->num_nalu);
0a438b290ea431 Yunfei Dong 2021-01-05  487  
0a438b290ea431 Yunfei Dong 2021-01-05  488  	if (!inst->ctx->msg_queue.init_done) {
0a438b290ea431 Yunfei Dong 2021-01-05  489  		if (vdec_msg_queue_init(inst->ctx, &inst->ctx->msg_queue,
0a438b290ea431 Yunfei Dong 2021-01-05  490  			vdec_h264_slice_core_decode, sizeof(*share_info)))
0a438b290ea431 Yunfei Dong 2021-01-05  491  		return -ENOMEM;
0a438b290ea431 Yunfei Dong 2021-01-05  492  	}
0a438b290ea431 Yunfei Dong 2021-01-05  493  
0a438b290ea431 Yunfei Dong 2021-01-05  494  	/* bs NULL means flush decoder */
0a438b290ea431 Yunfei Dong 2021-01-05  495  	if (!bs) {
0a438b290ea431 Yunfei Dong 2021-01-05  496  		vdec_msg_queue_wait_lat_buf_full(&inst->ctx->msg_queue);
0a438b290ea431 Yunfei Dong 2021-01-05  497  		return vpu_dec_reset(vpu);
0a438b290ea431 Yunfei Dong 2021-01-05  498  	}
0a438b290ea431 Yunfei Dong 2021-01-05  499  
0a438b290ea431 Yunfei Dong 2021-01-05  500  	lat_buf = vdec_msg_queue_get_lat_buf(&inst->ctx->msg_queue);
0a438b290ea431 Yunfei Dong 2021-01-05  501  	if (!lat_buf) {
0a438b290ea431 Yunfei Dong 2021-01-05  502  		mtk_vcodec_err(inst, "failed to get lat buffer");
0a438b290ea431 Yunfei Dong 2021-01-05  503  		return -EINVAL;
0a438b290ea431 Yunfei Dong 2021-01-05  504  	}
0a438b290ea431 Yunfei Dong 2021-01-05  505  	share_info = lat_buf->private_data;
0a438b290ea431 Yunfei Dong 2021-01-05  506  	src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
0a438b290ea431 Yunfei Dong 2021-01-05  507  
0a438b290ea431 Yunfei Dong 2021-01-05  508  	buf = (unsigned char *)bs->va;
0a438b290ea431 Yunfei Dong 2021-01-05  509  	nal_start_idx = mtk_vdec_h264_find_start_code(buf, bs->size);
0a438b290ea431 Yunfei Dong 2021-01-05  510  	if (nal_start_idx < 0) {
0a438b290ea431 Yunfei Dong 2021-01-05  511  		err = -EINVAL;
0a438b290ea431 Yunfei Dong 2021-01-05  512  		goto err_free_fb_out;
0a438b290ea431 Yunfei Dong 2021-01-05  513  	}
0a438b290ea431 Yunfei Dong 2021-01-05  514  
0a438b290ea431 Yunfei Dong 2021-01-05  515  	inst->vsi->dec.nal_info = buf[nal_start_idx];
0a438b290ea431 Yunfei Dong 2021-01-05  516  	nal_type = NAL_TYPE(buf[nal_start_idx]);
0a438b290ea431 Yunfei Dong 2021-01-05  517  	mtk_vcodec_debug(inst, "\n + NALU[%d] type %d +\n", inst->num_nalu,
0a438b290ea431 Yunfei Dong 2021-01-05  518  			 nal_type);
0a438b290ea431 Yunfei Dong 2021-01-05  519  
0a438b290ea431 Yunfei Dong 2021-01-05  520  	inst->vsi->dec.bs_buf_addr = (uint64_t)bs->dma_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  521  	inst->vsi->dec.bs_buf_size = bs->size;
0a438b290ea431 Yunfei Dong 2021-01-05  522  
0a438b290ea431 Yunfei Dong 2021-01-05  523  	v4l2_m2m_buf_copy_metadata(&src_buf_info->m2m_buf.vb,
0a438b290ea431 Yunfei Dong 2021-01-05  524  		&lat_buf->ts_info, true);
0a438b290ea431 Yunfei Dong 2021-01-05  525  
0a438b290ea431 Yunfei Dong 2021-01-05  526  	vdec_h264_slice_fill_decode_parameters(inst, share_info);
0a438b290ea431 Yunfei Dong 2021-01-05  527  	*res_chg = inst->resolution_changed;
0a438b290ea431 Yunfei Dong 2021-01-05  528  	if (inst->resolution_changed) {
0a438b290ea431 Yunfei Dong 2021-01-05  529  		mtk_vcodec_debug(inst, "- resolution changed -");
0a438b290ea431 Yunfei Dong 2021-01-05  530  		if (inst->realloc_mv_buf) {
0a438b290ea431 Yunfei Dong 2021-01-05  531  			err = vdec_h264_slice_alloc_mv_buf(inst, &inst->ctx->picinfo);
0a438b290ea431 Yunfei Dong 2021-01-05  532  			inst->realloc_mv_buf = false;
0a438b290ea431 Yunfei Dong 2021-01-05  533  			if (err)
0a438b290ea431 Yunfei Dong 2021-01-05  534  				goto err_free_fb_out;
0a438b290ea431 Yunfei Dong 2021-01-05  535  		}
0a438b290ea431 Yunfei Dong 2021-01-05  536  		inst->resolution_changed = false;
0a438b290ea431 Yunfei Dong 2021-01-05  537  	}
0a438b290ea431 Yunfei Dong 2021-01-05  538  	for (i = 0; i < H264_MAX_MV_NUM; i++) {
0a438b290ea431 Yunfei Dong 2021-01-05  539  		mem = &inst->mv_buf[i];
0a438b290ea431 Yunfei Dong 2021-01-05  540  		inst->vsi->mv_buf_dma[i] = mem->dma_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  541  	}
0a438b290ea431 Yunfei Dong 2021-01-05  542  	inst->vsi->wdma_start_addr = lat_buf->ctx->msg_queue.wdma_addr.dma_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  543  	inst->vsi->wdma_end_addr = lat_buf->ctx->msg_queue.wdma_addr.dma_addr +
0a438b290ea431 Yunfei Dong 2021-01-05  544  		lat_buf->ctx->msg_queue.wdma_addr.size;
0a438b290ea431 Yunfei Dong 2021-01-05  545  	inst->vsi->wdma_err_addr = lat_buf->wdma_err_addr.dma_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  546  	inst->vsi->slice_bc_start_addr = lat_buf->slice_bc_addr.dma_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  547  	inst->vsi->slice_bc_end_addr = lat_buf->slice_bc_addr.dma_addr +
0a438b290ea431 Yunfei Dong 2021-01-05  548  		lat_buf->slice_bc_addr.size;
0a438b290ea431 Yunfei Dong 2021-01-05  549  
0a438b290ea431 Yunfei Dong 2021-01-05  550  	inst->vsi->trans_end = inst->ctx->msg_queue.wdma_rptr_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  551  	inst->vsi->trans_start = inst->ctx->msg_queue.wdma_wptr_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  552  	mtk_vcodec_debug(inst, "lat:trans(0x%llx 0x%llx)err:0x%llx",
0a438b290ea431 Yunfei Dong 2021-01-05  553  		inst->vsi->wdma_start_addr,
0a438b290ea431 Yunfei Dong 2021-01-05  554  		inst->vsi->wdma_end_addr,
0a438b290ea431 Yunfei Dong 2021-01-05  555  		inst->vsi->wdma_err_addr);
0a438b290ea431 Yunfei Dong 2021-01-05  556  
0a438b290ea431 Yunfei Dong 2021-01-05  557  	mtk_vcodec_debug(inst, "slice(0x%llx 0x%llx) rprt((0x%llx 0x%llx))",
0a438b290ea431 Yunfei Dong 2021-01-05  558  		inst->vsi->slice_bc_start_addr,
0a438b290ea431 Yunfei Dong 2021-01-05  559  		inst->vsi->slice_bc_end_addr,
0a438b290ea431 Yunfei Dong 2021-01-05  560  		inst->vsi->trans_start,
0a438b290ea431 Yunfei Dong 2021-01-05  561  		inst->vsi->trans_end);
0a438b290ea431 Yunfei Dong 2021-01-05  562  	err = vpu_dec_start(vpu, data, 2);
0a438b290ea431 Yunfei Dong 2021-01-05  563  	if (err) {
0a438b290ea431 Yunfei Dong 2021-01-05  564  		mtk_vcodec_debug(inst, "lat decode err: %d", err);
0a438b290ea431 Yunfei Dong 2021-01-05  565  		goto err_free_fb_out;
0a438b290ea431 Yunfei Dong 2021-01-05  566  	}
0a438b290ea431 Yunfei Dong 2021-01-05  567  
0a438b290ea431 Yunfei Dong 2021-01-05  568  	if (nal_type == NAL_NON_IDR_SLICE || nal_type == NAL_IDR_SLICE) {
0a438b290ea431 Yunfei Dong 2021-01-05  569  		/* wait decoder done interrupt */
0a438b290ea431 Yunfei Dong 2021-01-05  570  		timeout = mtk_vcodec_wait_for_done_ctx(
0a438b290ea431 Yunfei Dong 2021-01-05  571  			inst->ctx, MTK_INST_IRQ_RECEIVED, WAIT_INTR_TIMEOUT_MS);
0a438b290ea431 Yunfei Dong 2021-01-05  572  		inst->vsi->dec.timeout = !!timeout;
0a438b290ea431 Yunfei Dong 2021-01-05  573  	}

"timeout" not initialized for false path.

0a438b290ea431 Yunfei Dong 2021-01-05  574  	err = vpu_dec_end(vpu);
0a438b290ea431 Yunfei Dong 2021-01-05 @575  	if (err == SLICE_HEADER_FULL || timeout || (err == TRANS_BUFFER_FULL &&
                                                                                ^^^^^^^

0a438b290ea431 Yunfei Dong 2021-01-05  576  		inst->ctx->msg_queue.wdma_rptr_addr ==
0a438b290ea431 Yunfei Dong 2021-01-05  577  		inst->ctx->msg_queue.wdma_wptr_addr)) {
0a438b290ea431 Yunfei Dong 2021-01-05  578  		err = -EINVAL;
0a438b290ea431 Yunfei Dong 2021-01-05  579  		goto err_free_fb_out;
0a438b290ea431 Yunfei Dong 2021-01-05  580  	} else if (err == TRANS_BUFFER_FULL){
0a438b290ea431 Yunfei Dong 2021-01-05  581  		goto err_free_fb_out;
0a438b290ea431 Yunfei Dong 2021-01-05  582  	}
0a438b290ea431 Yunfei Dong 2021-01-05  583  
0a438b290ea431 Yunfei Dong 2021-01-05  584  	share_info->trans_end = inst->ctx->msg_queue.wdma_addr.dma_addr +
0a438b290ea431 Yunfei Dong 2021-01-05  585  		inst->vsi->wdma_end_addr_offset;
0a438b290ea431 Yunfei Dong 2021-01-05  586  	share_info->trans_start = inst->ctx->msg_queue.wdma_wptr_addr;
0a438b290ea431 Yunfei Dong 2021-01-05  587  	share_info->nal_info = inst->vsi->dec.nal_info;
0a438b290ea431 Yunfei Dong 2021-01-05  588  	vdec_msg_queue_update_ube_wptr(&lat_buf->ctx->msg_queue,
0a438b290ea431 Yunfei Dong 2021-01-05  589  		share_info->trans_end);
0a438b290ea431 Yunfei Dong 2021-01-05  590  
0a438b290ea431 Yunfei Dong 2021-01-05  591  	memcpy(&share_info->h264_slice_params, &inst->vsi->h264_slice_params,
0a438b290ea431 Yunfei Dong 2021-01-05  592  		sizeof(share_info->h264_slice_params));
0a438b290ea431 Yunfei Dong 2021-01-05  593  	vdec_msg_queue_buf_to_core(inst->ctx->dev, lat_buf);
0a438b290ea431 Yunfei Dong 2021-01-05  594  	mtk_vcodec_debug(inst, "- NALU[%d] type=%d -\n", inst->num_nalu,
0a438b290ea431 Yunfei Dong 2021-01-05  595  			 nal_type);
0a438b290ea431 Yunfei Dong 2021-01-05  596  	return 0;
0a438b290ea431 Yunfei Dong 2021-01-05  597  
0a438b290ea431 Yunfei Dong 2021-01-05  598  err_free_fb_out:
0a438b290ea431 Yunfei Dong 2021-01-05  599  	if (lat_buf)
0a438b290ea431 Yunfei Dong 2021-01-05  600  		vdec_msg_queue_buf_to_lat(lat_buf);
0a438b290ea431 Yunfei Dong 2021-01-05  601  	mtk_vcodec_err(inst, "- NALU[%d] err=%d -\n", inst->num_nalu, err);
0a438b290ea431 Yunfei Dong 2021-01-05  602  	return err;
0a438b290ea431 Yunfei Dong 2021-01-05  603  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org 
_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org

             reply	other threads:[~2021-04-20  8:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-20  8:28 Dan Carpenter [this message]
2021-04-20  8:28 ` [kbuild] [chrome-os:chromeos-5.4 54/243] drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_lat_if.c:575:34: warning: Uninitialized variable: timeout [uninitvar] Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2021-04-17  7:16 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210420082827.GC1959@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.