:::::: 
:::::: Manual check reason: "low confidence static check warning: 
drivers/i2c/busses/i2c-npcm7xx.c:1749:10: warning: Redundant initialization for 
'status'. The initialized value is overwritten before it is read. 
[redundantInitialization]"
:::::: 

CC: [email protected]
BCC: [email protected]
TO: Sasha Levin <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git 
pending-5.10
head:   6d2c86b375e6eb49f508f3f8efe7ec77e33632f4
commit: c009b2220e563462677477b8e90edc17672e631c [370/373] i2c: npcm: Handle 
spurious interrupts
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
compiler: alpha-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout c009b2220e563462677477b8e90edc17672e631c
        cppcheck --quiet --enable=style,performance,portability --template=gcc 
FILE

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>


cppcheck warnings: (new ones prefixed by >>)
>> drivers/platform/chrome/cros_ec_proto.c:686:26: warning: Local variable 
>> 'msg' shadows outer variable [shadowVariable]
     struct cros_ec_command msg;
                            ^
   drivers/platform/chrome/cros_ec_proto.c:686:26: note: Shadowed declaration
     struct cros_ec_command msg;
                            ^
   drivers/platform/chrome/cros_ec_proto.c:686:26: note: Shadow variable
     struct cros_ec_command msg;
                            ^
>> drivers/platform/chrome/cros_ec_proto.c:687:40: warning: Local variable 
>> 'event' shadows outer variable [shadowVariable]
     struct ec_response_get_next_event_v1 event;
                                          ^
   drivers/platform/chrome/cros_ec_proto.c:687:40: note: Shadowed declaration
     struct ec_response_get_next_event_v1 event;
                                          ^
   drivers/platform/chrome/cros_ec_proto.c:687:40: note: Shadow variable
     struct ec_response_get_next_event_v1 event;
                                          ^
>> drivers/platform/chrome/cros_ec.c:94:26: warning: Local variable 'msg' 
>> shadows outer variable [shadowVariable]
     struct cros_ec_command msg;
                            ^
   drivers/platform/chrome/cros_ec.c:94:26: note: Shadowed declaration
     struct cros_ec_command msg;
                            ^
   drivers/platform/chrome/cros_ec.c:94:26: note: Shadow variable
     struct cros_ec_command msg;
                            ^
>> drivers/platform/chrome/cros_ec.c:99:5: warning: Local variable 'u' shadows 
>> outer variable [shadowVariable]
     } u;
       ^
   drivers/platform/chrome/cros_ec.c:99:5: note: Shadowed declaration
     } u;
       ^
   drivers/platform/chrome/cros_ec.c:99:5: note: Shadow variable
     } u;
       ^
--
>> drivers/soc/qcom/smsm.c:356:2: warning: %d in format string (no. 1) requires 
>> 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint]
    snprintf(key, sizeof(key), "qcom,ipc-%d", host_id);
    ^
--

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> drivers/platform/chrome/cros_ec_proto.c:664:49: warning: Parameter 'event' 
>> can be declared with const [constParameter]
             struct ec_response_get_next_event_v1 *event,
                                                   ^
--
>> drivers/pci/controller/dwc/pcie-designware-host.c:598:27: warning: Possible 
>> null pointer dereference: entry [nullPointer]
          PCIE_ATU_TYPE_MEM, entry->res->start,
                             ^
   drivers/pci/controller/dwc/pcie-designware-host.c:590:40: note: Assignment 
'entry=NULL', assigned value is 0
     struct resource_entry *tmp, *entry = NULL;
                                          ^
   drivers/pci/controller/dwc/pcie-designware-host.c:594:32: note: Assuming 
condition is false
      if (resource_type(tmp->res) == IORESOURCE_MEM)
                                  ^
   drivers/pci/controller/dwc/pcie-designware-host.c:598:27: note: Null pointer 
dereference
          PCIE_ATU_TYPE_MEM, entry->res->start,
                             ^
   drivers/pci/controller/dwc/pcie-designware-host.c:599:8: warning: Possible 
null pointer dereference: entry [nullPointer]
          entry->res->start - entry->offset,
          ^
   drivers/pci/controller/dwc/pcie-designware-host.c:590:40: note: Assignment 
'entry=NULL', assigned value is 0
     struct resource_entry *tmp, *entry = NULL;
                                          ^
   drivers/pci/controller/dwc/pcie-designware-host.c:594:32: note: Assuming 
condition is false
      if (resource_type(tmp->res) == IORESOURCE_MEM)
                                  ^
   drivers/pci/controller/dwc/pcie-designware-host.c:599:8: note: Null pointer 
dereference
          entry->res->start - entry->offset,
          ^
   drivers/pci/controller/dwc/pcie-designware-host.c:600:22: warning: Possible 
null pointer dereference: entry [nullPointer]
          resource_size(entry->res));
                        ^
   drivers/pci/controller/dwc/pcie-designware-host.c:590:40: note: Assignment 
'entry=NULL', assigned value is 0
     struct resource_entry *tmp, *entry = NULL;
                                          ^
   drivers/pci/controller/dwc/pcie-designware-host.c:594:32: note: Assuming 
condition is false
      if (resource_type(tmp->res) == IORESOURCE_MEM)
                                  ^
   drivers/pci/controller/dwc/pcie-designware-host.c:600:22: note: Null pointer 
dereference
          resource_size(entry->res));
                        ^
>> drivers/i2c/busses/i2c-npcm7xx.c:1749:10: warning: Redundant initialization 
>> for 'status'. The initialized value is overwritten before it is read. 
>> [redundantInitialization]
     status = 0;
            ^
   drivers/i2c/busses/i2c-npcm7xx.c:1686:26: note: status is initialized
    int              status = -ENOTRECOVERABLE;
                            ^
   drivers/i2c/busses/i2c-npcm7xx.c:1749:10: note: status is overwritten
     status = 0;
            ^

vim +/status +1749 drivers/i2c/busses/i2c-npcm7xx.c

56a1485b102ed1 Tali Perry 2020-05-27  1679  
56a1485b102ed1 Tali Perry 2020-05-27  1680  /* recovery using TGCLK 
functionality of the module */
56a1485b102ed1 Tali Perry 2020-05-27  1681  static int 
npcm_i2c_recovery_tgclk(struct i2c_adapter *_adap)
56a1485b102ed1 Tali Perry 2020-05-27  1682  {
56a1485b102ed1 Tali Perry 2020-05-27  1683      u8               val;
56a1485b102ed1 Tali Perry 2020-05-27  1684      u8               fif_cts;
56a1485b102ed1 Tali Perry 2020-05-27  1685      bool             done = false;
56a1485b102ed1 Tali Perry 2020-05-27  1686      int              status = 
-ENOTRECOVERABLE;
56a1485b102ed1 Tali Perry 2020-05-27  1687      struct npcm_i2c *bus = 
container_of(_adap, struct npcm_i2c, adap);
56a1485b102ed1 Tali Perry 2020-05-27  1688      /* Allow 3 bytes (27 toggles) 
to be read from the slave: */
56a1485b102ed1 Tali Perry 2020-05-27  1689      int              iter = 27;
56a1485b102ed1 Tali Perry 2020-05-27  1690  
56a1485b102ed1 Tali Perry 2020-05-27  1691      if ((npcm_i2c_get_SDA(_adap) == 
1) && (npcm_i2c_get_SCL(_adap) == 1)) {
c009b2220e5634 Tali Perry 2022-05-17  1692              dev_dbg(bus->dev, 
"bus%d-0x%x recovery skipped, bus not stuck",
c009b2220e5634 Tali Perry 2022-05-17  1693                      bus->num, 
bus->dest_addr);
56a1485b102ed1 Tali Perry 2020-05-27  1694              npcm_i2c_reset(bus);
c009b2220e5634 Tali Perry 2022-05-17  1695              return 0;
56a1485b102ed1 Tali Perry 2020-05-27  1696      }
56a1485b102ed1 Tali Perry 2020-05-27  1697  
56a1485b102ed1 Tali Perry 2020-05-27  1698      npcm_i2c_int_enable(bus, false);
56a1485b102ed1 Tali Perry 2020-05-27  1699      npcm_i2c_disable(bus);
56a1485b102ed1 Tali Perry 2020-05-27  1700      npcm_i2c_enable(bus);
56a1485b102ed1 Tali Perry 2020-05-27  1701      iowrite8(NPCM_I2CCST_BB, 
bus->reg + NPCM_I2CCST);
56a1485b102ed1 Tali Perry 2020-05-27  1702      npcm_i2c_clear_tx_fifo(bus);
56a1485b102ed1 Tali Perry 2020-05-27  1703      npcm_i2c_clear_rx_fifo(bus);
56a1485b102ed1 Tali Perry 2020-05-27  1704      iowrite8(0, bus->reg + 
NPCM_I2CRXF_CTL);
56a1485b102ed1 Tali Perry 2020-05-27  1705      iowrite8(0, bus->reg + 
NPCM_I2CTXF_CTL);
56a1485b102ed1 Tali Perry 2020-05-27  1706      npcm_i2c_stall_after_start(bus, 
false);
56a1485b102ed1 Tali Perry 2020-05-27  1707  
56a1485b102ed1 Tali Perry 2020-05-27  1708      /* select bank 1 for FIFO regs 
*/
56a1485b102ed1 Tali Perry 2020-05-27  1709      npcm_i2c_select_bank(bus, 
I2C_BANK_1);
56a1485b102ed1 Tali Perry 2020-05-27  1710  
56a1485b102ed1 Tali Perry 2020-05-27  1711      /* clear FIFO and relevant 
status bits. */
56a1485b102ed1 Tali Perry 2020-05-27  1712      fif_cts = ioread8(bus->reg + 
NPCM_I2CFIF_CTS);
56a1485b102ed1 Tali Perry 2020-05-27  1713      fif_cts &= 
~NPCM_I2CFIF_CTS_SLVRSTR;
56a1485b102ed1 Tali Perry 2020-05-27  1714      fif_cts |= 
NPCM_I2CFIF_CTS_CLR_FIFO;
56a1485b102ed1 Tali Perry 2020-05-27  1715      iowrite8(fif_cts, bus->reg + 
NPCM_I2CFIF_CTS);
56a1485b102ed1 Tali Perry 2020-05-27  1716      npcm_i2c_set_fifo(bus, -1, 0);
56a1485b102ed1 Tali Perry 2020-05-27  1717  
56a1485b102ed1 Tali Perry 2020-05-27  1718      /* Repeat the following 
sequence until SDA is released */
56a1485b102ed1 Tali Perry 2020-05-27  1719      do {
56a1485b102ed1 Tali Perry 2020-05-27  1720              /* Issue a single SCL 
toggle */
56a1485b102ed1 Tali Perry 2020-05-27  1721              
iowrite8(NPCM_I2CCST_TGSCL, bus->reg + NPCM_I2CCST);
56a1485b102ed1 Tali Perry 2020-05-27  1722              usleep_range(20, 30);
56a1485b102ed1 Tali Perry 2020-05-27  1723              /* If SDA line is 
inactive (high), stop */
56a1485b102ed1 Tali Perry 2020-05-27  1724              if 
(npcm_i2c_get_SDA(_adap)) {
56a1485b102ed1 Tali Perry 2020-05-27  1725                      done = true;
56a1485b102ed1 Tali Perry 2020-05-27  1726                      status = 0;
56a1485b102ed1 Tali Perry 2020-05-27  1727              }
56a1485b102ed1 Tali Perry 2020-05-27  1728      } while (!done && iter--);
56a1485b102ed1 Tali Perry 2020-05-27  1729  
56a1485b102ed1 Tali Perry 2020-05-27  1730      /* If SDA line is released: 
send start-addr-stop, to re-sync. */
56a1485b102ed1 Tali Perry 2020-05-27  1731      if (npcm_i2c_get_SDA(_adap)) {
56a1485b102ed1 Tali Perry 2020-05-27  1732              /* Send an address byte 
in write direction: */
56a1485b102ed1 Tali Perry 2020-05-27  1733              npcm_i2c_wr_byte(bus, 
bus->dest_addr);
56a1485b102ed1 Tali Perry 2020-05-27  1734              
npcm_i2c_master_start(bus);
56a1485b102ed1 Tali Perry 2020-05-27  1735              /* Wait until START 
condition is sent */
56a1485b102ed1 Tali Perry 2020-05-27  1736              status = 
readx_poll_timeout(npcm_i2c_get_SCL, _adap, val, !val,
56a1485b102ed1 Tali Perry 2020-05-27  1737                                      
    20, 200);
56a1485b102ed1 Tali Perry 2020-05-27  1738              /* If START condition 
was sent */
56a1485b102ed1 Tali Perry 2020-05-27  1739              if 
(npcm_i2c_is_master(bus) > 0) {
56a1485b102ed1 Tali Perry 2020-05-27  1740                      
usleep_range(20, 30);
56a1485b102ed1 Tali Perry 2020-05-27  1741                      
npcm_i2c_master_stop(bus);
56a1485b102ed1 Tali Perry 2020-05-27  1742                      
usleep_range(200, 500);
56a1485b102ed1 Tali Perry 2020-05-27  1743              }
56a1485b102ed1 Tali Perry 2020-05-27  1744      }
56a1485b102ed1 Tali Perry 2020-05-27  1745      npcm_i2c_reset(bus);
56a1485b102ed1 Tali Perry 2020-05-27  1746      npcm_i2c_int_enable(bus, true);
56a1485b102ed1 Tali Perry 2020-05-27  1747  
56a1485b102ed1 Tali Perry 2020-05-27  1748      if ((npcm_i2c_get_SDA(_adap) == 
1) && (npcm_i2c_get_SCL(_adap) == 1))
56a1485b102ed1 Tali Perry 2020-05-27 @1749              status = 0;
56a1485b102ed1 Tali Perry 2020-05-27  1750      else
56a1485b102ed1 Tali Perry 2020-05-27  1751              status = 
-ENOTRECOVERABLE;
56a1485b102ed1 Tali Perry 2020-05-27  1752      if (status) {
56a1485b102ed1 Tali Perry 2020-05-27  1753              if (bus->rec_fail_cnt < 
ULLONG_MAX)
56a1485b102ed1 Tali Perry 2020-05-27  1754                      
bus->rec_fail_cnt++;
56a1485b102ed1 Tali Perry 2020-05-27  1755      } else {
56a1485b102ed1 Tali Perry 2020-05-27  1756              if (bus->rec_succ_cnt < 
ULLONG_MAX)
56a1485b102ed1 Tali Perry 2020-05-27  1757                      
bus->rec_succ_cnt++;
56a1485b102ed1 Tali Perry 2020-05-27  1758      }
56a1485b102ed1 Tali Perry 2020-05-27  1759      return status;
56a1485b102ed1 Tali Perry 2020-05-27  1760  }
56a1485b102ed1 Tali Perry 2020-05-27  1761  

:::::: The code at line 1749 was first introduced by commit
:::::: 56a1485b102ed1cd5a4af8e87ed794699fd1cad2 i2c: npcm7xx: Add Nuvoton NPCM 
I2C controller driver

:::::: TO: Tali Perry <[email protected]>
:::::: CC: Wolfram Sang <[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