summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAshwini Ghuge <aghuge@nvidia.com>2012-06-20 13:52:45 +0530
committerSimone Willett <swillett@nvidia.com>2012-06-20 13:56:20 -0700
commitce93880e4c6cabc9978a3f888002ca08cb00aad1 (patch)
tree30fdc911d3bc82e2c8ad0c497aad07a94077ab11 /drivers
parent4c165a4d5e76e5c111ac21c9d9506ea6d87705c9 (diff)
spi: tegra: dump registers when error occurs
When any error occurs in spi communication, dump the spi registers for debug purpose Change-Id: I5cf226d4b504c95a6abb8dcf5b8c0ba1ef44271c Signed-off-by: Ashwini Ghuge <aghuge@nvidia.com> Reviewed-on: http://git-master/r/109466 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/spi/spi-tegra.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/spi/spi-tegra.c b/drivers/spi/spi-tegra.c
index 0af220c863c2..7b3382e952ff 100644
--- a/drivers/spi/spi-tegra.c
+++ b/drivers/spi/spi-tegra.c
@@ -590,6 +590,7 @@ static int spi_tegra_start_dma_based_transfer(
udelay(1);
wmb();
}
+ tspi->dma_control_reg = val;
val |= SLINK_DMA_EN;
spi_tegra_writel(tspi, val, SLINK_DMA_CTL);
@@ -627,6 +628,7 @@ static int spi_tegra_start_cpu_based_transfer(
udelay(1);
wmb();
}
+ tspi->dma_control_reg = val;
val |= SLINK_DMA_EN;
spi_tegra_writel(tspi, val, SLINK_DMA_CTL);
return 0;
@@ -1045,6 +1047,9 @@ static void handle_cpu_based_xfer(void *context_data)
(tspi->status_reg & SLINK_BSY)) {
dev_err(&tspi->pdev->dev, "%s ERROR bit set 0x%x\n",
__func__, tspi->status_reg);
+ dev_err(&tspi->pdev->dev, "%s 0x%08x:0x%08x:0x%08x\n",
+ __func__, tspi->command_reg, tspi->command2_reg,
+ tspi->dma_control_reg);
tegra_periph_reset_assert(tspi->clk);
udelay(2);
tegra_periph_reset_deassert(tspi->clk);
@@ -1133,6 +1138,9 @@ static irqreturn_t spi_tegra_isr_thread(int irq, void *context_data)
if (err) {
dev_err(&tspi->pdev->dev, "%s ERROR bit set 0x%x\n",
__func__, tspi->status_reg);
+ dev_err(&tspi->pdev->dev, "%s 0x%08x:0x%08x:0x%08x\n",
+ __func__, tspi->command_reg, tspi->command2_reg,
+ tspi->dma_control_reg);
tegra_periph_reset_assert(tspi->clk);
udelay(2);
tegra_periph_reset_deassert(tspi->clk);