LFU-143 tcpc: Add i2c read/write return check
authorYe Li <ye.li@nxp.com>
Thu, 27 May 2021 10:13:14 +0000 (03:13 -0700)
committerYe Li <ye.li@nxp.com>
Thu, 27 May 2021 12:02:34 +0000 (05:02 -0700)
Fix coverity Issue: 2970631/5409463 Unchecked return value.
Add relevant return check for i2c read and write

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
board/freescale/common/tcpc.c

index 2b5b349..f7d6ea6 100644 (file)
@@ -833,9 +833,18 @@ static int tcpc_pd_sink_disable(struct tcpc_port *port)
        }
 
        if ((valb & TCPC_POWER_STATUS_VBUS_PRES) && (valb & TCPC_POWER_STATUS_SINKING_VBUS)) {
-               dm_i2c_read(port->i2c_dev, TCPC_POWER_CTRL, (uint8_t *)&valb, 1);
+               err = dm_i2c_read(port->i2c_dev, TCPC_POWER_CTRL, (uint8_t *)&valb, 1);
+               if (err) {
+                       tcpc_log(port, "%s dm_i2c_read failed, err %d\n", __func__, err);
+                       return -EIO;
+               }
+
                valb &= ~TCPC_POWER_CTRL_AUTO_DISCH_DISCO; /* disable AutoDischargeDisconnect */
-               dm_i2c_write(port->i2c_dev, TCPC_POWER_CTRL, (const uint8_t *)&valb, 1);
+               err = dm_i2c_write(port->i2c_dev, TCPC_POWER_CTRL, (const uint8_t *)&valb, 1);
+               if (err) {
+                       tcpc_log(port, "%s dm_i2c_write failed, err %d\n", __func__, err);
+                       return -EIO;
+               }
 
                tcpc_disable_sink_vbus(port);
        }
@@ -903,9 +912,18 @@ static int tcpc_pd_sink_init(struct tcpc_port *port)
                port->pd_state = ATTACHED;
        }
 
-       dm_i2c_read(port->i2c_dev, TCPC_POWER_CTRL, (uint8_t *)&valb, 1);
+       err = dm_i2c_read(port->i2c_dev, TCPC_POWER_CTRL, (uint8_t *)&valb, 1);
+       if (err) {
+               tcpc_log(port, "%s dm_i2c_read failed, err %d\n", __func__, err);
+               return -EIO;
+       }
+
        valb &= ~TCPC_POWER_CTRL_AUTO_DISCH_DISCO; /* disable AutoDischargeDisconnect */
-       dm_i2c_write(port->i2c_dev, TCPC_POWER_CTRL, (const uint8_t *)&valb, 1);
+       err = dm_i2c_write(port->i2c_dev, TCPC_POWER_CTRL, (const uint8_t *)&valb, 1);
+       if (err) {
+               tcpc_log(port, "%s dm_i2c_write failed, err %d\n", __func__, err);
+               return -EIO;
+       }
 
        if (port->cfg.switch_setup_func)
                port->cfg.switch_setup_func(port);