All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/media/platform/qcom/venus/venc.c:807:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-01-18 11:13 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-01-18 11:13 UTC (permalink / raw)
  To: kbuild

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

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Stanimir Varbanov <stanimir.varbanov@linaro.org>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   0c947b893d69231a9add855939da7c66237ab44f
commit: f7a3d3dc5831df6f898a5ae2a6ea1d221ea95c8a media: venus: venc: Add support for intra-refresh period
date:   6 months ago
:::::: branch date: 23 hours ago
:::::: commit date: 6 months ago
config: riscv-randconfig-c006-20220111 (https://download.01.org/0day-ci/archive/20220118/202201181438.cwk7ZGyB-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 244dd2913a43a200f5a6544d424cdc37b771028b)
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 riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # 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 to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer 

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


clang-analyzer warnings: (new ones prefixed by >>)
           if (start_lsn)
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
           ^
   fs/xfs/xfs_log.c:2394:2: note: Taking false branch
           if (start_lsn)
           ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   fs/xfs/xfs_log.c:2396:9: note: 'lv' is non-null
           while (lv && (!lv->lv_niovecs || index < lv->lv_niovecs)) {
                  ^~
   fs/xfs/xfs_log.c:2396:9: note: Left side of '&&' is true
   fs/xfs/xfs_log.c:2396:16: note: Assuming field 'lv_niovecs' is not equal to 0
           while (lv && (!lv->lv_niovecs || index < lv->lv_niovecs)) {
                         ^~~~~~~~~~~~~~~
   fs/xfs/xfs_log.c:2396:16: note: Left side of '||' is false
   fs/xfs/xfs_log.c:2396:35: note: Assuming 'index' is >= field 'lv_niovecs'
           while (lv && (!lv->lv_niovecs || index < lv->lv_niovecs)) {
                                            ^~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/xfs_log.c:2396:2: note: Loop condition is false. Execution continues on line 2524
           while (lv && (!lv->lv_niovecs || index < lv->lv_niovecs)) {
           ^
   fs/xfs/xfs_log.c:2524:9: note: Assuming 'len' is equal to 0
           ASSERT(len == 0);
                  ^
   fs/xfs/xfs_linux.h:207:10: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : assfail(NULL, #expr, __FILE__, __LINE__))
                   ^~~~
   include/linux/compiler.h:45:39: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                                             ^
   include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                         ^
   fs/xfs/xfs_log.c:2524:2: note: '?' condition is true
           ASSERT(len == 0);
           ^
   fs/xfs/xfs_linux.h:207:3: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : assfail(NULL, #expr, __FILE__, __LINE__))
            ^
   include/linux/compiler.h:45:21: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                           ^
   fs/xfs/xfs_log.c:2527:30: note: Passing null pointer value via 2nd parameter 'iclog'
           xlog_state_finish_copy(log, iclog, record_cnt, data_cnt);
                                       ^~~~~
   fs/xfs/xfs_log.c:2527:2: note: Calling 'xlog_state_finish_copy'
           xlog_state_finish_copy(log, iclog, record_cnt, data_cnt);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/xfs_log.c:2003:2: note: Assuming 'debug_locks' is 0
           lockdep_assert_held(&log->l_icloglock);
           ^
   include/linux/lockdep.h:310:11: note: expanded from macro 'lockdep_assert_held'
                   WARN_ON(debug_locks &&                                  \
                           ^~~~~~~~~~~
   include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   fs/xfs/xfs_log.c:2003:2: note: Left side of '&&' is false
           lockdep_assert_held(&log->l_icloglock);
           ^
   include/linux/lockdep.h:310:23: note: expanded from macro 'lockdep_assert_held'
                   WARN_ON(debug_locks &&                                  \
                                       ^
   fs/xfs/xfs_log.c:2003:2: note: Loop condition is false.  Exiting loop
           lockdep_assert_held(&log->l_icloglock);
           ^
   include/linux/lockdep.h:309:32: note: expanded from macro 'lockdep_assert_held'
   #define lockdep_assert_held(l)  do {                                    \
                                   ^
   fs/xfs/xfs_log.c:2005:16: note: Access to field 'ic_data' results in a dereference of a null pointer (loaded from variable 'iclog')
           be32_add_cpu(&iclog->ic_header.h_num_logops, record_cnt);
                         ^~~~~
   fs/xfs/xfs_log.c:3629:2: warning: Value stored to 'p' is never read [clang-analyzer-deadcode.DeadStores]
           p = &iclog->ic_header;
           ^   ~~~~~~~~~~~~~~~~~
   fs/xfs/xfs_log.c:3629:2: note: Value stored to 'p' is never read
           p = &iclog->ic_header;
           ^   ~~~~~~~~~~~~~~~~~
   fs/xfs/xfs_log.c:3639:2: warning: Value stored to 'ophead' is never read [clang-analyzer-deadcode.DeadStores]
           ophead = ptr;
           ^        ~~~
   fs/xfs/xfs_log.c:3639:2: note: Value stored to 'ophead' is never read
           ophead = ptr;
           ^        ~~~
   Suppressed 4 warnings (4 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   4 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 3 warnings (3 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.
   4 warnings generated.
   drivers/iio/adc/ti-adc128s052.c:26:8: warning: Excessive padding in 'struct adc128' (94 padding bytes, where 30 is optimal). 
   Optimal fields order: 
   buffer, 
   spi, 
   reg, 
   lock, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct adc128 {
   ~~~~~~~^~~~~~~~
   drivers/iio/adc/ti-adc128s052.c:26:8: note: Excessive padding in 'struct adc128' (94 padding bytes, where 30 is optimal). Optimal fields order: buffer, spi, reg, lock, consider reordering the fields or adding explicit padding members
   struct adc128 {
   ~~~~~~~^~~~~~~~
   Suppressed 3 warnings (3 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.
   4 warnings generated.
   drivers/iio/adc/ti-adc161s626.c:66:8: warning: Excessive padding in 'struct ti_adc_data' (98 padding bytes, where 34 is optimal). 
   Optimal fields order: 
   buffer, 
   indio_dev, 
   spi, 
   ref, 
   read_size, 
   shift, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct ti_adc_data {
   ~~~~~~~^~~~~~~~~~~~~
   drivers/iio/adc/ti-adc161s626.c:66:8: note: Excessive padding in 'struct ti_adc_data' (98 padding bytes, where 34 is optimal). Optimal fields order: buffer, indio_dev, spi, ref, read_size, shift, consider reordering the fields or adding explicit padding members
   struct ti_adc_data {
   ~~~~~~~^~~~~~~~~~~~~
   Suppressed 3 warnings (3 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.
   4 warnings generated.
   drivers/iio/adc/ti-ads1015.c:414:12: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
           scan.chan = res;
                     ^ ~~~
   drivers/iio/adc/ti-ads1015.c:401:17: note: 'res' declared without an initial value
           int chan, ret, res;
                          ^~~
   drivers/iio/adc/ti-ads1015.c:408:8: note: Calling 'ads1015_get_adc_result'
           ret = ads1015_get_adc_result(data, chan, &res);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/adc/ti-ads1015.c:350:6: note: 'chan' is >= 0
           if (chan < 0 || chan >= ADS1015_CHANNELS)
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                      ^~~~
   drivers/iio/adc/ti-ads1015.c:350:6: note: Left side of '||' is false
           if (chan < 0 || chan >= ADS1015_CHANNELS)
               ^
   drivers/iio/adc/ti-ads1015.c:350:18: note: Assuming 'chan' is < 8
           if (chan < 0 || chan >= ADS1015_CHANNELS)
                           ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                      ^~~~
   drivers/iio/adc/ti-ads1015.c:350:2: note: '?' condition is false
           if (chan < 0 || chan >= ADS1015_CHANNELS)
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                 ^
   drivers/iio/adc/ti-ads1015.c:350:6: note: 'chan' is >= 0
           if (chan < 0 || chan >= ADS1015_CHANNELS)
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                                                        ^~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   drivers/iio/adc/ti-ads1015.c:350:6: note: Left side of '||' is false
           if (chan < 0 || chan >= ADS1015_CHANNELS)
               ^
   drivers/iio/adc/ti-ads1015.c:350:18: note: 'chan' is < 8
           if (chan < 0 || chan >= ADS1015_CHANNELS)
                           ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
--
   drivers/media/platform/s5p-jpeg/jpeg-core.c:1141:3: note: Value stored to 'length' is never read
                   length = 0;
                   ^        ~
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   6 warnings generated.
   12 warnings generated.
   drivers/video/fbdev/aty/mach64_gx.c:355:3: warning: Value stored to 'MHz100' is never read [clang-analyzer-deadcode.DeadStores]
                   MHz100 = MAX_FREQ_2595;
                   ^
   drivers/video/fbdev/aty/mach64_gx.c:355:3: note: Value stored to 'MHz100' is never read
   drivers/video/fbdev/aty/mach64_gx.c:358:3: warning: Value stored to 'program_bits' is never read [clang-analyzer-deadcode.DeadStores]
                   program_bits = 0;       /* MHz100 = 257 */
                   ^              ~
   drivers/video/fbdev/aty/mach64_gx.c:358:3: note: Value stored to 'program_bits' is never read
                   program_bits = 0;       /* MHz100 = 257 */
                   ^              ~
   drivers/video/fbdev/aty/mach64_gx.c:649:3: warning: Value stored to 'diff' is never read [clang-analyzer-deadcode.DeadStores]
                   diff = 0;
                   ^      ~
   drivers/video/fbdev/aty/mach64_gx.c:649:3: note: Value stored to 'diff' is never read
                   diff = 0;
                   ^      ~
   Suppressed 6 warnings (6 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.
   6 warnings generated.
   12 warnings generated.
   drivers/video/fbdev/aty/radeon_base.c:306:3: warning: Value stored to 'tmp' is never read [clang-analyzer-deadcode.DeadStores]
                   tmp = INREG(CLOCK_CNTL_DATA);
                   ^
   drivers/video/fbdev/aty/radeon_base.c:306:3: note: Value stored to 'tmp' is never read
   drivers/video/fbdev/aty/radeon_base.c:432:2: warning: Value stored to 'temp' is never read [clang-analyzer-deadcode.DeadStores]
           temp = INREG(MPP_TB_CONFIG);
           ^
   drivers/video/fbdev/aty/radeon_base.c:432:2: note: Value stored to 'temp' is never read
   drivers/video/fbdev/aty/radeon_base.c:591:2: warning: Value stored to 'tmp' is never read [clang-analyzer-deadcode.DeadStores]
           tmp = INREG16(DEVICE_ID);
           ^
   drivers/video/fbdev/aty/radeon_base.c:591:2: note: Value stored to 'tmp' is never read
   Suppressed 6 warnings (6 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.
   4 warnings generated.
   8 warnings generated.
   drivers/video/fbdev/aty/radeon_pm.c:1270:7: warning: Value stored to 'sdram_mode_reg' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
                   u32 sdram_mode_reg = rinfo->save_regs[35];
                       ^~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/aty/radeon_pm.c:1270:7: note: Value stored to 'sdram_mode_reg' during its initialization is never read
                   u32 sdram_mode_reg = rinfo->save_regs[35];
                       ^~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~
   Suppressed 6 warnings (6 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 (2 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 (2 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 (2 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 (2 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 (2 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 (2 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 (2 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   4 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 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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 (2 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 (2 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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 (2 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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 (2 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 (2 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 (2 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 (2 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   drivers/iio/adc/ltc2496.c:21:8: warning: Excessive padding in 'struct ltc2496_driverdata' (94 padding bytes, where 30 is optimal). 
   Optimal fields order: 
   rxbuf, 
   txbuf, 
   common_ddata, 
   spi, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct ltc2496_driverdata {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
   drivers/iio/adc/ltc2496.c:21:8: note: Excessive padding in 'struct ltc2496_driverdata' (94 padding bytes, where 30 is optimal). Optimal fields order: rxbuf, txbuf, common_ddata, spi, consider reordering the fields or adding explicit padding members
   struct ltc2496_driverdata {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
   Suppressed 2 warnings (2 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   5 warnings generated.
   drivers/media/platform/am437x/am437x-vpfe.c:819:2: warning: Value stored to 'vpfe_int_status' is never read [clang-analyzer-deadcode.DeadStores]
           vpfe_int_status = vpfe_reg_read(ccdc, VPFE_IRQ_STS);
           ^                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/am437x/am437x-vpfe.c:819:2: note: Value stored to 'vpfe_int_status' is never read
           vpfe_int_status = vpfe_reg_read(ccdc, VPFE_IRQ_STS);

vim +/ret +807 drivers/media/platform/qcom/venus/venc.c

aaaa93eda64b004 Stanimir Varbanov 2017-06-15  540  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  541  static int venc_set_properties(struct venus_inst *inst)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  542  {
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  543  	struct venc_controls *ctr = &inst->controls.enc;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  544  	struct hfi_intra_period intra_period;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  545  	struct hfi_framerate frate;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  546  	struct hfi_bitrate brate;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  547  	struct hfi_idr_period idrp;
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  548  	struct hfi_quantization quant;
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  549  	struct hfi_quantization_range quant_range;
002c22bd360e07b Dikshita Agarwal  2021-01-08  550  	struct hfi_enable en;
f2fb3f02abe2e66 Dikshita Agarwal  2021-03-24  551  	struct hfi_ltr_mode ltr_mode;
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  552  	struct hfi_intra_refresh intra_refresh = {};
435c53c3698f414 Stanimir Varbanov 2020-09-08  553  	u32 ptype, rate_control, bitrate;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  554  	u32 profile, level;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  555  	int ret;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  556  
1ad175952bbcafa Dikshita Agarwal  2021-04-02  557  	ret = venus_helper_set_work_mode(inst);
01165b8484973da Stanimir Varbanov 2018-07-05  558  	if (ret)
01165b8484973da Stanimir Varbanov 2018-07-05  559  		return ret;
01165b8484973da Stanimir Varbanov 2018-07-05  560  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  561  	ptype = HFI_PROPERTY_CONFIG_FRAME_RATE;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  562  	frate.buffer_type = HFI_BUFFER_OUTPUT;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  563  	frate.framerate = inst->fps * (1 << 16);
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  564  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  565  	ret = hfi_session_set_property(inst, ptype, &frate);
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  566  	if (ret)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  567  		return ret;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  568  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  569  	if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264) {
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  570  		struct hfi_h264_vui_timing_info info;
a7837e11679e015 Loic Poulain      2017-11-24  571  		struct hfi_h264_entropy_control entropy;
f7d12fea16cbcc3 Loic Poulain      2017-11-24  572  		struct hfi_h264_db_control deblock;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  573  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  574  		ptype = HFI_PROPERTY_PARAM_VENC_H264_VUI_TIMING_INFO;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  575  		info.enable = 1;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  576  		info.fixed_framerate = 1;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  577  		info.time_scale = NSEC_PER_SEC;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  578  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  579  		ret = hfi_session_set_property(inst, ptype, &info);
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  580  		if (ret)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  581  			return ret;
a7837e11679e015 Loic Poulain      2017-11-24  582  
a7837e11679e015 Loic Poulain      2017-11-24  583  		ptype = HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL;
a7837e11679e015 Loic Poulain      2017-11-24  584  		entropy.entropy_mode = venc_v4l2_to_hfi(
a7837e11679e015 Loic Poulain      2017-11-24  585  					  V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE,
a7837e11679e015 Loic Poulain      2017-11-24  586  					  ctr->h264_entropy_mode);
a7837e11679e015 Loic Poulain      2017-11-24  587  		entropy.cabac_model = HFI_H264_CABAC_MODEL_0;
a7837e11679e015 Loic Poulain      2017-11-24  588  
a7837e11679e015 Loic Poulain      2017-11-24  589  		ret = hfi_session_set_property(inst, ptype, &entropy);
a7837e11679e015 Loic Poulain      2017-11-24  590  		if (ret)
a7837e11679e015 Loic Poulain      2017-11-24  591  			return ret;
f7d12fea16cbcc3 Loic Poulain      2017-11-24  592  
f7d12fea16cbcc3 Loic Poulain      2017-11-24  593  		ptype = HFI_PROPERTY_PARAM_VENC_H264_DEBLOCK_CONTROL;
f7d12fea16cbcc3 Loic Poulain      2017-11-24  594  		deblock.mode = venc_v4l2_to_hfi(
f7d12fea16cbcc3 Loic Poulain      2017-11-24  595  				      V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE,
f7d12fea16cbcc3 Loic Poulain      2017-11-24  596  				      ctr->h264_loop_filter_mode);
f7d12fea16cbcc3 Loic Poulain      2017-11-24  597  		deblock.slice_alpha_offset = ctr->h264_loop_filter_alpha;
f7d12fea16cbcc3 Loic Poulain      2017-11-24  598  		deblock.slice_beta_offset = ctr->h264_loop_filter_beta;
f7d12fea16cbcc3 Loic Poulain      2017-11-24  599  
f7d12fea16cbcc3 Loic Poulain      2017-11-24  600  		ret = hfi_session_set_property(inst, ptype, &deblock);
f7d12fea16cbcc3 Loic Poulain      2017-11-24  601  		if (ret)
f7d12fea16cbcc3 Loic Poulain      2017-11-24  602  			return ret;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  603  	}
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  604  
f0ddb4e9911665b Dikshita Agarwal  2020-12-16  605  	if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264 ||
f0ddb4e9911665b Dikshita Agarwal  2020-12-16  606  	    inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) {
8fc58186bb41ff8 Stanimir Varbanov 2017-12-01  607  		/* IDR periodicity, n:
8fc58186bb41ff8 Stanimir Varbanov 2017-12-01  608  		 * n = 0 - only the first I-frame is IDR frame
8fc58186bb41ff8 Stanimir Varbanov 2017-12-01  609  		 * n = 1 - all I-frames will be IDR frames
8fc58186bb41ff8 Stanimir Varbanov 2017-12-01  610  		 * n > 1 - every n-th I-frame will be IDR frame
8fc58186bb41ff8 Stanimir Varbanov 2017-12-01  611  		 */
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  612  		ptype = HFI_PROPERTY_CONFIG_VENC_IDR_PERIOD;
8fc58186bb41ff8 Stanimir Varbanov 2017-12-01  613  		idrp.idr_period = 0;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  614  		ret = hfi_session_set_property(inst, ptype, &idrp);
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  615  		if (ret)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  616  			return ret;
f0ddb4e9911665b Dikshita Agarwal  2020-12-16  617  	}
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  618  
9172652d72f8e9a Stanimir Varbanov 2020-04-23  619  	if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) {
9172652d72f8e9a Stanimir Varbanov 2020-04-23  620  		struct hfi_hdr10_pq_sei hdr10;
9172652d72f8e9a Stanimir Varbanov 2020-04-23  621  		unsigned int c;
9172652d72f8e9a Stanimir Varbanov 2020-04-23  622  
9172652d72f8e9a Stanimir Varbanov 2020-04-23  623  		ptype = HFI_PROPERTY_PARAM_VENC_HDR10_PQ_SEI;
9172652d72f8e9a Stanimir Varbanov 2020-04-23  624  
9172652d72f8e9a Stanimir Varbanov 2020-04-23  625  		for (c = 0; c < 3; c++) {
9172652d72f8e9a Stanimir Varbanov 2020-04-23  626  			hdr10.mastering.display_primaries_x[c] =
9172652d72f8e9a Stanimir Varbanov 2020-04-23  627  				ctr->mastering.display_primaries_x[c];
9172652d72f8e9a Stanimir Varbanov 2020-04-23  628  			hdr10.mastering.display_primaries_y[c] =
9172652d72f8e9a Stanimir Varbanov 2020-04-23  629  				ctr->mastering.display_primaries_y[c];
9172652d72f8e9a Stanimir Varbanov 2020-04-23  630  		}
9172652d72f8e9a Stanimir Varbanov 2020-04-23  631  
9172652d72f8e9a Stanimir Varbanov 2020-04-23  632  		hdr10.mastering.white_point_x = ctr->mastering.white_point_x;
9172652d72f8e9a Stanimir Varbanov 2020-04-23  633  		hdr10.mastering.white_point_y = ctr->mastering.white_point_y;
9172652d72f8e9a Stanimir Varbanov 2020-04-23  634  		hdr10.mastering.max_display_mastering_luminance =
9172652d72f8e9a Stanimir Varbanov 2020-04-23  635  			ctr->mastering.max_display_mastering_luminance;
9172652d72f8e9a Stanimir Varbanov 2020-04-23  636  		hdr10.mastering.min_display_mastering_luminance =
9172652d72f8e9a Stanimir Varbanov 2020-04-23  637  			ctr->mastering.min_display_mastering_luminance;
9172652d72f8e9a Stanimir Varbanov 2020-04-23  638  
9172652d72f8e9a Stanimir Varbanov 2020-04-23  639  		hdr10.cll.max_content_light = ctr->cll.max_content_light_level;
9172652d72f8e9a Stanimir Varbanov 2020-04-23  640  		hdr10.cll.max_pic_average_light =
9172652d72f8e9a Stanimir Varbanov 2020-04-23  641  			ctr->cll.max_pic_average_light_level;
9172652d72f8e9a Stanimir Varbanov 2020-04-23  642  
9172652d72f8e9a Stanimir Varbanov 2020-04-23  643  		ret = hfi_session_set_property(inst, ptype, &hdr10);
9172652d72f8e9a Stanimir Varbanov 2020-04-23  644  		if (ret)
9172652d72f8e9a Stanimir Varbanov 2020-04-23  645  			return ret;
9172652d72f8e9a Stanimir Varbanov 2020-04-23  646  	}
9172652d72f8e9a Stanimir Varbanov 2020-04-23  647  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  648  	if (ctr->num_b_frames) {
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  649  		u32 max_num_b_frames = NUM_B_FRAMES_MAX;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  650  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  651  		ptype = HFI_PROPERTY_PARAM_VENC_MAX_NUM_B_FRAMES;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  652  		ret = hfi_session_set_property(inst, ptype, &max_num_b_frames);
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  653  		if (ret)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  654  			return ret;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  655  	}
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  656  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  657  	ptype = HFI_PROPERTY_CONFIG_VENC_INTRA_PERIOD;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  658  	intra_period.pframes = ctr->num_p_frames;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  659  	intra_period.bframes = ctr->num_b_frames;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  660  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  661  	ret = hfi_session_set_property(inst, ptype, &intra_period);
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  662  	if (ret)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  663  		return ret;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  664  
6f704b2fbbde0c9 Jeffrey Kardatzke 2020-02-22  665  	if (!ctr->rc_enable)
6f704b2fbbde0c9 Jeffrey Kardatzke 2020-02-22  666  		rate_control = HFI_RATE_CONTROL_OFF;
6f704b2fbbde0c9 Jeffrey Kardatzke 2020-02-22  667  	else if (ctr->bitrate_mode == V4L2_MPEG_VIDEO_BITRATE_MODE_VBR)
94dfb1689c25ed2 Stanimir Varbanov 2020-07-05  668  		rate_control = ctr->frame_skip_mode ? HFI_RATE_CONTROL_VBR_VFR :
94dfb1689c25ed2 Stanimir Varbanov 2020-07-05  669  						      HFI_RATE_CONTROL_VBR_CFR;
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  670  	else if (ctr->bitrate_mode == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR)
94dfb1689c25ed2 Stanimir Varbanov 2020-07-05  671  		rate_control = ctr->frame_skip_mode ? HFI_RATE_CONTROL_CBR_VFR :
94dfb1689c25ed2 Stanimir Varbanov 2020-07-05  672  						      HFI_RATE_CONTROL_CBR_CFR;
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  673  	else if (ctr->bitrate_mode == V4L2_MPEG_VIDEO_BITRATE_MODE_CQ)
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  674  		rate_control = HFI_RATE_CONTROL_CQ;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  675  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  676  	ptype = HFI_PROPERTY_PARAM_VENC_RATE_CONTROL;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  677  	ret = hfi_session_set_property(inst, ptype, &rate_control);
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  678  	if (ret)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  679  		return ret;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  680  
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  681  	if (rate_control == HFI_RATE_CONTROL_CQ && ctr->const_quality) {
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  682  		struct hfi_heic_frame_quality quality = {};
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  683  
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  684  		ptype = HFI_PROPERTY_CONFIG_HEIC_FRAME_QUALITY;
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  685  		quality.frame_quality = ctr->const_quality;
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  686  		ret = hfi_session_set_property(inst, ptype, &quality);
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  687  		if (ret)
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  688  			return ret;
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  689  	}
69ff4b2caa95e10 Stanimir Varbanov 2020-06-16  690  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  691  	if (!ctr->bitrate)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  692  		bitrate = 64000;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  693  	else
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  694  		bitrate = ctr->bitrate;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  695  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  696  	ptype = HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  697  	brate.bitrate = bitrate;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  698  	brate.layer_id = 0;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  699  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  700  	ret = hfi_session_set_property(inst, ptype, &brate);
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  701  	if (ret)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  702  		return ret;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  703  
002c22bd360e07b Dikshita Agarwal  2021-01-08  704  	if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264 ||
002c22bd360e07b Dikshita Agarwal  2021-01-08  705  	    inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) {
002c22bd360e07b Dikshita Agarwal  2021-01-08  706  		ptype = HFI_PROPERTY_CONFIG_VENC_SYNC_FRAME_SEQUENCE_HEADER;
002c22bd360e07b Dikshita Agarwal  2021-01-08  707  		if (ctr->header_mode == V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE)
002c22bd360e07b Dikshita Agarwal  2021-01-08  708  			en.enable = 0;
002c22bd360e07b Dikshita Agarwal  2021-01-08  709  		else
002c22bd360e07b Dikshita Agarwal  2021-01-08  710  			en.enable = 1;
002c22bd360e07b Dikshita Agarwal  2021-01-08  711  
002c22bd360e07b Dikshita Agarwal  2021-01-08  712  		ret = hfi_session_set_property(inst, ptype, &en);
002c22bd360e07b Dikshita Agarwal  2021-01-08  713  		if (ret)
002c22bd360e07b Dikshita Agarwal  2021-01-08  714  			return ret;
002c22bd360e07b Dikshita Agarwal  2021-01-08  715  	}
002c22bd360e07b Dikshita Agarwal  2021-01-08  716  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  717  	if (!ctr->bitrate_peak)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  718  		bitrate *= 2;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  719  	else
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  720  		bitrate = ctr->bitrate_peak;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  721  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  722  	ptype = HFI_PROPERTY_CONFIG_VENC_MAX_BITRATE;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  723  	brate.bitrate = bitrate;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  724  	brate.layer_id = 0;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  725  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  726  	ret = hfi_session_set_property(inst, ptype, &brate);
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  727  	if (ret)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  728  		return ret;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  729  
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  730  	ptype = HFI_PROPERTY_PARAM_VENC_SESSION_QP;
74c895974fd3566 Dikshita Agarwal  2020-12-24  731  	if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) {
74c895974fd3566 Dikshita Agarwal  2020-12-24  732  		quant.qp_i = ctr->hevc_i_qp;
74c895974fd3566 Dikshita Agarwal  2020-12-24  733  		quant.qp_p = ctr->hevc_p_qp;
74c895974fd3566 Dikshita Agarwal  2020-12-24  734  		quant.qp_b = ctr->hevc_b_qp;
74c895974fd3566 Dikshita Agarwal  2020-12-24  735  	} else {
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  736  		quant.qp_i = ctr->h264_i_qp;
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  737  		quant.qp_p = ctr->h264_p_qp;
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  738  		quant.qp_b = ctr->h264_b_qp;
74c895974fd3566 Dikshita Agarwal  2020-12-24  739  	}
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  740  	quant.layer_id = 0;
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  741  	ret = hfi_session_set_property(inst, ptype, &quant);
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  742  	if (ret)
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  743  		return ret;
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  744  
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  745  	ptype = HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE;
74c895974fd3566 Dikshita Agarwal  2020-12-24  746  	if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) {
74c895974fd3566 Dikshita Agarwal  2020-12-24  747  		quant_range.min_qp = ctr->hevc_min_qp;
74c895974fd3566 Dikshita Agarwal  2020-12-24  748  		quant_range.max_qp = ctr->hevc_max_qp;
74c895974fd3566 Dikshita Agarwal  2020-12-24  749  	} else {
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  750  		quant_range.min_qp = ctr->h264_min_qp;
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  751  		quant_range.max_qp = ctr->h264_max_qp;
74c895974fd3566 Dikshita Agarwal  2020-12-24  752  	}
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  753  	quant_range.layer_id = 0;
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  754  	ret = hfi_session_set_property(inst, ptype, &quant_range);
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  755  	if (ret)
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  756  		return ret;
2123cbd687ca0c5 Kelvin Lawson     2018-11-29  757  
f2fb3f02abe2e66 Dikshita Agarwal  2021-03-24  758  	ptype = HFI_PROPERTY_PARAM_VENC_LTRMODE;
f2fb3f02abe2e66 Dikshita Agarwal  2021-03-24  759  	ltr_mode.ltr_count = ctr->ltr_count;
f2fb3f02abe2e66 Dikshita Agarwal  2021-03-24  760  	ltr_mode.ltr_mode = HFI_LTR_MODE_MANUAL;
f2fb3f02abe2e66 Dikshita Agarwal  2021-03-24  761  	ltr_mode.trust_mode = 1;
f2fb3f02abe2e66 Dikshita Agarwal  2021-03-24  762  	ret = hfi_session_set_property(inst, ptype, &ltr_mode);
f2fb3f02abe2e66 Dikshita Agarwal  2021-03-24  763  	if (ret)
f2fb3f02abe2e66 Dikshita Agarwal  2021-03-24  764  		return ret;
f2fb3f02abe2e66 Dikshita Agarwal  2021-03-24  765  
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  766  	switch (inst->hfi_codec) {
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  767  	case HFI_VIDEO_CODEC_H264:
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  768  		profile = ctr->profile.h264;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  769  		level = ctr->level.h264;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  770  		break;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  771  	case HFI_VIDEO_CODEC_MPEG4:
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  772  		profile = ctr->profile.mpeg4;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  773  		level = ctr->level.mpeg4;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  774  		break;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  775  	case HFI_VIDEO_CODEC_VP8:
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  776  		profile = ctr->profile.vp8;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  777  		level = 0;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  778  		break;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  779  	case HFI_VIDEO_CODEC_VP9:
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  780  		profile = ctr->profile.vp9;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  781  		level = ctr->level.vp9;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  782  		break;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  783  	case HFI_VIDEO_CODEC_HEVC:
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  784  		profile = ctr->profile.hevc;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  785  		level = ctr->level.hevc;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  786  		break;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  787  	case HFI_VIDEO_CODEC_MPEG2:
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  788  	default:
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  789  		profile = 0;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  790  		level = 0;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  791  		break;
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  792  	}
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  793  
a7a20f721e812a5 Stanimir Varbanov 2020-10-27  794  	ret = venus_helper_set_profile_level(inst, profile, level);
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  795  	if (ret)
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  796  		return ret;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  797  
08c06797627935d Stanimir Varbanov 2020-11-24  798  	if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264 ||
08c06797627935d Stanimir Varbanov 2020-11-24  799  	    inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) {
08c06797627935d Stanimir Varbanov 2020-11-24  800  		struct hfi_enable en = {};
08c06797627935d Stanimir Varbanov 2020-11-24  801  
08c06797627935d Stanimir Varbanov 2020-11-24  802  		ptype = HFI_PROPERTY_PARAM_VENC_H264_GENERATE_AUDNAL;
08c06797627935d Stanimir Varbanov 2020-11-24  803  
08c06797627935d Stanimir Varbanov 2020-11-24  804  		if (ctr->aud_enable)
08c06797627935d Stanimir Varbanov 2020-11-24  805  			en.enable = 1;
08c06797627935d Stanimir Varbanov 2020-11-24  806  
08c06797627935d Stanimir Varbanov 2020-11-24 @807  		ret = hfi_session_set_property(inst, ptype, &en);
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  808  	}
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  809  
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  810  	if ((inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264 ||
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  811  	     inst->fmt_cap->pixfmt == V4L2_PIX_FMT_HEVC) &&
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  812  	    (rate_control == HFI_RATE_CONTROL_CBR_VFR ||
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  813  	     rate_control == HFI_RATE_CONTROL_CBR_CFR)) {
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  814  		intra_refresh.mode = HFI_INTRA_REFRESH_NONE;
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  815  		intra_refresh.cir_mbs = 0;
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  816  
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  817  		if (ctr->intra_refresh_period) {
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  818  			u32 mbs;
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  819  
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  820  			mbs = ALIGN(inst->width, 16) * ALIGN(inst->height, 16);
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  821  			mbs /= 16 * 16;
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  822  			if (mbs % ctr->intra_refresh_period)
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  823  				mbs++;
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  824  			mbs /= ctr->intra_refresh_period;
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  825  
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  826  			intra_refresh.mode = HFI_INTRA_REFRESH_RANDOM;
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  827  			intra_refresh.cir_mbs = mbs;
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  828  		}
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  829  
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  830  		ptype = HFI_PROPERTY_PARAM_VENC_INTRA_REFRESH;
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  831  
f7a3d3dc5831df6 Stanimir Varbanov 2021-06-22  832  		ret = hfi_session_set_property(inst, ptype, &intra_refresh);
08c06797627935d Stanimir Varbanov 2020-11-24  833  		if (ret)
08c06797627935d Stanimir Varbanov 2020-11-24  834  			return ret;
08c06797627935d Stanimir Varbanov 2020-11-24  835  	}
08c06797627935d Stanimir Varbanov 2020-11-24  836  
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  837  	return 0;
aaaa93eda64b004 Stanimir Varbanov 2017-06-15  838  }
aaaa93eda64b004 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 <stanimir.varbanov@linaro.org>
:::::: CC: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 4+ messages in thread

* drivers/media/platform/qcom/venus/venc.c:807:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-06-27  4:32 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-06-27  4:32 UTC (permalink / raw)
  To: kbuild

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

:::::: 
:::::: 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: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Stanimir Varbanov <stanimir.varbanov@linaro.org>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org

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/202206271232.fPUoogfV-lkp(a)intel.com/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 <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
           status |= si21_writeregs(state, PLL_DIVISOR_REG, &regs[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, &regs[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, &ltr_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 <stanimir.varbanov@linaro.org>
:::::: CC: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* drivers/media/platform/qcom/venus/venc.c:807:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-06-01  2:50 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-06-01  2:50 UTC (permalink / raw)
  To: kbuild

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

:::::: 
:::::: 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: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Stanimir Varbanov <stanimir.varbanov@linaro.org>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   700170bf6b4d773e328fa54ebb70ba444007c702
commit: f7a3d3dc5831df6f898a5ae2a6ea1d221ea95c8a media: venus: venc: Add support for intra-refresh period
date:   10 months ago
:::::: branch date: 3 hours ago
:::::: commit date: 10 months ago
config: arm-randconfig-c002-20220531 (https://download.01.org/0day-ci/archive/20220601/202206011053.b9vqMifY-lkp(a)intel.com/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 <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
   sound/soc/sh/rcar/mix.c:88:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = rsnd_priv_to_dev(priv);
                          ^~~
   1 warning generated.
   sound/soc/sh/rcar/cmd.c:29:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = rsnd_priv_to_dev(priv);
                          ^~~
   sound/soc/sh/rcar/cmd.c:29:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = rsnd_priv_to_dev(priv);
                          ^~~
   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 (2 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.
   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/v4l2-core/v4l2-async.c:448:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev =
                          ^~~
   drivers/media/v4l2-core/v4l2-async.c:448:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev =
                          ^~~
   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 with check filters).
   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.
   drivers/phy/qualcomm/phy-qcom-qusb2.c:562:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = &qphy->phy->dev;
                          ^~~   ~~~~~~~~~~~~~~~
   drivers/phy/qualcomm/phy-qcom-qusb2.c:562:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = &qphy->phy->dev;
                          ^~~   ~~~~~~~~~~~~~~~
   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 (2 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 (2 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.
   3 warnings generated.
   Suppressed 3 warnings (2 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.
   Suppressed 2 warnings (2 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/mfd/max8997-irq.c:248:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
                   ret = max8997_read_reg(max8997->i2c, MAX8997_REG_FLASHSTATUS,
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mfd/max8997-irq.c:248:3: note: Value stored to 'ret' is never read
                   ret = max8997_read_reg(max8997->i2c, MAX8997_REG_FLASHSTATUS,
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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/hwmon/ltc2945.c:286:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = regmap_update_bits(regmap, LTC2945_CONTROL, CONTROL_TEST_MODE,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hwmon/ltc2945.c:286:2: note: Value stored to 'ret' is never read
           ret = regmap_update_bits(regmap, LTC2945_CONTROL, CONTROL_TEST_MODE,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   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.
   3 warnings generated.
   sound/soc/codecs/cs43130.c:180:8: warning: Excessive padding in 'struct cs43130_pll_params' (7 padding bytes, where 3 is optimal). 
   Optimal fields order: 
   pll_in, 
   pll_div_frac, 
   pll_out, 
   sclk_prediv, 
   pll_div_int, 
   pll_mode, 
   pll_divout, 
   pll_cal_ratio, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct cs43130_pll_params {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/cs43130.c:180:8: note: Excessive padding in 'struct cs43130_pll_params' (7 padding bytes, where 3 is optimal). Optimal fields order: pll_in, pll_div_frac, pll_out, sclk_prediv, pll_div_int, pll_mode, pll_divout, pll_cal_ratio, consider reordering the fields or adding explicit padding members
   struct cs43130_pll_params {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/cs43130.c:1938:28: warning: Value stored to 'component' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct snd_soc_component *component = cs43130->component;
                                     ^~~~~~~~~   ~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/cs43130.c:1938:28: note: Value stored to 'component' during its initialization is never read
           struct snd_soc_component *component = cs43130->component;
                                     ^~~~~~~~~   ~~~~~~~~~~~~~~~~~~
   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.
   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.
   Suppressed 3 warnings (2 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.
   sound/soc/codecs/da7213.c:1427:3: warning: Value stored to 'indiv' is never read [clang-analyzer-deadcode.DeadStores]
                   indiv = DA7213_PLL_INDIV_9_TO_18_MHZ_VAL;
                   ^
   sound/soc/codecs/da7213.c:1427:3: note: Value stored to 'indiv' is never read
   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.
   1 warning generated.
--
                            ^
   include/linux/of.h:164:3: note: expanded from macro 'to_of_node'
                   is_of_node(__to_of_node_fwnode) ?                       \
                   ^
   drivers/of/property.c:920:19: note: Access to field 'full_name' results in a dereference of a null pointer
           return kbasename(to_of_node(fwnode)->full_name);
                            ^
   include/linux/of.h:161:2: note: expanded from macro 'to_of_node'
           ({                                                              \
           ^
   drivers/of/property.c:926:7: warning: Access to field 'parent' results in a dereference of a null pointer [clang-analyzer-core.NullDereference]
           if (!to_of_node(fwnode)->parent)
                ^
   include/linux/of.h:161:2: note: expanded from macro 'to_of_node'
           ({                                                              \
           ^
   drivers/of/property.c:926:7: note: '?' condition is false
           if (!to_of_node(fwnode)->parent)
                ^
   include/linux/of.h:164:3: note: expanded from macro 'to_of_node'
                   is_of_node(__to_of_node_fwnode) ?                       \
                   ^
   drivers/of/property.c:926:7: note: Access to field 'parent' results in a dereference of a null pointer
           if (!to_of_node(fwnode)->parent)
                ^
   include/linux/of.h:161:2: note: expanded from macro 'to_of_node'
           ({                                                              \
           ^
   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.
   drivers/leds/uleds.c:150:4: warning: Value stored to 'retval' is never read [clang-analyzer-deadcode.DeadStores]
                           retval = copy_to_user(buffer, &udev->brightness,
                           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/leds/uleds.c:150:4: note: Value stored to 'retval' is never read
                           retval = copy_to_user(buffer, &udev->brightness,
                           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   fs/isofs/inode.c:1389:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
                   ret = -EIO;
                   ^     ~~~~
   fs/isofs/inode.c:1389:3: note: Value stored to 'ret' is never read
                   ret = -EIO;
                   ^     ~~~~
   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.
   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.
   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.
   sound/soc/img/img-i2s-in.c:449:25: warning: The result of the left shift is undefined because the right operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
           max_i2s_chan_pow_2 = 1 << get_count_order(i2s->max_i2s_chan);
                                  ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/img/img-i2s-in.c:430:6: note: Assuming 'i2s' is non-null
           if (!i2s)
               ^~~~
   sound/soc/img/img-i2s-in.c:430:2: note: Taking false branch
           if (!i2s)
           ^
   sound/soc/img/img-i2s-in.c:438:2: note: Taking false branch
           if (IS_ERR(base))
           ^
   sound/soc/img/img-i2s-in.c:443:2: note: Taking false branch
           if (of_property_read_u32(pdev->dev.of_node, "img,i2s-channels",
           ^
   sound/soc/img/img-i2s-in.c:449:28: note: Calling 'get_count_order'
           max_i2s_chan_pow_2 = 1 << get_count_order(i2s->max_i2s_chan);
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/bitops.h:194:6: note: Assuming 'count' is equal to 0
           if (count == 0)
               ^~~~~~~~~~
   include/linux/bitops.h:194:2: note: Taking true branch
           if (count == 0)
           ^
   include/linux/bitops.h:195:3: note: Returning the value -1
                   return -1;
                   ^~~~~~~~~
   sound/soc/img/img-i2s-in.c:449:28: note: Returning from 'get_count_order'
           max_i2s_chan_pow_2 = 1 << get_count_order(i2s->max_i2s_chan);
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/img/img-i2s-in.c:449:25: note: The result of the left shift is undefined because the right operand is negative
           max_i2s_chan_pow_2 = 1 << get_count_order(i2s->max_i2s_chan);
                                  ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
   sound/core/info.c:115:3: warning: Value stored to 'offset' is never read [clang-analyzer-deadcode.DeadStores]
                   offset = entry->c.ops->llseek(entry,
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/core/info.c:115:3: note: Value stored to 'offset' is never read
                   offset = entry->c.ops->llseek(entry,
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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 (2 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 (2 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.
   sound/soc/codecs/da7213.c:1427:3: warning: Value stored to 'indiv' is never read [clang-analyzer-deadcode.DeadStores]
                   indiv = DA7213_PLL_INDIV_9_TO_18_MHZ_VAL;
                   ^
   sound/soc/codecs/da7213.c:1427:3: note: Value stored to 'indiv' is never read
   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.

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, &ltr_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 <stanimir.varbanov@linaro.org>
:::::: CC: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* drivers/media/platform/qcom/venus/venc.c:807:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-03-18 13:31 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-03-18 13:31 UTC (permalink / raw)
  To: kbuild

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

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Stanimir Varbanov <stanimir.varbanov@linaro.org>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   551acdc3c3d2b6bc97f11e31dcf960bc36343bfc
commit: f7a3d3dc5831df6f898a5ae2a6ea1d221ea95c8a media: venus: venc: Add support for intra-refresh period
date:   8 months ago
:::::: branch date: 18 hours ago
:::::: commit date: 8 months ago
config: riscv-randconfig-c006-20220317 (https://download.01.org/0day-ci/archive/20220318/202203182154.UNWCvcFs-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project a6ec1e3d798f8eab43fb3a91028c6ab04e115fcb)
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 riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # 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 to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer 

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


clang-analyzer warnings: (new ones prefixed by >>)
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:130:2: note: Taking true branch
           if (it->lo != 0) {
           ^
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:133:11: note: Calling 'inv_compute_chip_period'
                   valid = inv_compute_chip_period(ts, fifo_mult, period);
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:101:2: note: Taking false branch
           if (!inv_validate_period(period, mult))
           ^
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:106:2: note: Calling 'inv_update_acc'
           inv_update_acc(&ts->chip_period, new_chip_period);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:30:6: note: Assuming the condition is false
           if (acc->idx >= ARRAY_SIZE(acc->values))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:30:2: note: Taking false branch
           if (acc->idx >= ARRAY_SIZE(acc->values))
           ^
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:34:7: note: The value 0 is assigned to 'i'
           for (i = 0; i < ARRAY_SIZE(acc->values); ++i) {
                ^~~~~
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:34:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < ARRAY_SIZE(acc->values); ++i) {
           ^
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:35:7: note: Assuming the condition is true
                   if (acc->values[i] == 0)
                       ^~~~~~~~~~~~~~~~~~~
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:35:3: note: Taking true branch
                   if (acc->values[i] == 0)
                   ^
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:36:4: note:  Execution continues on line 40
                           break;
                           ^
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:40:26: note: Passing the value 0 via 2nd parameter 'divisor'
           acc->val = div_u64(sum, i);
                                   ^
   drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c:40:13: note: Calling 'div_u64'
           acc->val = div_u64(sum, i);
                      ^~~~~~~~~~~~~~~
   include/linux/math64.h:128:31: note: Passing the value 0 via 2nd parameter 'divisor'
           return div_u64_rem(dividend, divisor, &remainder);
                                        ^~~~~~~
   include/linux/math64.h:128:9: note: Calling 'div_u64_rem'
           return div_u64_rem(dividend, divisor, &remainder);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/math64.h:92:15: note: '__base' initialized to 0
           *remainder = do_div(dividend, divisor);
                        ^
   include/asm-generic/div64.h:226:2: note: expanded from macro 'do_div'
           uint32_t __base = (base);                       \
           ^~~~~~~~~~~~~~~
   include/linux/math64.h:92:15: note: Left side of '&&' is false
           *remainder = do_div(dividend, divisor);
                        ^
   include/asm-generic/div64.h:229:35: note: expanded from macro 'do_div'
           if (__builtin_constant_p(__base) &&             \
                                            ^
   include/linux/math64.h:92:15: note: 4 is >= 4
           *remainder = do_div(dividend, divisor);
                        ^
   include/asm-generic/div64.h:233:13: note: expanded from macro 'do_div'
           } else if (__div64_const32_is_OK &&             \
                      ^~~~~~~~~~~~~~~~~~~~~
   include/asm-generic/div64.h:68:32: note: expanded from macro '__div64_const32_is_OK'
   #define __div64_const32_is_OK (__GNUC__ >= 4)
                                  ^~~~~~~~
   note: expanded from here
   include/linux/math64.h:92:15: note: Left side of '&&' is true
           *remainder = do_div(dividend, divisor);
                        ^
   include/asm-generic/div64.h:233:13: note: expanded from macro 'do_div'
           } else if (__div64_const32_is_OK &&             \
                      ^
   include/asm-generic/div64.h:68:31: note: expanded from macro '__div64_const32_is_OK'
   #define __div64_const32_is_OK (__GNUC__ >= 4)
                                 ^
   include/linux/math64.h:92:15: note: Left side of '&&' is false
           *remainder = do_div(dividend, divisor);
                        ^
   include/asm-generic/div64.h:234:35: note: expanded from macro 'do_div'
                      __builtin_constant_p(__base) &&      \
                                                   ^
   include/linux/math64.h:92:15: note: Taking true branch
           *remainder = do_div(dividend, divisor);
                        ^
   include/asm-generic/div64.h:241:9: note: expanded from macro 'do_div'
           } else if (likely(((n) >> 32) == 0)) {          \
                  ^
   include/linux/math64.h:92:15: note: Division by zero
           *remainder = do_div(dividend, divisor);
                        ^
   include/asm-generic/div64.h:242:25: note: expanded from macro 'do_div'
                   __rem = (uint32_t)(n) % __base;         \
                           ~~~~~~~~~~~~~~^~~~~~~~
   Suppressed 8 warnings (8 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
>> 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 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   drivers/hwmon/npcm750-pwm-fan.c:876:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = npcm7xx_pwm_config_set(data, pwm_port,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hwmon/npcm750-pwm-fan.c:876:2: note: Value stored to 'ret' is never read
           ret = npcm7xx_pwm_config_set(data, pwm_port,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 6 warnings (6 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   7 warnings generated.
   drivers/hwmon/pc87360.c:1450:12: warning: The right operand of '>=' is a garbage value due to array index out of bounds [clang-analyzer-core.UndefinedBinaryOperatorResult]
                   if (init >= init_temp[i]) {
                            ^
   drivers/hwmon/pc87360.c:1203:6: note: Assuming 'data' is non-null
           if (!data)
               ^~~~~
   drivers/hwmon/pc87360.c:1203:2: note: Taking false branch
           if (!data)
           ^
   drivers/hwmon/pc87360.c:1206:2: note: Control jumps to the 'default' case at line 1207
           switch (devid) {
           ^
   drivers/hwmon/pc87360.c:1210:3: note:  Execution continues on line 1233
                   break;
                   ^
   drivers/hwmon/pc87360.c:1234:2: note: Loop condition is false.  Exiting loop
           mutex_init(&data->lock);
           ^
   include/linux/mutex.h:113:32: note: expanded from macro 'mutex_init'
   #define mutex_init(mutex)                                               \
                                                                           ^
   drivers/hwmon/pc87360.c:1235:2: note: Loop condition is false.  Exiting loop
           mutex_init(&data->update_lock);
           ^
   include/linux/mutex.h:113:32: note: expanded from macro 'mutex_init'
   #define mutex_init(mutex)                                               \
                                                                           ^
   drivers/hwmon/pc87360.c:1238:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < LDNI_MAX; i++) {
           ^
   drivers/hwmon/pc87360.c:1240:7: note: Assuming the condition is false
                   if (data->address[i]
                       ^~~~~~~~~~~~~~~~
   drivers/hwmon/pc87360.c:1241:4: note: Left side of '&&' is false
                    && !devm_request_region(dev, extra_isa[i], PC87360_EXTENT,
                    ^
   drivers/hwmon/pc87360.c:1238:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < LDNI_MAX; i++) {
           ^
   drivers/hwmon/pc87360.c:1240:7: note: Assuming the condition is false
                   if (data->address[i]
                       ^~~~~~~~~~~~~~~~
   drivers/hwmon/pc87360.c:1241:4: note: Left side of '&&' is false
                    && !devm_request_region(dev, extra_isa[i], PC87360_EXTENT,
                    ^
   drivers/hwmon/pc87360.c:1238:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < LDNI_MAX; i++) {
           ^
   drivers/hwmon/pc87360.c:1240:7: note: Assuming the condition is false
                   if (data->address[i]
                       ^~~~~~~~~~~~~~~~
   drivers/hwmon/pc87360.c:1241:4: note: Left side of '&&' is false
                    && !devm_request_region(dev, extra_isa[i], PC87360_EXTENT,
                    ^
   drivers/hwmon/pc87360.c:1238:2: note: Loop condition is false. Execution continues on line 1251
           for (i = 0; i < LDNI_MAX; i++) {
           ^
   drivers/hwmon/pc87360.c:1251:6: note: Assuming field 'fannr' is 0
           if (data->fannr)
               ^~~~~~~~~~~
   drivers/hwmon/pc87360.c:1251:2: note: Taking false branch
           if (data->fannr)
           ^
   drivers/hwmon/pc87360.c:1259:6: note: Assuming field 'innr' is 0
           if (data->innr) {
               ^~~~~~~~~~
   drivers/hwmon/pc87360.c:1259:2: note: Taking false branch
           if (data->innr) {
           ^
   drivers/hwmon/pc87360.c:1275:2: note: Loop condition is false. Execution continues on line 1282
           for (i = 0; i < data->fannr; i++) {
           ^
   drivers/hwmon/pc87360.c:1282:6: note: Assuming 'init' is > 0
           if (init > 0) {

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, &ltr_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 <stanimir.varbanov@linaro.org>
:::::: CC: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-06-27  4:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-18 11:13 drivers/media/platform/qcom/venus/venc.c:807:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
2022-03-18 13:31 kernel test robot
2022-06-01  2:50 kernel test robot
2022-06-27  4:32 kernel test robot

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.