2023-01-03 07:33:13

by Ming Qian

[permalink] [raw]
Subject: [PATCH 1/3] media: venus: adapt headers only flag for V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE

when V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE is chosen,
the first buffer only contains stream header,
so apply the flag V4L2_BUF_FLAG_HEADERS_ONLY

Signed-off-by: Ming Qian <[email protected]>
---
drivers/media/platform/qcom/venus/venc.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c
index cdb12546c4fa..33c8e4329f6e 100644
--- a/drivers/media/platform/qcom/venus/venc.c
+++ b/drivers/media/platform/qcom/venus/venc.c
@@ -1260,6 +1260,9 @@ static void venc_buf_done(struct venus_inst *inst, unsigned int buf_type,
vb->planes[0].data_offset = data_offset;
vb->timestamp = timestamp_us * NSEC_PER_USEC;
vbuf->sequence = inst->sequence_cap++;
+ if (inst->controls.enc.header_mode == V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE &&
+ !vbuf->sequence)
+ vbuf->flags |= V4L2_BUF_FLAG_HEADERS_ONLY;
} else {
vbuf->sequence = inst->sequence_out++;
}
--
2.38.1


2023-01-03 09:22:14

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH 1/3] media: venus: adapt headers only flag for V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE

Hi Ming,

I love your patch! Yet something to improve:

[auto build test ERROR on media-tree/master]
[also build test ERROR on linus/master v6.2-rc2 next-20221226]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Ming-Qian/media-s5p-mfc-adapt-headers-only-flag-for-V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE/20230103-151825
base: git://linuxtv.org/media_tree.git master
patch link: https://lore.kernel.org/r/20230103071551.17775-1-ming.qian%40nxp.com
patch subject: [PATCH 1/3] media: venus: adapt headers only flag for V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE
config: m68k-allmodconfig
compiler: m68k-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/70cdada277a04c9de92e7d09ebe0e6d0d6499da4
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Ming-Qian/media-s5p-mfc-adapt-headers-only-flag-for-V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE/20230103-151825
git checkout 70cdada277a04c9de92e7d09ebe0e6d0d6499da4
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash drivers/media/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

drivers/media/platform/qcom/venus/venc.c: In function 'venc_buf_done':
>> drivers/media/platform/qcom/venus/venc.c:1265:40: error: 'V4L2_BUF_FLAG_HEADERS_ONLY' undeclared (first use in this function); did you mean 'V4L2_CTRL_FLAG_READ_ONLY'?
1265 | vbuf->flags |= V4L2_BUF_FLAG_HEADERS_ONLY;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| V4L2_CTRL_FLAG_READ_ONLY
drivers/media/platform/qcom/venus/venc.c:1265:40: note: each undeclared identifier is reported only once for each function it appears in


vim +1265 drivers/media/platform/qcom/venus/venc.c

1235
1236 static void venc_buf_done(struct venus_inst *inst, unsigned int buf_type,
1237 u32 tag, u32 bytesused, u32 data_offset, u32 flags,
1238 u32 hfi_flags, u64 timestamp_us)
1239 {
1240 struct vb2_v4l2_buffer *vbuf;
1241 struct vb2_buffer *vb;
1242 unsigned int type;
1243
1244 venc_pm_touch(inst);
1245
1246 if (buf_type == HFI_BUFFER_INPUT)
1247 type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
1248 else
1249 type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
1250
1251 vbuf = venus_helper_find_buf(inst, type, tag);
1252 if (!vbuf)
1253 return;
1254
1255 vbuf->flags = flags;
1256
1257 if (type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
1258 vb = &vbuf->vb2_buf;
1259 vb2_set_plane_payload(vb, 0, bytesused + data_offset);
1260 vb->planes[0].data_offset = data_offset;
1261 vb->timestamp = timestamp_us * NSEC_PER_USEC;
1262 vbuf->sequence = inst->sequence_cap++;
1263 if (inst->controls.enc.header_mode == V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE &&
1264 !vbuf->sequence)
> 1265 vbuf->flags |= V4L2_BUF_FLAG_HEADERS_ONLY;
1266 } else {
1267 vbuf->sequence = inst->sequence_out++;
1268 }
1269
1270 v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_DONE);
1271 }
1272

--
0-DAY CI Kernel Test Service
https://01.org/lkp


Attachments:
(No filename) (3.86 kB)
config (284.24 kB)
Download all attachments