|
@@ -200,6 +200,9 @@ static void flush_fifo(struct s3c64xx_spi_driver_data *sdd)
|
|
|
val = readl(regs + S3C64XX_SPI_STATUS);
|
|
|
} while (TX_FIFO_LVL(val, sci) && loops--);
|
|
|
|
|
|
+ if (loops == 0)
|
|
|
+ dev_warn(&sdd->pdev->dev, "Timed out flushing TX FIFO\n");
|
|
|
+
|
|
|
/* Flush RxFIFO*/
|
|
|
loops = msecs_to_loops(1);
|
|
|
do {
|
|
@@ -210,6 +213,9 @@ static void flush_fifo(struct s3c64xx_spi_driver_data *sdd)
|
|
|
break;
|
|
|
} while (loops--);
|
|
|
|
|
|
+ if (loops == 0)
|
|
|
+ dev_warn(&sdd->pdev->dev, "Timed out flushing RX FIFO\n");
|
|
|
+
|
|
|
val = readl(regs + S3C64XX_SPI_CH_CFG);
|
|
|
val &= ~S3C64XX_SPI_CH_SW_RST;
|
|
|
writel(val, regs + S3C64XX_SPI_CH_CFG);
|