:::::: :::::: Manual check reason: "low confidence static check warning: drivers/media/platform/qcom/venus/venc.c:807:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]" ::::::
CC: [email protected] CC: [email protected] BCC: [email protected] CC: [email protected] TO: Stanimir Varbanov <[email protected]> CC: Mauro Carvalho Chehab <[email protected]> CC: [email protected] tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 03c765b0e3b4cb5063276b086c76f7a612856a9a commit: f7a3d3dc5831df6f898a5ae2a6ea1d221ea95c8a media: venus: venc: Add support for intra-refresh period date: 11 months ago :::::: branch date: 7 hours ago :::::: commit date: 11 months ago config: arm-randconfig-c002-20220531 (https://download.01.org/0day-ci/archive/20220627/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c825abd6b0198fb088d9752f556a70705bc99dfd) 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 # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f7a3d3dc5831df6f898a5ae2a6ea1d221ea95c8a git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout f7a3d3dc5831df6f898a5ae2a6ea1d221ea95c8a # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) status |= si21_writeregs(state, PLL_DIVISOR_REG, ®s[0], 0x04); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/dvb-frontends/si21xx.c:830:2: note: Value stored to 'status' is never read status |= si21_writeregs(state, PLL_DIVISOR_REG, ®s[0], 0x04); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 3 warnings (1 in non-user code, 2 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. drivers/media/dvb-frontends/stv0900_sw.c:1978:4: warning: Value stored to 'lock' is never read [clang-analyzer-deadcode.DeadStores] lock = TRUE; ^ drivers/media/dvb-frontends/stv0900_sw.c:1978:4: note: Value stored to 'lock' is never read drivers/media/dvb-frontends/stv0900_sw.c:1993:4: warning: Value stored to 'lock' is never read [clang-analyzer-deadcode.DeadStores] lock = FALSE; ^ drivers/media/dvb-frontends/stv0900_sw.c:1993:4: note: Value stored to 'lock' is never read Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. drivers/md/dm-kcopyd.c:246:10: warning: Access to field 'next' results in a dereference of a null pointer (loaded from variable 'pl') [clang-analyzer-core.NullDereference] next = pl->next; ^ drivers/md/dm-kcopyd.c:913:6: note: Assuming 'kc' is non-null if (!kc) ^~~ drivers/md/dm-kcopyd.c:913:2: note: Taking false branch if (!kc) ^ drivers/md/dm-kcopyd.c:916:2: note: Loop condition is false. Exiting loop spin_lock_init(&kc->job_lock); ^ include/linux/spinlock.h:344:34: note: expanded from macro 'spin_lock_init' # define spin_lock_init(_lock) \ ^ drivers/md/dm-kcopyd.c:924:6: note: Assuming 'r' is 0 if (r) ^ drivers/md/dm-kcopyd.c:924:2: note: Taking false branch if (r) ^ drivers/md/dm-kcopyd.c:927:2: note: Loop condition is false. Exiting loop INIT_WORK(&kc->kcopyd_work, do_work); ^ include/linux/workqueue.h:250:2: note: expanded from macro 'INIT_WORK' __INIT_WORK((_work), (_func), 0) ^ include/linux/workqueue.h:241:2: note: expanded from macro '__INIT_WORK' do { \ ^ drivers/md/dm-kcopyd.c:929:6: note: Assuming field 'kcopyd_wq' is non-null if (!kc->kcopyd_wq) { ^~~~~~~~~~~~~~ drivers/md/dm-kcopyd.c:929:2: note: Taking false branch if (!kc->kcopyd_wq) { ^ drivers/md/dm-kcopyd.c:939:6: note: Calling 'client_reserve_pages' r = client_reserve_pages(kc, reserve_pages); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/md/dm-kcopyd.c:309:20: note: 'pl' initialized to a null pointer value struct page_list *pl = NULL, *next; ^~ drivers/md/dm-kcopyd.c:311:14: note: Assuming 'i' is >= 'nr_pages' for (i = 0; i < nr_pages; i++) { ^~~~~~~~~~~~ drivers/md/dm-kcopyd.c:311:2: note: Loop condition is false. Execution continues on line 322 for (i = 0; i < nr_pages; i++) { ^ drivers/md/dm-kcopyd.c:323:23: note: Passing null pointer value via 2nd parameter 'pl' kcopyd_put_pages(kc, pl); ^~ drivers/md/dm-kcopyd.c:323:2: note: Calling 'kcopyd_put_pages' kcopyd_put_pages(kc, pl); ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/md/dm-kcopyd.c:246:10: note: Access to field 'next' results in a dereference of a null pointer (loaded from variable 'pl') next = pl->next; ^~ Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. >> drivers/media/platform/qcom/venus/venc.c:807:3: warning: Value stored to >> 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = hfi_session_set_property(inst, ptype, &en); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/qcom/venus/venc.c:807:3: note: Value stored to 'ret' is never read ret = hfi_session_set_property(inst, ptype, &en); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. drivers/media/test-drivers/vidtv/vidtv_bridge.c:123:6: warning: Value stored to 'mux_buf_sz' during its initialization is never read [clang-analyzer-deadcode.DeadStores] u32 mux_buf_sz = mux_buf_sz_pkts * TS_PACKET_LEN; ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/test-drivers/vidtv/vidtv_bridge.c:123:6: note: Value stored to 'mux_buf_sz' during its initialization is never read u32 mux_buf_sz = mux_buf_sz_pkts * TS_PACKET_LEN; ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 3 warnings (1 in non-user code, 2 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. drivers/media/test-drivers/vidtv/vidtv_s302m.c:383:3: warning: Value stored to 'nbytes_per_unit' is never read [clang-analyzer-deadcode.DeadStores] nbytes_per_unit = 0; ^ ~ drivers/media/test-drivers/vidtv/vidtv_s302m.c:383:3: note: Value stored to 'nbytes_per_unit' is never read nbytes_per_unit = 0; ^ ~ 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. fs/btrfs/zstd.c:440:4: warning: Value stored to 'tot_out' is never read [clang-analyzer-deadcode.DeadStores] tot_out += workspace->out_buf.pos; ^ ~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/zstd.c:440:4: note: Value stored to 'tot_out' is never read tot_out += workspace->out_buf.pos; ^ ~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/zstd.c:502:4: warning: Value stored to 'tot_out' is never read [clang-analyzer-deadcode.DeadStores] tot_out += workspace->out_buf.pos; ^ ~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/zstd.c:502:4: note: Value stored to 'tot_out' is never read tot_out += workspace->out_buf.pos; ^ ~~~~~~~~~~~~~~~~~~~~~~ Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. fs/btrfs/compression.c:254:2: warning: Value stored to 'index' is never read [clang-analyzer-deadcode.DeadStores] index = 0; ^ ~ fs/btrfs/compression.c:254:2: note: Value stored to 'index' is never read index = 0; ^ ~ fs/btrfs/compression.c:364:2: warning: Value stored to 'index' is never read [clang-analyzer-deadcode.DeadStores] index = 0; ^ ~ fs/btrfs/compression.c:364:2: note: Value stored to 'index' is never read index = 0; ^ ~ fs/btrfs/compression.c:732:2: warning: Value stored to 'faili' is never read [clang-analyzer-deadcode.DeadStores] faili = nr_pages - 1; ^ ~~~~~~~~~~~~ fs/btrfs/compression.c:732:2: note: Value stored to 'faili' is never read faili = nr_pages - 1; ^ ~~~~~~~~~~~~ fs/btrfs/compression.c:892:2: warning: 1st function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage] kfree(workspace->bucket); ^ fs/btrfs/compression.c:1669:30: note: Calling 'get_workspace' struct list_head *ws_list = get_workspace(0, 0); ^~~~~~~~~~~~~~~~~~~ fs/btrfs/compression.c:1095:2: note: Control jumps to 'case BTRFS_COMPRESS_NONE:' at line 1096 switch (type) { ^ fs/btrfs/compression.c:1096:35: note: Calling 'btrfs_get_workspace' case BTRFS_COMPRESS_NONE: return btrfs_get_workspace(type, level); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/compression.c:1035:6: note: Assuming the condition is false if (!list_empty(idle_ws)) { ^~~~~~~~~~~~~~~~~~~~ fs/btrfs/compression.c:1035:2: note: Taking false branch if (!list_empty(idle_ws)) { ^ fs/btrfs/compression.c:1043:6: note: Assuming the condition is false if (atomic_read(total_ws) > cpus) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/compression.c:1043:2: note: Taking false branch if (atomic_read(total_ws) > cpus) { ^ fs/btrfs/compression.c:1062:14: note: Calling 'alloc_workspace' -- ^ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^ drivers/soundwire/stream.c:844:2: note: Loop condition is false. Exiting loop list_for_each_entry(m_rt, &stream->master_list, stream_node) { ^ include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^ include/linux/list.h:522:2: note: expanded from macro 'list_first_entry' list_entry((ptr)->next, type, member) ^ include/linux/list.h:511:2: note: expanded from macro 'list_entry' container_of(ptr, type, member) ^ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert' do { \ ^ drivers/soundwire/stream.c:844:2: note: Loop condition is true. Entering loop body list_for_each_entry(m_rt, &stream->master_list, stream_node) { ^ include/linux/list.h:628:2: note: expanded from macro 'list_for_each_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^ drivers/soundwire/stream.c:846:22: note: Field 'msg' is non-null if (bus->defer_msg.msg) { ^ drivers/soundwire/stream.c:846:3: note: Taking true branch if (bus->defer_msg.msg) { ^ drivers/soundwire/stream.c:847:10: note: Use of memory after it is freed kfree(bus->defer_msg.msg->buf); ^~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. >> drivers/media/platform/qcom/venus/venc.c:807:3: warning: Value stored to >> 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = hfi_session_set_property(inst, ptype, &en); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/platform/qcom/venus/venc.c:807:3: note: Value stored to 'ret' is never read ret = hfi_session_set_property(inst, ptype, &en); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. drivers/media/test-drivers/vidtv/vidtv_bridge.c:123:6: warning: Value stored to 'mux_buf_sz' during its initialization is never read [clang-analyzer-deadcode.DeadStores] u32 mux_buf_sz = mux_buf_sz_pkts * TS_PACKET_LEN; ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/test-drivers/vidtv/vidtv_bridge.c:123:6: note: Value stored to 'mux_buf_sz' during its initialization is never read u32 mux_buf_sz = mux_buf_sz_pkts * TS_PACKET_LEN; ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 3 warnings (1 in non-user code, 2 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. drivers/media/test-drivers/vidtv/vidtv_s302m.c:383:3: warning: Value stored to 'nbytes_per_unit' is never read [clang-analyzer-deadcode.DeadStores] nbytes_per_unit = 0; ^ ~ drivers/media/test-drivers/vidtv/vidtv_s302m.c:383:3: note: Value stored to 'nbytes_per_unit' is never read nbytes_per_unit = 0; ^ ~ 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. drivers/hid/hid-steam.c:246:15: warning: The left operand of '!=' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] if (reply[0] != 0xae || reply[1] != 0x15 || reply[2] != 0x01) ^ drivers/hid/hid-steam.c:564:31: note: Left side of '&&' is false struct steam_device *steam = container_of(work, struct steam_device, ^ include/linux/kernel.h:495:61: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ drivers/hid/hid-steam.c:564:31: note: Taking false branch struct steam_device *steam = container_of(work, struct steam_device, ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^ drivers/hid/hid-steam.c:564:31: note: Loop condition is false. Exiting loop struct steam_device *steam = container_of(work, struct steam_device, ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert' do { \ ^ drivers/hid/hid-steam.c:570:2: note: Loop condition is false. Exiting loop spin_lock_irqsave(&steam->lock, flags); ^ include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave' raw_spin_lock_irqsave(spinlock_check(lock), flags); \ ^ include/linux/spinlock.h:274:3: note: expanded from macro 'raw_spin_lock_irqsave' _raw_spin_lock_irqsave(lock, flags); \ ^ include/linux/spinlock_api_up.h:68:45: note: expanded from macro '_raw_spin_lock_irqsave' #define _raw_spin_lock_irqsave(lock, flags) __LOCK_IRQSAVE(lock, flags) ^ include/linux/spinlock_api_up.h:40:8: note: expanded from macro '__LOCK_IRQSAVE' vim +/ret +807 drivers/media/platform/qcom/venus/venc.c aaaa93eda64b00 Stanimir Varbanov 2017-06-15 540 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 541 static int venc_set_properties(struct venus_inst *inst) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 542 { aaaa93eda64b00 Stanimir Varbanov 2017-06-15 543 struct venc_controls *ctr = &inst->controls.enc; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 544 struct hfi_intra_period intra_period; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 545 struct hfi_framerate frate; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 546 struct hfi_bitrate brate; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 547 struct hfi_idr_period idrp; 2123cbd687ca0c Kelvin Lawson 2018-11-29 548 struct hfi_quantization quant; 2123cbd687ca0c Kelvin Lawson 2018-11-29 549 struct hfi_quantization_range quant_range; 002c22bd360e07 Dikshita Agarwal 2021-01-08 550 struct hfi_enable en; f2fb3f02abe2e6 Dikshita Agarwal 2021-03-24 551 struct hfi_ltr_mode ltr_mode; f7a3d3dc5831df Stanimir Varbanov 2021-06-22 552 struct hfi_intra_refresh intra_refresh = {}; 435c53c3698f41 Stanimir Varbanov 2020-09-08 553 u32 ptype, rate_control, bitrate; a7a20f721e812a Stanimir Varbanov 2020-10-27 554 u32 profile, level; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 555 int ret; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 556 1ad175952bbcaf Dikshita Agarwal 2021-04-02 557 ret = venus_helper_set_work_mode(inst); 01165b8484973d Stanimir Varbanov 2018-07-05 558 if (ret) 01165b8484973d Stanimir Varbanov 2018-07-05 559 return ret; 01165b8484973d Stanimir Varbanov 2018-07-05 560 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 561 ptype = HFI_PROPERTY_CONFIG_FRAME_RATE; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 562 frate.buffer_type = HFI_BUFFER_OUTPUT; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 563 frate.framerate = inst->fps * (1 << 16); aaaa93eda64b00 Stanimir Varbanov 2017-06-15 564 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 565 ret = hfi_session_set_property(inst, ptype, &frate); aaaa93eda64b00 Stanimir Varbanov 2017-06-15 566 if (ret) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 567 return ret; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 568 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 569 if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264) { aaaa93eda64b00 Stanimir Varbanov 2017-06-15 570 struct hfi_h264_vui_timing_info info; a7837e11679e01 Loic Poulain 2017-11-24 571 struct hfi_h264_entropy_control entropy; f7d12fea16cbcc Loic Poulain 2017-11-24 572 struct hfi_h264_db_control deblock; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 573 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 574 ptype = HFI_PROPERTY_PARAM_VENC_H264_VUI_TIMING_INFO; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 575 info.enable = 1; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 576 info.fixed_framerate = 1; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 577 info.time_scale = NSEC_PER_SEC; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 578 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 579 ret = hfi_session_set_property(inst, ptype, &info); aaaa93eda64b00 Stanimir Varbanov 2017-06-15 580 if (ret) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 581 return ret; a7837e11679e01 Loic Poulain 2017-11-24 582 a7837e11679e01 Loic Poulain 2017-11-24 583 ptype = HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL; a7837e11679e01 Loic Poulain 2017-11-24 584 entropy.entropy_mode = venc_v4l2_to_hfi( a7837e11679e01 Loic Poulain 2017-11-24 585 V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, a7837e11679e01 Loic Poulain 2017-11-24 586 ctr->h264_entropy_mode); a7837e11679e01 Loic Poulain 2017-11-24 587 entropy.cabac_model = HFI_H264_CABAC_MODEL_0; a7837e11679e01 Loic Poulain 2017-11-24 588 a7837e11679e01 Loic Poulain 2017-11-24 589 ret = hfi_session_set_property(inst, ptype, &entropy); a7837e11679e01 Loic Poulain 2017-11-24 590 if (ret) a7837e11679e01 Loic Poulain 2017-11-24 591 return ret; f7d12fea16cbcc Loic Poulain 2017-11-24 592 f7d12fea16cbcc Loic Poulain 2017-11-24 593 ptype = HFI_PROPERTY_PARAM_VENC_H264_DEBLOCK_CONTROL; f7d12fea16cbcc Loic Poulain 2017-11-24 594 deblock.mode = venc_v4l2_to_hfi( f7d12fea16cbcc Loic Poulain 2017-11-24 595 V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, f7d12fea16cbcc Loic Poulain 2017-11-24 596 ctr->h264_loop_filter_mode); f7d12fea16cbcc Loic Poulain 2017-11-24 597 deblock.slice_alpha_offset = ctr->h264_loop_filter_alpha; f7d12fea16cbcc Loic Poulain 2017-11-24 598 deblock.slice_beta_offset = ctr->h264_loop_filter_beta; f7d12fea16cbcc Loic Poulain 2017-11-24 599 f7d12fea16cbcc Loic Poulain 2017-11-24 600 ret = hfi_session_set_property(inst, ptype, &deblock); f7d12fea16cbcc Loic Poulain 2017-11-24 601 if (ret) f7d12fea16cbcc Loic Poulain 2017-11-24 602 return ret; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 603 } aaaa93eda64b00 Stanimir Varbanov 2017-06-15 604 f0ddb4e9911665 Dikshita Agarwal 2020-12-16 605 if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264 || f0ddb4e9911665 Dikshita Agarwal 2020-12-16 606 inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) { 8fc58186bb41ff Stanimir Varbanov 2017-12-01 607 /* IDR periodicity, n: 8fc58186bb41ff Stanimir Varbanov 2017-12-01 608 * n = 0 - only the first I-frame is IDR frame 8fc58186bb41ff Stanimir Varbanov 2017-12-01 609 * n = 1 - all I-frames will be IDR frames 8fc58186bb41ff Stanimir Varbanov 2017-12-01 610 * n > 1 - every n-th I-frame will be IDR frame 8fc58186bb41ff Stanimir Varbanov 2017-12-01 611 */ aaaa93eda64b00 Stanimir Varbanov 2017-06-15 612 ptype = HFI_PROPERTY_CONFIG_VENC_IDR_PERIOD; 8fc58186bb41ff Stanimir Varbanov 2017-12-01 613 idrp.idr_period = 0; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 614 ret = hfi_session_set_property(inst, ptype, &idrp); aaaa93eda64b00 Stanimir Varbanov 2017-06-15 615 if (ret) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 616 return ret; f0ddb4e9911665 Dikshita Agarwal 2020-12-16 617 } aaaa93eda64b00 Stanimir Varbanov 2017-06-15 618 9172652d72f8e9 Stanimir Varbanov 2020-04-23 619 if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) { 9172652d72f8e9 Stanimir Varbanov 2020-04-23 620 struct hfi_hdr10_pq_sei hdr10; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 621 unsigned int c; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 622 9172652d72f8e9 Stanimir Varbanov 2020-04-23 623 ptype = HFI_PROPERTY_PARAM_VENC_HDR10_PQ_SEI; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 624 9172652d72f8e9 Stanimir Varbanov 2020-04-23 625 for (c = 0; c < 3; c++) { 9172652d72f8e9 Stanimir Varbanov 2020-04-23 626 hdr10.mastering.display_primaries_x[c] = 9172652d72f8e9 Stanimir Varbanov 2020-04-23 627 ctr->mastering.display_primaries_x[c]; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 628 hdr10.mastering.display_primaries_y[c] = 9172652d72f8e9 Stanimir Varbanov 2020-04-23 629 ctr->mastering.display_primaries_y[c]; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 630 } 9172652d72f8e9 Stanimir Varbanov 2020-04-23 631 9172652d72f8e9 Stanimir Varbanov 2020-04-23 632 hdr10.mastering.white_point_x = ctr->mastering.white_point_x; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 633 hdr10.mastering.white_point_y = ctr->mastering.white_point_y; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 634 hdr10.mastering.max_display_mastering_luminance = 9172652d72f8e9 Stanimir Varbanov 2020-04-23 635 ctr->mastering.max_display_mastering_luminance; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 636 hdr10.mastering.min_display_mastering_luminance = 9172652d72f8e9 Stanimir Varbanov 2020-04-23 637 ctr->mastering.min_display_mastering_luminance; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 638 9172652d72f8e9 Stanimir Varbanov 2020-04-23 639 hdr10.cll.max_content_light = ctr->cll.max_content_light_level; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 640 hdr10.cll.max_pic_average_light = 9172652d72f8e9 Stanimir Varbanov 2020-04-23 641 ctr->cll.max_pic_average_light_level; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 642 9172652d72f8e9 Stanimir Varbanov 2020-04-23 643 ret = hfi_session_set_property(inst, ptype, &hdr10); 9172652d72f8e9 Stanimir Varbanov 2020-04-23 644 if (ret) 9172652d72f8e9 Stanimir Varbanov 2020-04-23 645 return ret; 9172652d72f8e9 Stanimir Varbanov 2020-04-23 646 } 9172652d72f8e9 Stanimir Varbanov 2020-04-23 647 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 648 if (ctr->num_b_frames) { aaaa93eda64b00 Stanimir Varbanov 2017-06-15 649 u32 max_num_b_frames = NUM_B_FRAMES_MAX; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 650 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 651 ptype = HFI_PROPERTY_PARAM_VENC_MAX_NUM_B_FRAMES; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 652 ret = hfi_session_set_property(inst, ptype, &max_num_b_frames); aaaa93eda64b00 Stanimir Varbanov 2017-06-15 653 if (ret) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 654 return ret; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 655 } aaaa93eda64b00 Stanimir Varbanov 2017-06-15 656 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 657 ptype = HFI_PROPERTY_CONFIG_VENC_INTRA_PERIOD; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 658 intra_period.pframes = ctr->num_p_frames; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 659 intra_period.bframes = ctr->num_b_frames; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 660 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 661 ret = hfi_session_set_property(inst, ptype, &intra_period); aaaa93eda64b00 Stanimir Varbanov 2017-06-15 662 if (ret) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 663 return ret; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 664 6f704b2fbbde0c Jeffrey Kardatzke 2020-02-22 665 if (!ctr->rc_enable) 6f704b2fbbde0c Jeffrey Kardatzke 2020-02-22 666 rate_control = HFI_RATE_CONTROL_OFF; 6f704b2fbbde0c Jeffrey Kardatzke 2020-02-22 667 else if (ctr->bitrate_mode == V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) 94dfb1689c25ed Stanimir Varbanov 2020-07-05 668 rate_control = ctr->frame_skip_mode ? HFI_RATE_CONTROL_VBR_VFR : 94dfb1689c25ed Stanimir Varbanov 2020-07-05 669 HFI_RATE_CONTROL_VBR_CFR; 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 670 else if (ctr->bitrate_mode == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) 94dfb1689c25ed Stanimir Varbanov 2020-07-05 671 rate_control = ctr->frame_skip_mode ? HFI_RATE_CONTROL_CBR_VFR : 94dfb1689c25ed Stanimir Varbanov 2020-07-05 672 HFI_RATE_CONTROL_CBR_CFR; 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 673 else if (ctr->bitrate_mode == V4L2_MPEG_VIDEO_BITRATE_MODE_CQ) 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 674 rate_control = HFI_RATE_CONTROL_CQ; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 675 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 676 ptype = HFI_PROPERTY_PARAM_VENC_RATE_CONTROL; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 677 ret = hfi_session_set_property(inst, ptype, &rate_control); aaaa93eda64b00 Stanimir Varbanov 2017-06-15 678 if (ret) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 679 return ret; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 680 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 681 if (rate_control == HFI_RATE_CONTROL_CQ && ctr->const_quality) { 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 682 struct hfi_heic_frame_quality quality = {}; 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 683 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 684 ptype = HFI_PROPERTY_CONFIG_HEIC_FRAME_QUALITY; 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 685 quality.frame_quality = ctr->const_quality; 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 686 ret = hfi_session_set_property(inst, ptype, &quality); 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 687 if (ret) 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 688 return ret; 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 689 } 69ff4b2caa95e1 Stanimir Varbanov 2020-06-16 690 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 691 if (!ctr->bitrate) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 692 bitrate = 64000; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 693 else aaaa93eda64b00 Stanimir Varbanov 2017-06-15 694 bitrate = ctr->bitrate; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 695 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 696 ptype = HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 697 brate.bitrate = bitrate; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 698 brate.layer_id = 0; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 699 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 700 ret = hfi_session_set_property(inst, ptype, &brate); aaaa93eda64b00 Stanimir Varbanov 2017-06-15 701 if (ret) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 702 return ret; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 703 002c22bd360e07 Dikshita Agarwal 2021-01-08 704 if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264 || 002c22bd360e07 Dikshita Agarwal 2021-01-08 705 inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) { 002c22bd360e07 Dikshita Agarwal 2021-01-08 706 ptype = HFI_PROPERTY_CONFIG_VENC_SYNC_FRAME_SEQUENCE_HEADER; 002c22bd360e07 Dikshita Agarwal 2021-01-08 707 if (ctr->header_mode == V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) 002c22bd360e07 Dikshita Agarwal 2021-01-08 708 en.enable = 0; 002c22bd360e07 Dikshita Agarwal 2021-01-08 709 else 002c22bd360e07 Dikshita Agarwal 2021-01-08 710 en.enable = 1; 002c22bd360e07 Dikshita Agarwal 2021-01-08 711 002c22bd360e07 Dikshita Agarwal 2021-01-08 712 ret = hfi_session_set_property(inst, ptype, &en); 002c22bd360e07 Dikshita Agarwal 2021-01-08 713 if (ret) 002c22bd360e07 Dikshita Agarwal 2021-01-08 714 return ret; 002c22bd360e07 Dikshita Agarwal 2021-01-08 715 } 002c22bd360e07 Dikshita Agarwal 2021-01-08 716 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 717 if (!ctr->bitrate_peak) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 718 bitrate *= 2; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 719 else aaaa93eda64b00 Stanimir Varbanov 2017-06-15 720 bitrate = ctr->bitrate_peak; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 721 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 722 ptype = HFI_PROPERTY_CONFIG_VENC_MAX_BITRATE; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 723 brate.bitrate = bitrate; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 724 brate.layer_id = 0; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 725 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 726 ret = hfi_session_set_property(inst, ptype, &brate); aaaa93eda64b00 Stanimir Varbanov 2017-06-15 727 if (ret) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 728 return ret; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 729 2123cbd687ca0c Kelvin Lawson 2018-11-29 730 ptype = HFI_PROPERTY_PARAM_VENC_SESSION_QP; 74c895974fd356 Dikshita Agarwal 2020-12-24 731 if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) { 74c895974fd356 Dikshita Agarwal 2020-12-24 732 quant.qp_i = ctr->hevc_i_qp; 74c895974fd356 Dikshita Agarwal 2020-12-24 733 quant.qp_p = ctr->hevc_p_qp; 74c895974fd356 Dikshita Agarwal 2020-12-24 734 quant.qp_b = ctr->hevc_b_qp; 74c895974fd356 Dikshita Agarwal 2020-12-24 735 } else { 2123cbd687ca0c Kelvin Lawson 2018-11-29 736 quant.qp_i = ctr->h264_i_qp; 2123cbd687ca0c Kelvin Lawson 2018-11-29 737 quant.qp_p = ctr->h264_p_qp; 2123cbd687ca0c Kelvin Lawson 2018-11-29 738 quant.qp_b = ctr->h264_b_qp; 74c895974fd356 Dikshita Agarwal 2020-12-24 739 } 2123cbd687ca0c Kelvin Lawson 2018-11-29 740 quant.layer_id = 0; 2123cbd687ca0c Kelvin Lawson 2018-11-29 741 ret = hfi_session_set_property(inst, ptype, &quant); 2123cbd687ca0c Kelvin Lawson 2018-11-29 742 if (ret) 2123cbd687ca0c Kelvin Lawson 2018-11-29 743 return ret; 2123cbd687ca0c Kelvin Lawson 2018-11-29 744 2123cbd687ca0c Kelvin Lawson 2018-11-29 745 ptype = HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE; 74c895974fd356 Dikshita Agarwal 2020-12-24 746 if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) { 74c895974fd356 Dikshita Agarwal 2020-12-24 747 quant_range.min_qp = ctr->hevc_min_qp; 74c895974fd356 Dikshita Agarwal 2020-12-24 748 quant_range.max_qp = ctr->hevc_max_qp; 74c895974fd356 Dikshita Agarwal 2020-12-24 749 } else { 2123cbd687ca0c Kelvin Lawson 2018-11-29 750 quant_range.min_qp = ctr->h264_min_qp; 2123cbd687ca0c Kelvin Lawson 2018-11-29 751 quant_range.max_qp = ctr->h264_max_qp; 74c895974fd356 Dikshita Agarwal 2020-12-24 752 } 2123cbd687ca0c Kelvin Lawson 2018-11-29 753 quant_range.layer_id = 0; 2123cbd687ca0c Kelvin Lawson 2018-11-29 754 ret = hfi_session_set_property(inst, ptype, &quant_range); 2123cbd687ca0c Kelvin Lawson 2018-11-29 755 if (ret) 2123cbd687ca0c Kelvin Lawson 2018-11-29 756 return ret; 2123cbd687ca0c Kelvin Lawson 2018-11-29 757 f2fb3f02abe2e6 Dikshita Agarwal 2021-03-24 758 ptype = HFI_PROPERTY_PARAM_VENC_LTRMODE; f2fb3f02abe2e6 Dikshita Agarwal 2021-03-24 759 ltr_mode.ltr_count = ctr->ltr_count; f2fb3f02abe2e6 Dikshita Agarwal 2021-03-24 760 ltr_mode.ltr_mode = HFI_LTR_MODE_MANUAL; f2fb3f02abe2e6 Dikshita Agarwal 2021-03-24 761 ltr_mode.trust_mode = 1; f2fb3f02abe2e6 Dikshita Agarwal 2021-03-24 762 ret = hfi_session_set_property(inst, ptype, <r_mode); f2fb3f02abe2e6 Dikshita Agarwal 2021-03-24 763 if (ret) f2fb3f02abe2e6 Dikshita Agarwal 2021-03-24 764 return ret; f2fb3f02abe2e6 Dikshita Agarwal 2021-03-24 765 a7a20f721e812a Stanimir Varbanov 2020-10-27 766 switch (inst->hfi_codec) { a7a20f721e812a Stanimir Varbanov 2020-10-27 767 case HFI_VIDEO_CODEC_H264: a7a20f721e812a Stanimir Varbanov 2020-10-27 768 profile = ctr->profile.h264; a7a20f721e812a Stanimir Varbanov 2020-10-27 769 level = ctr->level.h264; a7a20f721e812a Stanimir Varbanov 2020-10-27 770 break; a7a20f721e812a Stanimir Varbanov 2020-10-27 771 case HFI_VIDEO_CODEC_MPEG4: a7a20f721e812a Stanimir Varbanov 2020-10-27 772 profile = ctr->profile.mpeg4; a7a20f721e812a Stanimir Varbanov 2020-10-27 773 level = ctr->level.mpeg4; a7a20f721e812a Stanimir Varbanov 2020-10-27 774 break; a7a20f721e812a Stanimir Varbanov 2020-10-27 775 case HFI_VIDEO_CODEC_VP8: a7a20f721e812a Stanimir Varbanov 2020-10-27 776 profile = ctr->profile.vp8; a7a20f721e812a Stanimir Varbanov 2020-10-27 777 level = 0; a7a20f721e812a Stanimir Varbanov 2020-10-27 778 break; a7a20f721e812a Stanimir Varbanov 2020-10-27 779 case HFI_VIDEO_CODEC_VP9: a7a20f721e812a Stanimir Varbanov 2020-10-27 780 profile = ctr->profile.vp9; a7a20f721e812a Stanimir Varbanov 2020-10-27 781 level = ctr->level.vp9; a7a20f721e812a Stanimir Varbanov 2020-10-27 782 break; a7a20f721e812a Stanimir Varbanov 2020-10-27 783 case HFI_VIDEO_CODEC_HEVC: a7a20f721e812a Stanimir Varbanov 2020-10-27 784 profile = ctr->profile.hevc; a7a20f721e812a Stanimir Varbanov 2020-10-27 785 level = ctr->level.hevc; a7a20f721e812a Stanimir Varbanov 2020-10-27 786 break; a7a20f721e812a Stanimir Varbanov 2020-10-27 787 case HFI_VIDEO_CODEC_MPEG2: a7a20f721e812a Stanimir Varbanov 2020-10-27 788 default: a7a20f721e812a Stanimir Varbanov 2020-10-27 789 profile = 0; a7a20f721e812a Stanimir Varbanov 2020-10-27 790 level = 0; a7a20f721e812a Stanimir Varbanov 2020-10-27 791 break; a7a20f721e812a Stanimir Varbanov 2020-10-27 792 } a7a20f721e812a Stanimir Varbanov 2020-10-27 793 a7a20f721e812a Stanimir Varbanov 2020-10-27 794 ret = venus_helper_set_profile_level(inst, profile, level); aaaa93eda64b00 Stanimir Varbanov 2017-06-15 795 if (ret) aaaa93eda64b00 Stanimir Varbanov 2017-06-15 796 return ret; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 797 08c06797627935 Stanimir Varbanov 2020-11-24 798 if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264 || 08c06797627935 Stanimir Varbanov 2020-11-24 799 inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) { 08c06797627935 Stanimir Varbanov 2020-11-24 800 struct hfi_enable en = {}; 08c06797627935 Stanimir Varbanov 2020-11-24 801 08c06797627935 Stanimir Varbanov 2020-11-24 802 ptype = HFI_PROPERTY_PARAM_VENC_H264_GENERATE_AUDNAL; 08c06797627935 Stanimir Varbanov 2020-11-24 803 08c06797627935 Stanimir Varbanov 2020-11-24 804 if (ctr->aud_enable) 08c06797627935 Stanimir Varbanov 2020-11-24 805 en.enable = 1; 08c06797627935 Stanimir Varbanov 2020-11-24 806 08c06797627935 Stanimir Varbanov 2020-11-24 @807 ret = hfi_session_set_property(inst, ptype, &en); f7a3d3dc5831df Stanimir Varbanov 2021-06-22 808 } f7a3d3dc5831df Stanimir Varbanov 2021-06-22 809 f7a3d3dc5831df Stanimir Varbanov 2021-06-22 810 if ((inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264 || f7a3d3dc5831df Stanimir Varbanov 2021-06-22 811 inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) && f7a3d3dc5831df Stanimir Varbanov 2021-06-22 812 (rate_control == HFI_RATE_CONTROL_CBR_VFR || f7a3d3dc5831df Stanimir Varbanov 2021-06-22 813 rate_control == HFI_RATE_CONTROL_CBR_CFR)) { f7a3d3dc5831df Stanimir Varbanov 2021-06-22 814 intra_refresh.mode = HFI_INTRA_REFRESH_NONE; f7a3d3dc5831df Stanimir Varbanov 2021-06-22 815 intra_refresh.cir_mbs = 0; f7a3d3dc5831df Stanimir Varbanov 2021-06-22 816 f7a3d3dc5831df Stanimir Varbanov 2021-06-22 817 if (ctr->intra_refresh_period) { f7a3d3dc5831df Stanimir Varbanov 2021-06-22 818 u32 mbs; f7a3d3dc5831df Stanimir Varbanov 2021-06-22 819 f7a3d3dc5831df Stanimir Varbanov 2021-06-22 820 mbs = ALIGN(inst->width, 16) * ALIGN(inst->height, 16); f7a3d3dc5831df Stanimir Varbanov 2021-06-22 821 mbs /= 16 * 16; f7a3d3dc5831df Stanimir Varbanov 2021-06-22 822 if (mbs % ctr->intra_refresh_period) f7a3d3dc5831df Stanimir Varbanov 2021-06-22 823 mbs++; f7a3d3dc5831df Stanimir Varbanov 2021-06-22 824 mbs /= ctr->intra_refresh_period; f7a3d3dc5831df Stanimir Varbanov 2021-06-22 825 f7a3d3dc5831df Stanimir Varbanov 2021-06-22 826 intra_refresh.mode = HFI_INTRA_REFRESH_RANDOM; f7a3d3dc5831df Stanimir Varbanov 2021-06-22 827 intra_refresh.cir_mbs = mbs; f7a3d3dc5831df Stanimir Varbanov 2021-06-22 828 } f7a3d3dc5831df Stanimir Varbanov 2021-06-22 829 f7a3d3dc5831df Stanimir Varbanov 2021-06-22 830 ptype = HFI_PROPERTY_PARAM_VENC_INTRA_REFRESH; f7a3d3dc5831df Stanimir Varbanov 2021-06-22 831 f7a3d3dc5831df Stanimir Varbanov 2021-06-22 832 ret = hfi_session_set_property(inst, ptype, &intra_refresh); 08c06797627935 Stanimir Varbanov 2020-11-24 833 if (ret) 08c06797627935 Stanimir Varbanov 2020-11-24 834 return ret; 08c06797627935 Stanimir Varbanov 2020-11-24 835 } 08c06797627935 Stanimir Varbanov 2020-11-24 836 aaaa93eda64b00 Stanimir Varbanov 2017-06-15 837 return 0; aaaa93eda64b00 Stanimir Varbanov 2017-06-15 838 } aaaa93eda64b00 Stanimir Varbanov 2017-06-15 839 :::::: The code at line 807 was first introduced by commit :::::: 08c06797627935d48621359eb95ab8a69d70d5c5 media: venus: venc: Add support for AUD NALU control :::::: TO: Stanimir Varbanov <[email protected]> :::::: CC: Mauro Carvalho Chehab <[email protected]> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
