diff options
author | Shardar Shariff Md <smohammed@nvidia.com> | 2014-01-29 14:30:06 +0530 |
---|---|---|
committer | Laxman Dewangan <ldewangan@nvidia.com> | 2014-01-30 22:46:33 -0800 |
commit | a31fe378e9a35a01a82139fd0e235f336cd6a277 (patch) | |
tree | d17b3b127c42e790ccb1ee364f5914707e22b0bd /drivers/spi | |
parent | 8faf6153ab45758c596d2250e4093913dd726513 (diff) |
arm: tegra: spi: Clear status variables
- Clear tx_status, rx_status variable for every
transfer
- Add log to check for any spurious interrutps
Bug 1445171
Change-Id: I48d7003ad0aa69b1d9275cddd1b060941489d556
Signed-off-by: Shardar Shariff Md <smohammed@nvidia.com>
Reviewed-on: http://git-master/r/361401
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi-tegra114.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/spi/spi-tegra114.c b/drivers/spi/spi-tegra114.c index c32c129388e3..78849b072321 100644 --- a/drivers/spi/spi-tegra114.c +++ b/drivers/spi/spi-tegra114.c @@ -714,6 +714,8 @@ static int tegra_spi_start_transfer_one(struct spi_device *spi, tspi->cur_rx_pos = 0; tspi->cur_tx_pos = 0; tspi->curr_xfer = t; + tspi->tx_status = 0; + tspi->rx_status = 0; total_fifo_words = tegra_spi_calculate_curr_xfer_param(spi, tspi, t); if (is_first_of_msg) { @@ -1178,6 +1180,12 @@ static irqreturn_t tegra_spi_isr(int irq, void *context_data) if (tspi->cur_direction & DATA_DIR_RX) tspi->rx_status = tspi->status_reg & (SPI_RX_FIFO_OVF | SPI_RX_FIFO_UNF); + + if (!(tspi->cur_direction & DATA_DIR_TX) && + !(tspi->cur_direction & DATA_DIR_RX)) + dev_err(tspi->dev, "spurious interrupt, status_reg = 0x%x\n", + tspi->status_reg); + tegra_spi_clear_status(tspi); return IRQ_WAKE_THREAD; |