[PATCH] media: mtk-vcodec: vdec: Reduce padding in VIDIOC_TRY_FMT

kernel test robot lkp at intel.com
Wed Mar 31 08:17:30 BST 2021


Hi Fritz,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on linux/master linus/master v5.12-rc5 next-20210330]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Fritz-Koenig/media-mtk-vcodec-vdec-Reduce-padding-in-VIDIOC_TRY_FMT/20210331-061702
base:   git://linuxtv.org/media_tree.git master
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/70ddfb8b962ccf027d02fdb4502452f8996bb25f
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Fritz-Koenig/media-mtk-vcodec-vdec-Reduce-padding-in-VIDIOC_TRY_FMT/20210331-061702
        git checkout 70ddfb8b962ccf027d02fdb4502452f8996bb25f
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

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

All errors (new ones prefixed by >>):

   drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c: In function 'vidioc_try_fmt':
>> drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c:680:17: error: 'struct mtk_vcodec_dev' has no member named 'vdec_pdata'; did you mean 'venc_pdata'?
     680 |   if (ctx->dev->vdec_pdata->uses_stateless_api ||
         |                 ^~~~~~~~~~
         |                 venc_pdata


vim +680 drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c

   655	
   656	static int vidioc_try_fmt(struct v4l2_format *f, void *priv,
   657				  const struct mtk_video_fmt *fmt)
   658	{
   659		struct v4l2_pix_format_mplane *pix_fmt_mp = &f->fmt.pix_mp;
   660	
   661		pix_fmt_mp->field = V4L2_FIELD_NONE;
   662	
   663		if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
   664			pix_fmt_mp->num_planes = 1;
   665			pix_fmt_mp->plane_fmt[0].bytesperline = 0;
   666		} else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
   667			int tmp_w, tmp_h;
   668			struct mtk_vcodec_ctx *ctx = fh_to_ctx(priv);
   669	
   670			pix_fmt_mp->height = clamp(pix_fmt_mp->height,
   671						MTK_VDEC_MIN_H,
   672						MTK_VDEC_MAX_H);
   673			pix_fmt_mp->width = clamp(pix_fmt_mp->width,
   674						MTK_VDEC_MIN_W,
   675						MTK_VDEC_MAX_W);
   676	
   677			tmp_w = pix_fmt_mp->width;
   678			tmp_h = pix_fmt_mp->height;
   679	
 > 680			if (ctx->dev->vdec_pdata->uses_stateless_api ||
   681				ctx->state >= MTK_STATE_HEADER) {
   682				v4l_bound_align_image(&pix_fmt_mp->width,
   683							MTK_VDEC_MIN_W,
   684							MTK_VDEC_MAX_W, 4,
   685							&pix_fmt_mp->height,
   686							MTK_VDEC_MIN_H,
   687							MTK_VDEC_MAX_H, 5, 6);
   688	
   689				if (pix_fmt_mp->width < tmp_w &&
   690					(pix_fmt_mp->width + 16) <= MTK_VDEC_MAX_W)
   691					pix_fmt_mp->width += 16;
   692				if (pix_fmt_mp->height < tmp_h &&
   693					(pix_fmt_mp->height + 32) <= MTK_VDEC_MAX_H)
   694					pix_fmt_mp->height += 32;
   695			} else {
   696			/*
   697			 * Find next closer width align 64, height align 64, size align
   698			 * 64 rectangle
   699			 * Note: This only get default value, the real HW needed value
   700			 *       only available when ctx in MTK_STATE_HEADER state
   701			 */
   702				v4l_bound_align_image(&pix_fmt_mp->width,
   703							MTK_VDEC_MIN_W,
   704							MTK_VDEC_MAX_W, 6,
   705							&pix_fmt_mp->height,
   706							MTK_VDEC_MIN_H,
   707							MTK_VDEC_MAX_H, 6, 9);
   708	
   709				if (pix_fmt_mp->width < tmp_w &&
   710					(pix_fmt_mp->width + 64) <= MTK_VDEC_MAX_W)
   711					pix_fmt_mp->width += 64;
   712				if (pix_fmt_mp->height < tmp_h &&
   713					(pix_fmt_mp->height + 64) <= MTK_VDEC_MAX_H)
   714					pix_fmt_mp->height += 64;
   715			}
   716	
   717			mtk_v4l2_debug(0,
   718				"before resize width=%d, height=%d, after resize width=%d, height=%d, sizeimage=%d",
   719				tmp_w, tmp_h, pix_fmt_mp->width,
   720				pix_fmt_mp->height,
   721				pix_fmt_mp->width * pix_fmt_mp->height);
   722	
   723			pix_fmt_mp->num_planes = fmt->num_planes;
   724			pix_fmt_mp->plane_fmt[0].sizeimage =
   725					pix_fmt_mp->width * pix_fmt_mp->height;
   726			pix_fmt_mp->plane_fmt[0].bytesperline = pix_fmt_mp->width;
   727	
   728			if (pix_fmt_mp->num_planes == 2) {
   729				pix_fmt_mp->plane_fmt[1].sizeimage =
   730					(pix_fmt_mp->width * pix_fmt_mp->height) / 2;
   731				pix_fmt_mp->plane_fmt[1].bytesperline =
   732					pix_fmt_mp->width;
   733			}
   734		}
   735	
   736		pix_fmt_mp->flags = 0;
   737		return 0;
   738	}
   739	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 78510 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-mediatek/attachments/20210331/66fd17f5/attachment-0001.gz>


More information about the Linux-mediatek mailing list