CC: [email protected]
CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Ming Qian <[email protected]>
CC: Hans Verkuil <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   9050ba3a61a4b5bd84c2cde092a100404f814f31
commit: 42356ecbdb69e49cffd0c1df791280965f9f90e1 media: amphion: add amphion 
vpu entry in Kconfig and Makefile
date:   8 weeks ago
:::::: branch date: 13 hours ago
:::::: commit date: 8 weeks ago
config: arm-randconfig-c002-20220427 
(https://download.01.org/0day-ci/archive/20220503/[email protected]/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
1cddcfdc3c683b393df1a5c9063252eb60e52818)
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=42356ecbdb69e49cffd0c1df791280965f9f90e1
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 42356ecbdb69e49cffd0c1df791280965f9f90e1
        # 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 as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
                   ^
   include/linux/dev_printk.h:105:2: note: expanded from macro 
'dev_printk_index_emit'
           printk_index_subsys_emit("%s %s: ", level, fmt)
           ^
   include/linux/printk.h:413:2: note: expanded from macro 
'printk_index_subsys_emit'
           __printk_index_emit(fmt, level, subsys_fmt_prefix)
           ^
   include/linux/printk.h:383:14: note: expanded from macro 
'__printk_index_emit'
                                   .level = __builtin_constant_p(_level) ? 
(_level) : NULL, \
                                            ^
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Loop condition is 
false.  Exiting loop
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:359:4: note: expanded from macro 
'vpu_trace'
                           dev_info(dev, "%s: " fmt, __func__, ## arg);    \
                           ^
   include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
           dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), 
##__VA_ARGS__)
           ^
   include/linux/dev_printk.h:109:3: note: expanded from macro 
'dev_printk_index_wrap'
                   dev_printk_index_emit(level, fmt);                      \
                   ^
   include/linux/dev_printk.h:105:2: note: expanded from macro 
'dev_printk_index_emit'
           printk_index_subsys_emit("%s %s: ", level, fmt)
           ^
   include/linux/printk.h:413:2: note: expanded from macro 
'printk_index_subsys_emit'
           __printk_index_emit(fmt, level, subsys_fmt_prefix)
           ^
   include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit'
           do {                                                            \
           ^
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: 5th function call 
argument is an uninitialized value
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:359:4: note: expanded from macro 
'vpu_trace'
                           dev_info(dev, "%s: " fmt, __func__, ## arg);    \
                           ^                                      ~~~
   include/linux/dev_printk.h:150:24: note: expanded from macro 'dev_info'
           dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), 
##__VA_ARGS__)
                                 ^                                          
~~~~~~~~~~~
   include/linux/dev_printk.h:110:3: note: expanded from macro 
'dev_printk_index_wrap'
                   _p_func(dev, fmt, ##__VA_ARGS__);                       \
                   ^                   ~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:46:2: warning: 2nd function call 
argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:286:4: note: expanded from macro 
'call_void_vop'
                           (inst)->ops->op(inst, ##args);                       
   \
                           ^                       ~~~~
   drivers/media/platform/amphion/vpu_msgs.c:37:2: note: Calling 
'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&req_data);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:6: note: Assuming 'ops' is null
           if (!ops || !ops->unpack_msg_data)
               ^~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:11: note: Left side of '||' is 
true
           if (!ops || !ops->unpack_msg_data)
                    ^
   drivers/media/platform/amphion/vpu_rpc.h:306:3: note: Returning without 
writing to 'data->enc_frame_size'
                   return -EINVAL;
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:37:2: note: Returning from 
'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&req_data);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Assuming 'debug' is 
false
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:358:7: note: expanded from macro 
'vpu_trace'
                   if (debug)                                              \
                       ^~~~~
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Taking false branch
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:358:3: note: expanded from macro 
'vpu_trace'
                   if (debug)                                              \
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Loop condition is 
false.  Exiting loop
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:357:2: note: expanded from macro 
'vpu_trace'
           do {                                                            \
           ^
   drivers/media/platform/amphion/vpu_msgs.c:46:2: note: Assuming field 
'mem_request' is non-null
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:285:7: note: expanded from macro 
'call_void_vop'
                   if ((inst)->ops->op)                                    \
                       ^~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:46:2: note: Taking true branch
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:285:3: note: expanded from macro 
'call_void_vop'
                   if ((inst)->ops->op)                                    \
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:46:2: note: 2nd function call 
argument is an uninitialized value
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:286:4: note: expanded from macro 
'call_void_vop'
                           (inst)->ops->op(inst, ##args);                       
   \
                           ^                       ~~~~
>> drivers/media/platform/amphion/vpu_msgs.c:138:11: warning: Assigned value is 
>> garbage or undefined [clang-analyzer-core.uninitialized.Assign]
           frame.id = info.id;
                    ^ ~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:135:2: note: Calling 
'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:6: note: Assuming 'ops' is null
           if (!ops || !ops->unpack_msg_data)
               ^~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:11: note: Left side of '||' is 
true
           if (!ops || !ops->unpack_msg_data)
                    ^
   drivers/media/platform/amphion/vpu_rpc.h:306:3: note: Returning without 
writing to 'data->id'
                   return -EINVAL;
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:135:2: note: Returning from 
'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:136:6: note: Assuming field 'type' 
is not equal to VPU_CORE_TYPE_DEC
           if (inst->core->type == VPU_CORE_TYPE_DEC)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:136:2: note: Taking false branch
           if (inst->core->type == VPU_CORE_TYPE_DEC)
           ^
   drivers/media/platform/amphion/vpu_msgs.c:138:11: note: Assigned value is 
garbage or undefined
           frame.id = info.id;
                    ^ ~~~~~~~
   Suppressed 1 warnings (1 with check filters).
   1 warning generated.
   fs/btrfs/free-space-cache.c:755:2: warning: Value stored to 'ret' is never 
read [clang-analyzer-deadcode.DeadStores]
           ret = -1;
           ^     ~~
   fs/btrfs/free-space-cache.c:755:2: note: Value stored to 'ret' is never read
           ret = -1;
           ^     ~~
   1 warning generated.
   fs/btrfs/zlib.c:227:13: warning: The left operand of '!=' is a garbage value 
[clang-analyzer-core.UndefinedBinaryOperatorResult]
           while (ret != Z_STREAM_END) {
                  ~~~ ^
   fs/btrfs/zlib.c:99:2: note: 'ret' declared without an initial value
           int ret;
           ^~~~~~~
   fs/btrfs/zlib.c:115:6: note: Assuming the condition is false
           if (Z_OK != zlib_deflateInit(&workspace->strm, workspace->level)) {
               ^
   include/linux/zlib.h:148:25: note: expanded from macro 'Z_OK'
   #define Z_OK            0
                           ^
   fs/btrfs/zlib.c:115:2: note: Taking false branch
           if (Z_OK != zlib_deflateInit(&workspace->strm, workspace->level)) {
           ^
   fs/btrfs/zlib.c:125:6: note: Assuming 'out_page' is not equal to NULL
           if (out_page == NULL) {
               ^~~~~~~~~~~~~~~~
   fs/btrfs/zlib.c:125:2: note: Taking false branch
           if (out_page == NULL) {
           ^
   fs/btrfs/zlib.c:138:9: note: Assuming 'len' is <= field 'total_in'
           while (workspace->strm.total_in < len) {
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/btrfs/zlib.c:138:2: note: Loop condition is false. Execution continues on 
line 222
           while (workspace->strm.total_in < len) {
           ^
   fs/btrfs/zlib.c:227:13: note: The left operand of '!=' is a garbage value
           while (ret != Z_STREAM_END) {
                  ~~~ ^
   1 warning generated.
   fs/gfs2/file.c:793:3: warning: Value stored to 'pages' is never read 
[clang-analyzer-deadcode.DeadStores]
                   pages = min(pages, nr_dirtied);
                   ^
   fs/gfs2/file.c:793:3: note: Value stored to 'pages' is never read
   1 warning generated.
   fs/gfs2/ops_fstype.c:852:2: warning: Value stored to 'jindex' is never read 
[clang-analyzer-deadcode.DeadStores]
           jindex = 0;
           ^        ~
   fs/gfs2/ops_fstype.c:852:2: note: Value stored to 'jindex' is never read
           jindex = 0;
           ^        ~
   2 warnings generated.
   fs/gfs2/inode.c:1493:4: warning: Value stored to 'error' is never read 
[clang-analyzer-deadcode.DeadStores]
                           error = 0;
                           ^       ~
   fs/gfs2/inode.c:1493:4: note: Value stored to 'error' is never read
                           error = 0;
                           ^       ~
   fs/gfs2/inode.c:1558:3: warning: Value stored to 'error' is never read 
[clang-analyzer-deadcode.DeadStores]
                   error = gfs2_unlink_inode(ndip, ndentry);
                   ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/gfs2/inode.c:1558:3: note: Value stored to 'error' is never read
                   error = gfs2_unlink_inode(ndip, ndentry);
                   ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
   include/linux/hid.h:1037:9: warning: Access to field 'name' results in a 
dereference of a null pointer (loaded from variable 'input') 
[clang-analyzer-core.NullDereference]
                                       input->name, c, type);
                                       ^
   drivers/hid/hid-ite.c:49:7: note: Assuming the condition is true
           if ((quirks & QUIRK_TOUCHPAD_ON_OFF_REPORT) &&
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hid/hid-ite.c:49:6: note: Left side of '&&' is true
           if ((quirks & QUIRK_TOUCHPAD_ON_OFF_REPORT) &&
               ^

vim +138 drivers/media/platform/amphion/vpu_msgs.c

61cbf1c1fa6d74 Ming Qian 2022-02-24   32  
61cbf1c1fa6d74 Ming Qian 2022-02-24   33  static void 
vpu_session_handle_mem_request(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   34  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   35        struct vpu_pkt_mem_req_data 
req_data;
61cbf1c1fa6d74 Ming Qian 2022-02-24   36  
61cbf1c1fa6d74 Ming Qian 2022-02-24   37        
vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&req_data);
61cbf1c1fa6d74 Ming Qian 2022-02-24   38        vpu_trace(inst->dev, "[%d] 
%d:%d %d:%d %d:%d\n",
61cbf1c1fa6d74 Ming Qian 2022-02-24   39                  inst->id,
61cbf1c1fa6d74 Ming Qian 2022-02-24   40                  
req_data.enc_frame_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   41                  
req_data.enc_frame_num,
61cbf1c1fa6d74 Ming Qian 2022-02-24   42                  
req_data.ref_frame_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   43                  
req_data.ref_frame_num,
61cbf1c1fa6d74 Ming Qian 2022-02-24   44                  req_data.act_buf_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   45                  req_data.act_buf_num);
61cbf1c1fa6d74 Ming Qian 2022-02-24  @46        call_void_vop(inst, mem_request,
61cbf1c1fa6d74 Ming Qian 2022-02-24   47                      
req_data.enc_frame_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   48                      
req_data.enc_frame_num,
61cbf1c1fa6d74 Ming Qian 2022-02-24   49                      
req_data.ref_frame_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   50                      
req_data.ref_frame_num,
61cbf1c1fa6d74 Ming Qian 2022-02-24   51                      
req_data.act_buf_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   52                      
req_data.act_buf_num);
61cbf1c1fa6d74 Ming Qian 2022-02-24   53  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   54  
61cbf1c1fa6d74 Ming Qian 2022-02-24   55  static void 
vpu_session_handle_stop_done(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   56  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   57        vpu_trace(inst->dev, "[%d]\n", 
inst->id);
61cbf1c1fa6d74 Ming Qian 2022-02-24   58  
61cbf1c1fa6d74 Ming Qian 2022-02-24   59        call_void_vop(inst, stop_done);
61cbf1c1fa6d74 Ming Qian 2022-02-24   60  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   61  
61cbf1c1fa6d74 Ming Qian 2022-02-24   62  static void 
vpu_session_handle_seq_hdr(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   63  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   64        struct vpu_dec_codec_info info;
61cbf1c1fa6d74 Ming Qian 2022-02-24   65        const struct vpu_core_resources 
*res;
61cbf1c1fa6d74 Ming Qian 2022-02-24   66  
61cbf1c1fa6d74 Ming Qian 2022-02-24   67        memset(&info, 0, sizeof(info));
61cbf1c1fa6d74 Ming Qian 2022-02-24   68        res = vpu_get_resource(inst);
61cbf1c1fa6d74 Ming Qian 2022-02-24   69        info.stride = res ? res->stride 
: 1;
61cbf1c1fa6d74 Ming Qian 2022-02-24   70        
vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
61cbf1c1fa6d74 Ming Qian 2022-02-24   71        call_void_vop(inst, 
event_notify, VPU_MSG_ID_SEQ_HDR_FOUND, &info);
61cbf1c1fa6d74 Ming Qian 2022-02-24   72  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   73  
61cbf1c1fa6d74 Ming Qian 2022-02-24   74  static void 
vpu_session_handle_resolution_change(struct vpu_inst *inst, struct 
vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   75  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   76        call_void_vop(inst, 
event_notify, VPU_MSG_ID_RES_CHANGE, NULL);
61cbf1c1fa6d74 Ming Qian 2022-02-24   77  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   78  
61cbf1c1fa6d74 Ming Qian 2022-02-24   79  static void 
vpu_session_handle_enc_frame_done(struct vpu_inst *inst, struct vpu_rpc_event 
*pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   80  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   81        struct vpu_enc_pic_info info;
61cbf1c1fa6d74 Ming Qian 2022-02-24   82  
61cbf1c1fa6d74 Ming Qian 2022-02-24   83        
vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
61cbf1c1fa6d74 Ming Qian 2022-02-24   84        dev_dbg(inst->dev, "[%d] frame 
id = %d, wptr = 0x%x, size = %d\n",
61cbf1c1fa6d74 Ming Qian 2022-02-24   85                inst->id, 
info.frame_id, info.wptr, info.frame_size);
61cbf1c1fa6d74 Ming Qian 2022-02-24   86        call_void_vop(inst, 
get_one_frame, &info);
61cbf1c1fa6d74 Ming Qian 2022-02-24   87  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   88  
61cbf1c1fa6d74 Ming Qian 2022-02-24   89  static void 
vpu_session_handle_frame_request(struct vpu_inst *inst, struct vpu_rpc_event 
*pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   90  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   91        struct vpu_fs_info fs;
61cbf1c1fa6d74 Ming Qian 2022-02-24   92  
61cbf1c1fa6d74 Ming Qian 2022-02-24   93        
vpu_iface_unpack_msg_data(inst->core, pkt, &fs);
61cbf1c1fa6d74 Ming Qian 2022-02-24   94        call_void_vop(inst, 
event_notify, VPU_MSG_ID_FRAME_REQ, &fs);
61cbf1c1fa6d74 Ming Qian 2022-02-24   95  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   96  
61cbf1c1fa6d74 Ming Qian 2022-02-24   97  static void 
vpu_session_handle_frame_release(struct vpu_inst *inst, struct vpu_rpc_event 
*pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   98  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   99        if (inst->core->type == 
VPU_CORE_TYPE_ENC) {
61cbf1c1fa6d74 Ming Qian 2022-02-24  100                struct vpu_frame_info 
info;
61cbf1c1fa6d74 Ming Qian 2022-02-24  101  
61cbf1c1fa6d74 Ming Qian 2022-02-24  102                memset(&info, 0, 
sizeof(info));
61cbf1c1fa6d74 Ming Qian 2022-02-24  103                
vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info.sequence);
61cbf1c1fa6d74 Ming Qian 2022-02-24  104                dev_dbg(inst->dev, 
"[%d] %d\n", inst->id, info.sequence);
61cbf1c1fa6d74 Ming Qian 2022-02-24  105                info.type = 
inst->out_format.type;
61cbf1c1fa6d74 Ming Qian 2022-02-24  106                call_void_vop(inst, 
buf_done, &info);
61cbf1c1fa6d74 Ming Qian 2022-02-24  107        } else if (inst->core->type == 
VPU_CORE_TYPE_DEC) {
61cbf1c1fa6d74 Ming Qian 2022-02-24  108                struct vpu_fs_info fs;
61cbf1c1fa6d74 Ming Qian 2022-02-24  109  
61cbf1c1fa6d74 Ming Qian 2022-02-24  110                
vpu_iface_unpack_msg_data(inst->core, pkt, &fs);
61cbf1c1fa6d74 Ming Qian 2022-02-24  111                call_void_vop(inst, 
event_notify, VPU_MSG_ID_FRAME_RELEASE, &fs);
61cbf1c1fa6d74 Ming Qian 2022-02-24  112        }
61cbf1c1fa6d74 Ming Qian 2022-02-24  113  }
61cbf1c1fa6d74 Ming Qian 2022-02-24  114  
61cbf1c1fa6d74 Ming Qian 2022-02-24  115  static void 
vpu_session_handle_input_done(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24  116  {
61cbf1c1fa6d74 Ming Qian 2022-02-24  117        dev_dbg(inst->dev, "[%d]\n", 
inst->id);
61cbf1c1fa6d74 Ming Qian 2022-02-24  118        call_void_vop(inst, input_done);
61cbf1c1fa6d74 Ming Qian 2022-02-24  119  }
61cbf1c1fa6d74 Ming Qian 2022-02-24  120  
61cbf1c1fa6d74 Ming Qian 2022-02-24  121  static void 
vpu_session_handle_pic_decoded(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24  122  {
61cbf1c1fa6d74 Ming Qian 2022-02-24  123        struct vpu_dec_pic_info info;
61cbf1c1fa6d74 Ming Qian 2022-02-24  124  
61cbf1c1fa6d74 Ming Qian 2022-02-24  125        
vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
61cbf1c1fa6d74 Ming Qian 2022-02-24  126        call_void_vop(inst, 
get_one_frame, &info);
61cbf1c1fa6d74 Ming Qian 2022-02-24  127  }
61cbf1c1fa6d74 Ming Qian 2022-02-24  128  
61cbf1c1fa6d74 Ming Qian 2022-02-24  129  static void 
vpu_session_handle_pic_done(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24  130  {
61cbf1c1fa6d74 Ming Qian 2022-02-24  131        struct vpu_dec_pic_info info;
61cbf1c1fa6d74 Ming Qian 2022-02-24  132        struct vpu_frame_info frame;
61cbf1c1fa6d74 Ming Qian 2022-02-24  133  
61cbf1c1fa6d74 Ming Qian 2022-02-24  134        memset(&frame, 0, 
sizeof(frame));
61cbf1c1fa6d74 Ming Qian 2022-02-24  135        
vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
61cbf1c1fa6d74 Ming Qian 2022-02-24  136        if (inst->core->type == 
VPU_CORE_TYPE_DEC)
61cbf1c1fa6d74 Ming Qian 2022-02-24  137                frame.type = 
inst->cap_format.type;
61cbf1c1fa6d74 Ming Qian 2022-02-24 @138        frame.id = info.id;
61cbf1c1fa6d74 Ming Qian 2022-02-24  139        frame.luma = info.luma;
61cbf1c1fa6d74 Ming Qian 2022-02-24  140        frame.skipped = info.skipped;
61cbf1c1fa6d74 Ming Qian 2022-02-24  141        frame.timestamp = 
info.timestamp;
61cbf1c1fa6d74 Ming Qian 2022-02-24  142  
61cbf1c1fa6d74 Ming Qian 2022-02-24  143        call_void_vop(inst, buf_done, 
&frame);
61cbf1c1fa6d74 Ming Qian 2022-02-24  144  }
61cbf1c1fa6d74 Ming Qian 2022-02-24  145  

:::::: The code at line 138 was first introduced by commit
:::::: 61cbf1c1fa6d74a6a232a365e0aeddcab11036e4 media: amphion: implement vpu 
core communication based on mailbox

:::::: TO: Ming Qian <[email protected]>
:::::: CC: Hans Verkuil <[email protected]>

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

Reply via email to