summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNitin Sehgal <nsehgal@nvidia.com>2013-07-01 17:24:20 +0530
committerMatthew Pedro <mapedro@nvidia.com>2013-08-06 14:24:56 -0700
commitc9675b990b243c3a73a52d01578c4074b4f01aa6 (patch)
tree9381dd9c727f8c1ce2ac37f8d7cc015bdb9d0a2a /drivers
parent46c8cadb137b57a8603cd00486ecf69456e880b8 (diff)
i2c: tegra: enable I2C_INT_ALL_PACKETS_XFER_COMPLETE interrupt.
- fix i2c timeout issue as I2C_INT_ALL_PACKETS_XFER_COMPLETE is disabled. bug 1313673 bug 1278481 Change-Id: I2a2c39c64298ed6e087abbe047ba01113db80f3e Signed-off-by: Nitin Sehgal <nsehgal@nvidia.com> Signed-off-by: Naveen Kumar S <nkumars@nvidia.com> Reviewed-on: http://git-master/r/243891 (cherry picked from commit ca3063b3717b6cb4777d4ea2882636e98f9ccd5a) Reviewed-on: http://git-master/r/250779 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/i2c/busses/i2c-tegra.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index 98c6fecbf53f..a5c5a20e17e3 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -719,6 +719,10 @@ err:
if (i2c_dev->chipdata->has_xfer_complete_interrupt)
mask |= I2C_INT_ALL_PACKETS_XFER_COMPLETE;
+ if (!(i2c_dev->use_single_xfer_complete &&
+ i2c_dev->chipdata->has_xfer_complete_interrupt))
+ mask |= I2C_INT_ALL_PACKETS_XFER_COMPLETE;
+
if (i2c_dev->chipdata->has_hw_arb_support)
mask |= I2C_INT_BUS_CLEAR_DONE;
@@ -870,6 +874,10 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_bus *i2c_bus,
i2c_dev->use_single_xfer_complete = false;
}
+ if (!(i2c_dev->use_single_xfer_complete &&
+ i2c_dev->chipdata->has_xfer_complete_interrupt))
+ int_mask |= I2C_INT_ALL_PACKETS_XFER_COMPLETE;
+
if (!i2c_dev->chipdata->has_xfer_complete_interrupt)
spin_unlock_irqrestore(&i2c_dev->fifo_lock, flags);