diff options
author | Nitin Sehgal <nsehgal@nvidia.com> | 2013-07-01 17:24:20 +0530 |
---|---|---|
committer | Matthew Pedro <mapedro@nvidia.com> | 2013-08-06 14:24:56 -0700 |
commit | c9675b990b243c3a73a52d01578c4074b4f01aa6 (patch) | |
tree | 9381dd9c727f8c1ce2ac37f8d7cc015bdb9d0a2a /drivers | |
parent | 46c8cadb137b57a8603cd00486ecf69456e880b8 (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.c | 8 |
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); |