CC: [email protected]
CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Michael Tretter <[email protected]>
TO: [email protected]
TO: [email protected]
TO: Marek Vasut <[email protected]>
CC: Rob Herring <[email protected]>
CC: Mauro Carvalho Chehab <[email protected]>
CC: Sakari Ailus <[email protected]>
CC: [email protected]
CC: Ian Arkver <[email protected]>
CC: [email protected]
CC: Michael Tretter <[email protected]>

Hi Michael,

I love your patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on robh/for-next linus/master v5.16-rc3 next-20211201]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Michael-Tretter/media-i2c-isl7998x-Add-driver-for-Intersil-ISL7998x/20211129-204304
base:   git://linuxtv.org/media_tree.git master
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: i386-randconfig-c001-20211130 
(https://download.01.org/0day-ci/archive/20211202/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
25eb7fa01d7ebbe67648ea03841cda55b4239ab2)
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
        # 
https://github.com/0day-ci/linux/commit/0cd375b25d1d515c40b89e8aaffd0456a19ecffb
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Michael-Tretter/media-i2c-isl7998x-Add-driver-for-Intersil-ISL7998x/20211129-204304
        git checkout 0cd375b25d1d515c40b89e8aaffd0456a19ecffb
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 
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/spinlock.h:333:2: note: expanded from macro 'spin_lock_init'
           __raw_spin_lock_init(spinlock_check(lock),              \
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wan/pc300too.c:435:3: note: Loop condition is false.  Exiting 
loop
                   spin_lock_init(&port->lock);
                   ^
   include/linux/spinlock.h:329:35: note: expanded from macro 'spin_lock_init'
   # define spin_lock_init(lock)                                   \
                                                                   ^
   drivers/net/wan/pc300too.c:445:7: note: Assuming field 'type' is not equal 
to PC300_X21
                   if (card->type == PC300_X21)
                       ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wan/pc300too.c:445:3: note: Taking false branch
                   if (card->type == PC300_X21)
                   ^
   drivers/net/wan/pc300too.c:450:3: note: Calling 'sca_init_port'
                   sca_init_port(port);
                   ^~~~~~~~~~~~~~~~~~~
   drivers/net/wan/hd64572.c:123:16: note: Assuming field 'chan' is 0
           u16 dmac_rx = get_dmac_rx(port), dmac_tx = get_dmac_tx(port);
                         ^
   drivers/net/wan/hd64572.c:45:28: note: expanded from macro 'get_dmac_rx'
   #define get_dmac_rx(port) ((port)->chan ? DMAC1RX_OFFSET : DMAC0RX_OFFSET)
                              ^~~~~~~~~~~~
   drivers/net/wan/hd64572.c:123:16: note: '?' condition is false
           u16 dmac_rx = get_dmac_rx(port), dmac_tx = get_dmac_tx(port);
                         ^
   drivers/net/wan/hd64572.c:45:28: note: expanded from macro 'get_dmac_rx'
   #define get_dmac_rx(port) ((port)->chan ? DMAC1RX_OFFSET : DMAC0RX_OFFSET)
                              ^
   drivers/net/wan/hd64572.c:123:45: note: Field 'chan' is 0
           u16 dmac_rx = get_dmac_rx(port), dmac_tx = get_dmac_tx(port);
                                                      ^
   drivers/net/wan/hd64572.c:46:36: note: expanded from macro 'get_dmac_tx'
   #define get_dmac_tx(port) ((port)->chan ? DMAC1TX_OFFSET : DMAC0TX_OFFSET)
                                      ^
   drivers/net/wan/hd64572.c:123:45: note: '?' condition is false
           u16 dmac_rx = get_dmac_rx(port), dmac_tx = get_dmac_tx(port);
                                                      ^
   drivers/net/wan/hd64572.c:46:28: note: expanded from macro 'get_dmac_tx'
   #define get_dmac_tx(port) ((port)->chan ? DMAC1TX_OFFSET : DMAC0TX_OFFSET)
                              ^
   drivers/net/wan/hd64572.c:130:2: note: Loop condition is true.  Entering 
loop body
           for (transmit = 0; transmit < 2; transmit++) {
           ^
   drivers/net/wan/hd64572.c:131:15: note: 'transmit' is 0
                   u16 buffs = transmit ? card->tx_ring_buffers
                               ^~~~~~~~
   drivers/net/wan/hd64572.c:131:15: note: '?' condition is false
   drivers/net/wan/hd64572.c:134:15: note: Assuming 'i' is >= 'buffs'
                   for (i = 0; i < buffs; i++) {
                               ^~~~~~~~~
   drivers/net/wan/hd64572.c:134:3: note: Loop condition is false. Execution 
continues on line 130
                   for (i = 0; i < buffs; i++) {
                   ^
   drivers/net/wan/hd64572.c:130:2: note: Loop condition is true.  Entering 
loop body
           for (transmit = 0; transmit < 2; transmit++) {
           ^
   drivers/net/wan/hd64572.c:131:15: note: 'transmit' is 1
                   u16 buffs = transmit ? card->tx_ring_buffers
                               ^~~~~~~~
   drivers/net/wan/hd64572.c:131:15: note: '?' condition is true
   drivers/net/wan/hd64572.c:134:15: note: Assuming 'i' is >= 'buffs'
                   for (i = 0; i < buffs; i++) {
                               ^~~~~~~~~
   drivers/net/wan/hd64572.c:134:3: note: Loop condition is false. Execution 
continues on line 130
                   for (i = 0; i < buffs; i++) {
                   ^
   drivers/net/wan/hd64572.c:130:2: note: Loop condition is false. Execution 
continues on line 147
           for (transmit = 0; transmit < 2; transmit++) {
           ^
   drivers/net/wan/hd64572.c:155:11: note: Calling 'desc_offset'
           sca_outl(desc_offset(port, 0, 0), dmac_rx + CDAL, card);
                    ^
   drivers/net/wan/hd64572.c:53:45: note: expanded from macro 'sca_outl'
   #define sca_outl(value, reg, card)   writel(value, (card)->scabase + (reg))
                                               ^~~~~
   drivers/net/wan/hd64572.c:87:9: note: Calling 'desc_abs_number'
           return desc_abs_number(port, desc, transmit) * sizeof(pkt_desc);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wan/hd64572.c:77:2: note: 'rx_buffs' initialized to 0
           u16 rx_buffs = port->card->rx_ring_buffers;
           ^~~~~~~~~~~~
   drivers/net/wan/hd64572.c:80:11: note: 'transmit' is 0
           desc %= (transmit ? tx_buffs : rx_buffs); // called with "X + 1" etc.
                    ^~~~~~~~
   drivers/net/wan/hd64572.c:80:11: note: '?' condition is false
   drivers/net/wan/hd64572.c:80:7: note: Division by zero
           desc %= (transmit ? tx_buffs : rx_buffs); // called with "X + 1" etc.
           ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 11 warnings (11 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   7 warnings generated.
   Suppressed 7 warnings (7 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   7 warnings generated.
   Suppressed 7 warnings (7 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   9 warnings generated.
>> drivers/media/i2c/isl7998x.c:642:17: warning: Value stored to 'dev' during 
>> its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = isl7998x->subdev.dev;
                          ^~~   ~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/isl7998x.c:642:17: note: Value stored to 'dev' during its 
initialization is never read
           struct device *dev = isl7998x->subdev.dev;
                          ^~~   ~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/isl7998x.c:863:17: warning: Value stored to 'dev' during 
its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = &client->dev;
                          ^~~   ~~~~~~~~~~~~
   drivers/media/i2c/isl7998x.c:863:17: note: Value stored to 'dev' during its 
initialization is never read
           struct device *dev = &client->dev;
                          ^~~   ~~~~~~~~~~~~
   Suppressed 7 warnings (7 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   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.
   7 warnings generated.
   Suppressed 7 warnings (7 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   11 warnings generated.
   drivers/media/i2c/rdacm21.c:373:11: warning: The left operand of '==' is a 
garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
                   if (val == OV10640_ID_HIGH)
                           ^
   drivers/media/i2c/rdacm21.c:550:6: note: Assuming 'dev' is non-null
           if (!dev)
               ^~~~
   drivers/media/i2c/rdacm21.c:550:2: note: Taking false branch
           if (!dev)
           ^
   drivers/media/i2c/rdacm21.c:557:6: note: 'ret' is >= 0
           if (ret < 0) {
               ^~~
   drivers/media/i2c/rdacm21.c:557:2: note: Taking false branch
           if (ret < 0) {
           ^
   drivers/media/i2c/rdacm21.c:564:2: note: Taking false branch
           if (IS_ERR(dev->isp))
           ^
   drivers/media/i2c/rdacm21.c:567:8: note: Calling 'rdacm21_initialize'
           ret = rdacm21_initialize(dev);
                 ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/rdacm21.c:481:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:481:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:489:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:489:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:493:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:493:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:501:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:501:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:505:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:505:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:510:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:510:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:514:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:514:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:520:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:520:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:526:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/media/i2c/rdacm21.c:526:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/i2c/rdacm21.c:530:8: note: Calling 'ov490_initialize'
           ret = ov490_initialize(dev);
                 ^~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/rdacm21.c:399:2: note: Loop condition is true.  Entering 
loop body
           for (i = 0; i < OV490_PID_TIMEOUT; ++i) {

vim +/dev +642 drivers/media/i2c/isl7998x.c

0cd375b25d1d51 Marek Vasut 2021-11-29  629  
0cd375b25d1d51 Marek Vasut 2021-11-29  630  static int isl7998x_init(struct 
isl7998x *isl7998x)
0cd375b25d1d51 Marek Vasut 2021-11-29  631  {
0cd375b25d1d51 Marek Vasut 2021-11-29  632      const unsigned int lanes = 
isl7998x->nr_mipi_lanes;
0cd375b25d1d51 Marek Vasut 2021-11-29  633      const u32 
isl7998x_video_in_chan_map[] = { 0x00, 0x11, 0x02, 0x02 };
0cd375b25d1d51 Marek Vasut 2021-11-29  634      const struct reg_sequence 
isl7998x_init_seq_custom[] = {
0cd375b25d1d51 Marek Vasut 2021-11-29  635              { 
ISL7998x_REG_P0_VIDEO_IN_CHAN_CTL,
0cd375b25d1d51 Marek Vasut 2021-11-29  636                
isl7998x_video_in_chan_map[isl7998x->nr_inputs - 1] },
0cd375b25d1d51 Marek Vasut 2021-11-29  637              { 
ISL7998x_REG_P0_CLK_CTL_4,
0cd375b25d1d51 Marek Vasut 2021-11-29  638                (lanes == 1) ? 0x40 : 
0x41 },
0cd375b25d1d51 Marek Vasut 2021-11-29  639              { 
ISL7998x_REG_P5_LI_ENGINE_CTL,
0cd375b25d1d51 Marek Vasut 2021-11-29  640                (lanes == 1) ? 0x01 : 
0x02 },
0cd375b25d1d51 Marek Vasut 2021-11-29  641      };
0cd375b25d1d51 Marek Vasut 2021-11-29 @642      struct device *dev = 
isl7998x->subdev.dev;
0cd375b25d1d51 Marek Vasut 2021-11-29  643      struct regmap *regmap = 
isl7998x->regmap;
0cd375b25d1d51 Marek Vasut 2021-11-29  644      int ret;
0cd375b25d1d51 Marek Vasut 2021-11-29  645  
0cd375b25d1d51 Marek Vasut 2021-11-29  646      dev_dbg(dev, "configuring %d 
lanes for %d inputs (norm 0x%llx)\n",
0cd375b25d1d51 Marek Vasut 2021-11-29  647              
isl7998x->nr_mipi_lanes, isl7998x->nr_inputs,
0cd375b25d1d51 Marek Vasut 2021-11-29  648              isl7998x->norm);
0cd375b25d1d51 Marek Vasut 2021-11-29  649  
0cd375b25d1d51 Marek Vasut 2021-11-29  650      ret = 
regmap_register_patch(regmap, isl7998x_init_seq_1,
0cd375b25d1d51 Marek Vasut 2021-11-29  651                                  
ARRAY_SIZE(isl7998x_init_seq_1));
0cd375b25d1d51 Marek Vasut 2021-11-29  652      if (ret)
0cd375b25d1d51 Marek Vasut 2021-11-29  653              return ret;
0cd375b25d1d51 Marek Vasut 2021-11-29  654  
0cd375b25d1d51 Marek Vasut 2021-11-29  655      ret = 
isl7998x_set_standard(isl7998x, isl7998x->norm);
0cd375b25d1d51 Marek Vasut 2021-11-29  656      if (ret)
0cd375b25d1d51 Marek Vasut 2021-11-29  657              return ret;
0cd375b25d1d51 Marek Vasut 2021-11-29  658  
0cd375b25d1d51 Marek Vasut 2021-11-29  659      ret = 
regmap_register_patch(regmap, isl7998x_init_seq_custom,
0cd375b25d1d51 Marek Vasut 2021-11-29  660                                  
ARRAY_SIZE(isl7998x_init_seq_custom));
0cd375b25d1d51 Marek Vasut 2021-11-29  661      if (ret)
0cd375b25d1d51 Marek Vasut 2021-11-29  662              return ret;
0cd375b25d1d51 Marek Vasut 2021-11-29  663  
0cd375b25d1d51 Marek Vasut 2021-11-29  664      return 
regmap_register_patch(regmap, isl7998x_init_seq_2,
0cd375b25d1d51 Marek Vasut 2021-11-29  665                                   
ARRAY_SIZE(isl7998x_init_seq_2));
0cd375b25d1d51 Marek Vasut 2021-11-29  666  }
0cd375b25d1d51 Marek Vasut 2021-11-29  667  

---
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