summaryrefslogtreecommitdiff
path: root/drivers/spi
diff options
context:
space:
mode:
authorShardar Shariff Md <smohammed@nvidia.com>2014-01-29 14:30:06 +0530
committerLaxman Dewangan <ldewangan@nvidia.com>2014-01-30 22:46:33 -0800
commita31fe378e9a35a01a82139fd0e235f336cd6a277 (patch)
treed17b3b127c42e790ccb1ee364f5914707e22b0bd /drivers/spi
parent8faf6153ab45758c596d2250e4093913dd726513 (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.c8
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;