CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Robert Foss <[email protected]>
CC: Mauro Carvalho Chehab <[email protected]>
CC: [email protected]
CC: Hans Verkuil <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   8ced7ca3570333998ad2088d5a6275701970e28e
commit: 2fa698e3da84edc6b7a2d670f8bd5035891a744e media: camss: vfe: Decrease 
priority of of VFE HW version to 'dbg'
date:   8 weeks ago
:::::: branch date: 6 hours ago
:::::: commit date: 8 weeks ago
config: arm-randconfig-c002-20211122 
(https://download.01.org/0day-ci/archive/20211126/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
c133fb321f7ca6083ce15b6aa5bf89de6600e649)
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=2fa698e3da84edc6b7a2d670f8bd5035891a744e
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 2fa698e3da84edc6b7a2d670f8bd5035891a744e
        # save the config file to linux build tree
        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 >>)
   drivers/dma/nbpfaxi.c:1339:3: note: Taking false branch
                   if (!irq_res)
                   ^
   drivers/dma/nbpfaxi.c:1342:30: note: Assuming 'irq' is <= field 'end'
                   for (irq = irq_res->start; irq <= irq_res->end;
                                              ^~~~~~~~~~~~~~~~~~~
   drivers/dma/nbpfaxi.c:1342:3: note: Loop condition is true.  Entering loop 
body
                   for (irq = irq_res->start; irq <= irq_res->end;
                   ^
   drivers/dma/nbpfaxi.c:1342:30: note: Assuming 'irq' is <= field 'end'
                   for (irq = irq_res->start; irq <= irq_res->end;
                                              ^~~~~~~~~~~~~~~~~~~
   drivers/dma/nbpfaxi.c:1342:3: note: Loop condition is true.  Entering loop 
body
                   for (irq = irq_res->start; irq <= irq_res->end;
                   ^
   drivers/dma/nbpfaxi.c:1342:30: note: Assuming 'irq' is > field 'end'
                   for (irq = irq_res->start; irq <= irq_res->end;
                                              ^~~~~~~~~~~~~~~~~~~
   drivers/dma/nbpfaxi.c:1342:3: note: Loop condition is false. Execution 
continues on line 1337
                   for (irq = irq_res->start; irq <= irq_res->end;
                   ^
   drivers/dma/nbpfaxi.c:1337:2: note: Loop condition is true.  Entering loop 
body
           for (i = 0; irqs < ARRAY_SIZE(irqbuf); i++) {
           ^
   drivers/dma/nbpfaxi.c:1339:7: note: Assuming 'irq_res' is null
                   if (!irq_res)
                       ^~~~~~~~
   drivers/dma/nbpfaxi.c:1339:3: note: Taking true branch
                   if (!irq_res)
                   ^
   drivers/dma/nbpfaxi.c:1340:4: note:  Execution continues on line 1353
                           break;
                           ^
   drivers/dma/nbpfaxi.c:1353:6: note: 'irqs' is not equal to 1
           if (irqs != 1 && irqs != 2 && irqs != num_channels + 1)
               ^~~~
   drivers/dma/nbpfaxi.c:1353:6: note: Left side of '&&' is true
   drivers/dma/nbpfaxi.c:1353:19: note: 'irqs' is equal to 2
           if (irqs != 1 && irqs != 2 && irqs != num_channels + 1)
                            ^~~~
   drivers/dma/nbpfaxi.c:1353:29: note: Left side of '&&' is false
           if (irqs != 1 && irqs != 2 && irqs != num_channels + 1)
                                      ^
   drivers/dma/nbpfaxi.c:1356:6: note: 'irqs' is not equal to 1
           if (irqs == 1) {
               ^~~~
   drivers/dma/nbpfaxi.c:1356:2: note: Taking false branch
           if (irqs == 1) {
           ^
   drivers/dma/nbpfaxi.c:1363:7: note: Assuming 'eirq' is >= 0
                   if (eirq < 0)
                       ^~~~~~~~
   drivers/dma/nbpfaxi.c:1363:3: note: Taking false branch
                   if (eirq < 0)
                   ^
   drivers/dma/nbpfaxi.c:1366:7: note: Assuming the condition is true
                   if (irqs == num_channels + 1) {
                       ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/dma/nbpfaxi.c:1366:3: note: Taking true branch
                   if (irqs == num_channels + 1) {
                   ^
   drivers/dma/nbpfaxi.c:1369:4: note: Loop condition is true.  Entering loop 
body
                           for (i = 0, chan = nbpf->chan; i <= num_channels;
                           ^
   drivers/dma/nbpfaxi.c:1372:9: note: Assuming the condition is false
                                   if (irqbuf[i] == eirq)
                                       ^~~~~~~~~~~~~~~~~
   drivers/dma/nbpfaxi.c:1372:5: note: Taking false branch
                                   if (irqbuf[i] == eirq)
                                   ^
   drivers/dma/nbpfaxi.c:1369:4: note: Loop condition is true.  Entering loop 
body
                           for (i = 0, chan = nbpf->chan; i <= num_channels;
                           ^
   drivers/dma/nbpfaxi.c:1372:9: note: Assuming the condition is true
                                   if (irqbuf[i] == eirq)
                                       ^~~~~~~~~~~~~~~~~
   drivers/dma/nbpfaxi.c:1372:5: note: Taking true branch
                                   if (irqbuf[i] == eirq)
                                   ^
   drivers/dma/nbpfaxi.c:1373:6: note: The value 2 is assigned to 'i'
                                           i++;
                                           ^~~
   drivers/dma/nbpfaxi.c:1374:15: note: Assigned value is garbage or undefined
                                   chan->irq = irqbuf[i];
                                             ^ ~~~~~~~~~
   1 warning generated.
   drivers/gpu/drm/panel/panel-elida-kd35t133.c:65:17: warning: Value stored to 
'dev' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx->dev;
                          ^~~   ~~~~~~~~
   drivers/gpu/drm/panel/panel-elida-kd35t133.c:65:17: note: Value stored to 
'dev' during its initialization is never read
           struct device *dev = ctx->dev;
                          ^~~   ~~~~~~~~
   1 warning generated.
   drivers/gpu/drm/panel/panel-innolux-p079zca.c:459:3: warning: Value stored 
to 'err' is never read [clang-analyzer-deadcode.DeadStores]
                   err = PTR_ERR(innolux->enable_gpio);
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/panel/panel-innolux-p079zca.c:459:3: note: Value stored to 
'err' is never read
                   err = PTR_ERR(innolux->enable_gpio);
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   5 warnings generated.
>> drivers/media/platform/qcom/camss/camss-vfe-170.c:184:6: warning: Value 
>> stored to 'gen' during its initialization is never read 
>> [clang-analyzer-deadcode.DeadStores]
           u32 gen = (hw_version >> 28) & 0xF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:184:6: note: Value stored 
to 'gen' during its initialization is never read
           u32 gen = (hw_version >> 28) & 0xF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/media/platform/qcom/camss/camss-vfe-170.c:185:6: warning: Value 
>> stored to 'rev' during its initialization is never read 
>> [clang-analyzer-deadcode.DeadStores]
           u32 rev = (hw_version >> 16) & 0xFFF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:185:6: note: Value stored 
to 'rev' during its initialization is never read
           u32 rev = (hw_version >> 16) & 0xFFF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/media/platform/qcom/camss/camss-vfe-170.c:186:6: warning: Value 
>> stored to 'step' during its initialization is never read 
>> [clang-analyzer-deadcode.DeadStores]
           u32 step = hw_version & 0xFFFF;
               ^~~~   ~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:186:6: note: Value stored 
to 'step' during its initialization is never read
           u32 step = hw_version & 0xFFFF;
               ^~~~   ~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:336:6: warning: Value 
stored to 'violation' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           u32 violation = readl_relaxed(vfe->base + VFE_VIOLATION_STATUS);
               ^~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:336:6: note: Value stored 
to 'violation' during its initialization is never read
           u32 violation = readl_relaxed(vfe->base + VFE_VIOLATION_STATUS);
               ^~~~~~~~~
   Suppressed 1 warnings (1 with check filters).
   1 warning generated.
   include/media/v4l2-subdev.h:1000:10: warning: Access to field 'pads' results 
in a dereference of a null pointer (loaded from variable 'state') 
[clang-analyzer-core.NullDereference]
           return &state->pads[pad].try_fmt;
                   ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1531:14: note: Assuming 'i' is 
< field 'line_num'
           for (i = 0; i < vfe->line_num; i++) {
                       ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1531:2: note: Loop condition 
is true.  Entering loop body
           for (i = 0; i < vfe->line_num; i++) {
           ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1541:7: note: 'i' is not equal 
to VFE_LINE_PIX
                   if (i == VFE_LINE_PIX)
                       ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1541:3: note: Taking false 
branch
                   if (i == VFE_LINE_PIX)
                   ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1550:9: note: Calling 
'vfe_init_formats'
                   ret = vfe_init_formats(sd, NULL);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1256:12: note: 'fh' is null
                   .which = fh ? V4L2_SUBDEV_FORMAT_TRY :
                            ^~
   drivers/media/platform/qcom/camss/camss-vfe.c:1256:12: note: '?' condition 
is false
   drivers/media/platform/qcom/camss/camss-vfe.c:1265:28: note: 'fh' is null
           return vfe_set_format(sd, fh ? fh->state : NULL, &format);
                                     ^~
   drivers/media/platform/qcom/camss/camss-vfe.c:1265:28: note: '?' condition 
is false
   drivers/media/platform/qcom/camss/camss-vfe.c:1265:28: note: Passing null 
pointer value via 2nd parameter 'sd_state'
           return vfe_set_format(sd, fh ? fh->state : NULL, &format);
                                     ^~
   drivers/media/platform/qcom/camss/camss-vfe.c:1265:9: note: Calling 
'vfe_set_format'
           return vfe_set_format(sd, fh ? fh->state : NULL, &format);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1074:6: note: 'format' is not 
equal to NULL
           if (format == NULL)
               ^~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1074:2: note: Taking false 
branch
           if (format == NULL)
           ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1080:6: note: Assuming field 
'pad' is equal to MSM_VFE_PAD_SINK
           if (fmt->pad == MSM_VFE_PAD_SINK) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1080:2: note: Taking true 
branch
           if (fmt->pad == MSM_VFE_PAD_SINK) {
           ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1085:35: note: Passing null 
pointer value via 2nd parameter 'sd_state'
                   format = __vfe_get_format(line, sd_state, MSM_VFE_PAD_SRC,
                                                   ^~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1085:12: note: Calling 
'__vfe_get_format'
                   format = __vfe_get_format(line, sd_state, MSM_VFE_PAD_SRC,
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:768:6: note: Assuming 'which' 
is equal to V4L2_SUBDEV_FORMAT_TRY
           if (which == V4L2_SUBDEV_FORMAT_TRY)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:768:2: note: Taking true branch
           if (which == V4L2_SUBDEV_FORMAT_TRY)
           ^
   drivers/media/platform/qcom/camss/camss-vfe.c:769:52: note: Passing null 
pointer value via 2nd parameter 'state'
                   return v4l2_subdev_get_try_format(&line->subdev, sd_state,
                                                                    ^~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:769:10: note: Calling 
'v4l2_subdev_get_try_format'
                   return v4l2_subdev_get_try_format(&line->subdev, sd_state,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:998:14: note: Assuming 'pad' is < field 
'num_pads'
           if (WARN_ON(pad >= sd->entity.num_pads))
                       ^
   include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   include/media/v4l2-subdev.h:998:6: note: Taking false branch
           if (WARN_ON(pad >= sd->entity.num_pads))
               ^
   include/asm-generic/bug.h:122:2: note: expanded from macro 'WARN_ON'
           if (unlikely(__ret_warn_on))                                    \
           ^
   include/media/v4l2-subdev.h:998:2: note: Taking false branch
           if (WARN_ON(pad >= sd->entity.num_pads))
           ^
   include/media/v4l2-subdev.h:1000:10: note: Access to field 'pads' results in 
a dereference of a null pointer (loaded from variable 'state')
           return &state->pads[pad].try_fmt;
                   ^~~~~
   1 warning generated.
   drivers/regulator/bcm590xx-regulator.c:140:8: warning: Excessive padding in 
'struct bcm590xx_info' (6 padding bytes, where 2 is optimal). 
   Optimal fields order: 
   name, 
   vin_name, 
   volt_table, 
   linear_ranges, 
--
           ^
   fs/overlayfs/export.c:813:6: note: Assuming 'err' is 0
           if (err)
               ^~~
   fs/overlayfs/export.c:813:2: note: Taking false branch
           if (err)
           ^
   fs/overlayfs/export.c:817:12: note: Assuming the condition is false
           dentry = (flags & OVL_FH_FLAG_PATH_UPPER) ?
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:817:11: note: '?' condition is false
           dentry = (flags & OVL_FH_FLAG_PATH_UPPER) ?
                    ^
   fs/overlayfs/export.c:819:4: note: Calling 'ovl_lower_fh_to_d'
                    ovl_lower_fh_to_d(sb, fh);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:708:6: note: Assuming 'err' is 0
           if (err)
               ^~~
   fs/overlayfs/export.c:708:2: note: Taking false branch
           if (err)
           ^
   fs/overlayfs/export.c:711:6: note: Left side of '||' is false
           if (!d_is_dir(origin.dentry) ||
               ^
   fs/overlayfs/export.c:712:6: note: Assuming the condition is false
               !(origin.dentry->d_flags & DCACHE_DISCONNECTED)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:711:2: note: Taking false branch
           if (!d_is_dir(origin.dentry) ||
           ^
   fs/overlayfs/export.c:726:6: note: Assuming field 'indexdir' is null
           if (ofs->indexdir) {
               ^~~~~~~~~~~~~
   fs/overlayfs/export.c:726:2: note: Taking false branch
           if (ofs->indexdir) {
           ^
   fs/overlayfs/export.c:736:6: note: 'index' is null
           if (index && d_is_dir(index)) {
               ^~~~~
   fs/overlayfs/export.c:736:12: note: Left side of '&&' is false
           if (index && d_is_dir(index)) {
                     ^
   fs/overlayfs/export.c:749:2: note: Taking true branch
           if (d_is_dir(origin.dentry)) {
           ^
   fs/overlayfs/export.c:753:7: note: Assuming 'err' is 0
                   if (err)
                       ^~~
   fs/overlayfs/export.c:753:3: note: Taking false branch
                   if (err)
                   ^
   fs/overlayfs/export.c:756:6: note: 'index' is null
           if (index) {
               ^~~~~
   fs/overlayfs/export.c:756:2: note: Taking false branch
           if (index) {
           ^
   fs/overlayfs/export.c:763:11: note: Calling 'ovl_get_dentry'
           dentry = ovl_get_dentry(sb, NULL, &origin, index);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:654:34: note: 'upper' is null
           const struct ovl_layer *layer = upper ? &ofs->layers[0] : 
lowerpath->layer;
                                           ^~~~~
   fs/overlayfs/export.c:654:34: note: '?' condition is false
   fs/overlayfs/export.c:655:24: note: '?' condition is false
           struct dentry *real = upper ?: (index ?: lowerpath->dentry);
                                 ^
   fs/overlayfs/export.c:655:34: note: '?' condition is false
           struct dentry *real = upper ?: (index ?: lowerpath->dentry);
                                           ^
   fs/overlayfs/export.c:655:2: note: 'real' initialized to a null pointer value
           struct dentry *real = upper ?: (index ?: lowerpath->dentry);
           ^~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:661:16: note: Passing null pointer value via 1st 
parameter 'dentry'
           if (!d_is_dir(real))
                         ^~~~
   fs/overlayfs/export.c:661:7: note: Calling 'd_is_dir'
           if (!d_is_dir(real))
                ^~~~~~~~~~~~~~
   include/linux/dcache.h:420:22: note: Passing null pointer value via 1st 
parameter 'dentry'
           return d_can_lookup(dentry) || d_is_autodir(dentry);
                               ^~~~~~
   include/linux/dcache.h:420:9: note: Calling 'd_can_lookup'
           return d_can_lookup(dentry) || d_is_autodir(dentry);
                  ^~~~~~~~~~~~~~~~~~~~
   include/linux/dcache.h:410:24: note: Passing null pointer value via 1st 
parameter 'dentry'
           return __d_entry_type(dentry) == DCACHE_DIRECTORY_TYPE;
                                 ^~~~~~
   include/linux/dcache.h:410:9: note: Calling '__d_entry_type'
           return __d_entry_type(dentry) == DCACHE_DIRECTORY_TYPE;
                  ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/dcache.h:395:9: note: Access to field 'd_flags' results in a 
dereference of a null pointer (loaded from variable 'dentry')
           return dentry->d_flags & DCACHE_ENTRY_TYPE;
                  ^~~~~~
   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.
   5 warnings generated.
   Suppressed 5 warnings (5 with check filters).
   5 warnings generated.
>> drivers/media/platform/qcom/camss/camss-vfe-170.c:184:6: warning: Value 
>> stored to 'gen' during its initialization is never read 
>> [clang-analyzer-deadcode.DeadStores]
           u32 gen = (hw_version >> 28) & 0xF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:184:6: note: Value stored 
to 'gen' during its initialization is never read
           u32 gen = (hw_version >> 28) & 0xF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/media/platform/qcom/camss/camss-vfe-170.c:185:6: warning: Value 
>> stored to 'rev' during its initialization is never read 
>> [clang-analyzer-deadcode.DeadStores]
           u32 rev = (hw_version >> 16) & 0xFFF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:185:6: note: Value stored 
to 'rev' during its initialization is never read
           u32 rev = (hw_version >> 16) & 0xFFF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/media/platform/qcom/camss/camss-vfe-170.c:186:6: warning: Value 
>> stored to 'step' during its initialization is never read 
>> [clang-analyzer-deadcode.DeadStores]
           u32 step = hw_version & 0xFFFF;
               ^~~~   ~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:186:6: note: Value stored 
to 'step' during its initialization is never read
           u32 step = hw_version & 0xFFFF;
               ^~~~   ~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:336:6: warning: Value 
stored to 'violation' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           u32 violation = readl_relaxed(vfe->base + VFE_VIOLATION_STATUS);
               ^~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:336:6: note: Value stored 
to 'violation' during its initialization is never read
           u32 violation = readl_relaxed(vfe->base + VFE_VIOLATION_STATUS);
               ^~~~~~~~~
   Suppressed 1 warnings (1 with check filters).
   1 warning generated.
   include/media/v4l2-subdev.h:1000:10: warning: Access to field 'pads' results 
in a dereference of a null pointer (loaded from variable 'state') 
[clang-analyzer-core.NullDereference]
           return &state->pads[pad].try_fmt;
                   ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1531:14: note: Assuming 'i' is 
< field 'line_num'
           for (i = 0; i < vfe->line_num; i++) {
                       ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1531:2: note: Loop condition 
is true.  Entering loop body
           for (i = 0; i < vfe->line_num; i++) {
           ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1541:7: note: 'i' is not equal 
to VFE_LINE_PIX
                   if (i == VFE_LINE_PIX)
                       ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1541:3: note: Taking false 
branch
                   if (i == VFE_LINE_PIX)
                   ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1550:9: note: Calling 
'vfe_init_formats'
                   ret = vfe_init_formats(sd, NULL);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1256:12: note: 'fh' is null
                   .which = fh ? V4L2_SUBDEV_FORMAT_TRY :
                            ^~
   drivers/media/platform/qcom/camss/camss-vfe.c:1256:12: note: '?' condition 
is false
   drivers/media/platform/qcom/camss/camss-vfe.c:1265:28: note: 'fh' is null
           return vfe_set_format(sd, fh ? fh->state : NULL, &format);
                                     ^~
   drivers/media/platform/qcom/camss/camss-vfe.c:1265:28: note: '?' condition 
is false
   drivers/media/platform/qcom/camss/camss-vfe.c:1265:28: note: Passing null 
pointer value via 2nd parameter 'sd_state'
           return vfe_set_format(sd, fh ? fh->state : NULL, &format);
                                     ^~
   drivers/media/platform/qcom/camss/camss-vfe.c:1265:9: note: Calling 
'vfe_set_format'
           return vfe_set_format(sd, fh ? fh->state : NULL, &format);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1074:6: note: 'format' is not 
equal to NULL
           if (format == NULL)
               ^~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1074:2: note: Taking false 
branch
           if (format == NULL)
           ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1080:6: note: Assuming field 
'pad' is equal to MSM_VFE_PAD_SINK
           if (fmt->pad == MSM_VFE_PAD_SINK) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1080:2: note: Taking true 
branch
           if (fmt->pad == MSM_VFE_PAD_SINK) {
           ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1085:35: note: Passing null 
pointer value via 2nd parameter 'sd_state'
                   format = __vfe_get_format(line, sd_state, MSM_VFE_PAD_SRC,
                                                   ^~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1085:12: note: Calling 
'__vfe_get_format'
                   format = __vfe_get_format(line, sd_state, MSM_VFE_PAD_SRC,
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:768:6: note: Assuming 'which' 
is equal to V4L2_SUBDEV_FORMAT_TRY
           if (which == V4L2_SUBDEV_FORMAT_TRY)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:768:2: note: Taking true branch
           if (which == V4L2_SUBDEV_FORMAT_TRY)
           ^
   drivers/media/platform/qcom/camss/camss-vfe.c:769:52: note: Passing null 
pointer value via 2nd parameter 'state'
                   return v4l2_subdev_get_try_format(&line->subdev, sd_state,
                                                                    ^~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:769:10: note: Calling 
'v4l2_subdev_get_try_format'
                   return v4l2_subdev_get_try_format(&line->subdev, sd_state,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:998:14: note: Assuming 'pad' is < field 
'num_pads'
           if (WARN_ON(pad >= sd->entity.num_pads))
                       ^
   include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   include/media/v4l2-subdev.h:998:6: note: Taking false branch
           if (WARN_ON(pad >= sd->entity.num_pads))
               ^
   include/asm-generic/bug.h:122:2: note: expanded from macro 'WARN_ON'
           if (unlikely(__ret_warn_on))                                    \
           ^
   include/media/v4l2-subdev.h:998:2: note: Taking false branch
           if (WARN_ON(pad >= sd->entity.num_pads))
           ^
   include/media/v4l2-subdev.h:1000:10: note: Access to field 'pads' results in 
a dereference of a null pointer (loaded from variable 'state')
           return &state->pads[pad].try_fmt;
                   ^~~~~
   3 warnings generated.
   drivers/media/dvb-core/dvb_frontend.c:253:8: warning: Access to field 
'eventw' results in a dereference of a null pointer (loaded from variable 
'events') [clang-analyzer-core.NullDereference]
           wp = (events->eventw + 1) % MAX_EVENT;
                 ^
   drivers/media/dvb-core/dvb_frontend.c:660:2: note: Taking false branch
           dev_dbg(fe->dvb->device, "%s:\n", __func__);
           ^

vim +/gen +184 drivers/media/platform/qcom/camss/camss-vfe-170.c

7319cdf189bb643 Robert Foss 2021-03-16  179  
7319cdf189bb643 Robert Foss 2021-03-16  180  static void 
vfe_hw_version_read(struct vfe_device *vfe, struct device *dev)
7319cdf189bb643 Robert Foss 2021-03-16  181  {
7319cdf189bb643 Robert Foss 2021-03-16  182     u32 hw_version = 
readl_relaxed(vfe->base + VFE_HW_VERSION);
7319cdf189bb643 Robert Foss 2021-03-16  183  
7319cdf189bb643 Robert Foss 2021-03-16 @184     u32 gen = (hw_version >> 28) & 
0xF;
7319cdf189bb643 Robert Foss 2021-03-16 @185     u32 rev = (hw_version >> 16) & 
0xFFF;
7319cdf189bb643 Robert Foss 2021-03-16 @186     u32 step = hw_version & 0xFFFF;
7319cdf189bb643 Robert Foss 2021-03-16  187  
2fa698e3da84edc Robert Foss 2021-07-26  188     dev_dbg(dev, "VFE HW Version = 
%u.%u.%u\n", gen, rev, step);
7319cdf189bb643 Robert Foss 2021-03-16  189  }
7319cdf189bb643 Robert Foss 2021-03-16  190  

:::::: The code at line 184 was first introduced by commit
:::::: 7319cdf189bb643c6d56e5898ef89ad7c3ef6c31 media: camss: Add support for 
VFE hardware version Titan 170

:::::: TO: Robert Foss <[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