From ce93880e4c6cabc9978a3f888002ca08cb00aad1 Mon Sep 17 00:00:00 2001 From: Ashwini Ghuge Date: Wed, 20 Jun 2012 13:52:45 +0530 Subject: 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 Reviewed-on: http://git-master/r/109466 Reviewed-by: Simone Willett Tested-by: Simone Willett --- drivers/spi/spi-tegra.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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); -- cgit v1.2.3