CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Stanimir Varbanov <[email protected]>
CC: Mauro Carvalho Chehab <[email protected]>
CC: [email protected]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   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/[email protected]/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 <[email protected]>


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 <[email protected]>
:::::: CC: Mauro Carvalho Chehab <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to