CC: [email protected] TO: [email protected] TO: Guenter Roeck <[email protected]>
tree: https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-5.4 head: 885f54059e5be0bbd38287623c841b1e4db1aa57 commit: 5fa56a01339db0586f27519d81aa226f1bb49f03 [12/43] FROMLIST: media: mtk-vcodec: vdec: support stateless H.264 decoding :::::: branch date: 9 days ago :::::: commit date: 11 days ago config: xtensa-randconfig-m031-20210401 (attached as .config) compiler: xtensa-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:723 vdec_h264_slice_decode() warn: missing error code 'err' vim +/err +723 drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c 5fa56a01339db0 Yunfei Dong 2021-02-26 694 5fa56a01339db0 Yunfei Dong 2021-02-26 695 static int vdec_h264_slice_decode(void *h_vdec, struct mtk_vcodec_mem *bs, 5fa56a01339db0 Yunfei Dong 2021-02-26 696 struct vdec_fb *fb, bool *res_chg) 5fa56a01339db0 Yunfei Dong 2021-02-26 697 { 5fa56a01339db0 Yunfei Dong 2021-02-26 698 struct vdec_h264_slice_inst *inst = 5fa56a01339db0 Yunfei Dong 2021-02-26 699 (struct vdec_h264_slice_inst *)h_vdec; 5fa56a01339db0 Yunfei Dong 2021-02-26 700 struct vdec_vpu_inst *vpu = &inst->vpu; 5fa56a01339db0 Yunfei Dong 2021-02-26 701 struct mtk_video_dec_buf *src_buf_info; 5fa56a01339db0 Yunfei Dong 2021-02-26 702 int nal_start_idx = 0, err = 0; 5fa56a01339db0 Yunfei Dong 2021-02-26 703 uint32_t nal_type, data[2]; 5fa56a01339db0 Yunfei Dong 2021-02-26 704 unsigned char *buf; 5fa56a01339db0 Yunfei Dong 2021-02-26 705 uint64_t y_fb_dma; 5fa56a01339db0 Yunfei Dong 2021-02-26 706 uint64_t c_fb_dma; 5fa56a01339db0 Yunfei Dong 2021-02-26 707 5fa56a01339db0 Yunfei Dong 2021-02-26 708 mtk_vcodec_debug(inst, "+ [%d] FB y_dma=%llx c_dma=%llx va=%p", 5fa56a01339db0 Yunfei Dong 2021-02-26 709 ++inst->num_nalu, y_fb_dma, c_fb_dma, fb); 5fa56a01339db0 Yunfei Dong 2021-02-26 710 5fa56a01339db0 Yunfei Dong 2021-02-26 711 /* bs NULL means flush decoder */ 5fa56a01339db0 Yunfei Dong 2021-02-26 712 if (bs == NULL) 5fa56a01339db0 Yunfei Dong 2021-02-26 713 return vpu_dec_reset(vpu); 5fa56a01339db0 Yunfei Dong 2021-02-26 714 5fa56a01339db0 Yunfei Dong 2021-02-26 715 src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer); 5fa56a01339db0 Yunfei Dong 2021-02-26 716 5fa56a01339db0 Yunfei Dong 2021-02-26 717 y_fb_dma = fb ? (u64)fb->base_y.dma_addr : 0; 5fa56a01339db0 Yunfei Dong 2021-02-26 718 c_fb_dma = fb ? (u64)fb->base_c.dma_addr : 0; 5fa56a01339db0 Yunfei Dong 2021-02-26 719 5fa56a01339db0 Yunfei Dong 2021-02-26 720 buf = (unsigned char *)bs->va; 5fa56a01339db0 Yunfei Dong 2021-02-26 721 nal_start_idx = find_start_code(buf, bs->size); 5fa56a01339db0 Yunfei Dong 2021-02-26 722 if (nal_start_idx < 0) 5fa56a01339db0 Yunfei Dong 2021-02-26 @723 goto err_free_fb_out; 5fa56a01339db0 Yunfei Dong 2021-02-26 724 5fa56a01339db0 Yunfei Dong 2021-02-26 725 data[0] = bs->size; 5fa56a01339db0 Yunfei Dong 2021-02-26 726 data[1] = buf[nal_start_idx]; 5fa56a01339db0 Yunfei Dong 2021-02-26 727 nal_type = NAL_TYPE(buf[nal_start_idx]); 5fa56a01339db0 Yunfei Dong 2021-02-26 728 mtk_vcodec_debug(inst, "\n + NALU[%d] type %d +\n", inst->num_nalu, 5fa56a01339db0 Yunfei Dong 2021-02-26 729 nal_type); 5fa56a01339db0 Yunfei Dong 2021-02-26 730 5fa56a01339db0 Yunfei Dong 2021-02-26 731 inst->vsi_ctx.dec.bs_dma = (uint64_t)bs->dma_addr; 5fa56a01339db0 Yunfei Dong 2021-02-26 732 inst->vsi_ctx.dec.y_fb_dma = y_fb_dma; 5fa56a01339db0 Yunfei Dong 2021-02-26 733 inst->vsi_ctx.dec.c_fb_dma = c_fb_dma; 5fa56a01339db0 Yunfei Dong 2021-02-26 734 inst->vsi_ctx.dec.vdec_fb_va = (u64)(uintptr_t)fb; 5fa56a01339db0 Yunfei Dong 2021-02-26 735 5fa56a01339db0 Yunfei Dong 2021-02-26 736 get_vdec_decode_parameters(inst); 5fa56a01339db0 Yunfei Dong 2021-02-26 737 *res_chg = inst->vsi_ctx.dec.resolution_changed; 5fa56a01339db0 Yunfei Dong 2021-02-26 738 if (*res_chg) { 5fa56a01339db0 Yunfei Dong 2021-02-26 739 mtk_vcodec_debug(inst, "- resolution changed -"); 5fa56a01339db0 Yunfei Dong 2021-02-26 740 if (inst->vsi_ctx.dec.realloc_mv_buf) { 5fa56a01339db0 Yunfei Dong 2021-02-26 741 err = alloc_mv_buf(inst, &(inst->ctx->picinfo)); 5fa56a01339db0 Yunfei Dong 2021-02-26 742 inst->vsi_ctx.dec.realloc_mv_buf = false; 5fa56a01339db0 Yunfei Dong 2021-02-26 743 if (err) 5fa56a01339db0 Yunfei Dong 2021-02-26 744 goto err_free_fb_out; 5fa56a01339db0 Yunfei Dong 2021-02-26 745 } 5fa56a01339db0 Yunfei Dong 2021-02-26 746 *res_chg = false; 5fa56a01339db0 Yunfei Dong 2021-02-26 747 } 5fa56a01339db0 Yunfei Dong 2021-02-26 748 5fa56a01339db0 Yunfei Dong 2021-02-26 749 memcpy(inst->vpu.vsi, &inst->vsi_ctx, sizeof(inst->vsi_ctx)); 5fa56a01339db0 Yunfei Dong 2021-02-26 750 err = vpu_dec_start(vpu, data, 2); 5fa56a01339db0 Yunfei Dong 2021-02-26 751 if (err) 5fa56a01339db0 Yunfei Dong 2021-02-26 752 goto err_free_fb_out; 5fa56a01339db0 Yunfei Dong 2021-02-26 753 5fa56a01339db0 Yunfei Dong 2021-02-26 754 if (nal_type == NAL_NON_IDR_SLICE || nal_type == NAL_IDR_SLICE) { 5fa56a01339db0 Yunfei Dong 2021-02-26 755 /* wait decoder done interrupt */ 5fa56a01339db0 Yunfei Dong 2021-02-26 756 err = mtk_vcodec_wait_for_done_ctx(inst->ctx, 5fa56a01339db0 Yunfei Dong 2021-02-26 757 MTK_INST_IRQ_RECEIVED, 5fa56a01339db0 Yunfei Dong 2021-02-26 758 WAIT_INTR_TIMEOUT_MS); 5fa56a01339db0 Yunfei Dong 2021-02-26 759 if (err) 5fa56a01339db0 Yunfei Dong 2021-02-26 760 goto err_free_fb_out; 5fa56a01339db0 Yunfei Dong 2021-02-26 761 5fa56a01339db0 Yunfei Dong 2021-02-26 762 vpu_dec_end(vpu); 5fa56a01339db0 Yunfei Dong 2021-02-26 763 } 5fa56a01339db0 Yunfei Dong 2021-02-26 764 5fa56a01339db0 Yunfei Dong 2021-02-26 765 memcpy(&inst->vsi_ctx, inst->vpu.vsi, sizeof(inst->vsi_ctx)); 5fa56a01339db0 Yunfei Dong 2021-02-26 766 mtk_vcodec_debug(inst, "\n - NALU[%d] type=%d -\n", inst->num_nalu, 5fa56a01339db0 Yunfei Dong 2021-02-26 767 nal_type); 5fa56a01339db0 Yunfei Dong 2021-02-26 768 return 0; 5fa56a01339db0 Yunfei Dong 2021-02-26 769 5fa56a01339db0 Yunfei Dong 2021-02-26 770 err_free_fb_out: 5fa56a01339db0 Yunfei Dong 2021-02-26 771 mtk_vcodec_err(inst, "\n - NALU[%d] err=%d -\n", inst->num_nalu, err); 5fa56a01339db0 Yunfei Dong 2021-02-26 772 return err; 5fa56a01339db0 Yunfei Dong 2021-02-26 773 } 5fa56a01339db0 Yunfei Dong 2021-02-26 774 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
