i2c: tegra: If fifo flush fails return error
authorShardar Shariff Md <smohammed@nvidia.com>
Wed, 31 Aug 2016 13:28:41 +0000 (18:58 +0530)
committerWolfram Sang <wsa@the-dreams.de>
Thu, 8 Sep 2016 20:33:19 +0000 (22:33 +0200)
During i2c controller initialization, when fifo flush fails return error
instead of returning the error during exit.

Signed-off-by: Shardar Shariff Md <smohammed@nvidia.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-tegra.c

index e93c72a..07a39b7 100644 (file)
@@ -494,6 +494,8 @@ static int tegra_i2c_init(struct tegra_i2c_dev *i2c_dev)
        i2c_writel(i2c_dev, val, I2C_FIFO_CONTROL);
 
        err = tegra_i2c_flush_fifos(i2c_dev);
        i2c_writel(i2c_dev, val, I2C_FIFO_CONTROL);
 
        err = tegra_i2c_flush_fifos(i2c_dev);
+       if (err)
+               goto err;
 
        if (i2c_dev->is_multimaster_mode && i2c_dev->hw->has_slcg_override_reg)
                i2c_writel(i2c_dev, I2C_MST_CORE_CLKEN_OVR, I2C_CLKEN_OVERRIDE);
 
        if (i2c_dev->is_multimaster_mode && i2c_dev->hw->has_slcg_override_reg)
                i2c_writel(i2c_dev, I2C_MST_CORE_CLKEN_OVR, I2C_CLKEN_OVERRIDE);