summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Szyszuk <pawel.szyszuk@stericsson.com>2011-10-06 11:04:12 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:07:30 +0200
commit3eb3e1775ead27876884f5119342cdd8ffb091b9 (patch)
tree44dfa8a0e644eb8c5180ae7ca7cecbc4efd895c4
parent5174d0306e48e9ddd0d5cc663c7b9dc910fe5db3 (diff)
ARM: U9500: HSI RX PIPELINE buffer flush
ST-Ericsson Linux next: NA ST-Ericsson ID: 365683 ST-Ericsson FOSS-OUT ID: NA Change-Id: I25b92d815447d2746ba25a9db132b242b3da9d9c Signed-off-by: Pawel Szyszuk <pawel.szyszuk@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33223 Reviewed-by: Christopher BLAIR <chris.blair@stericsson.com> Reviewed-by: Derek MORTON <derek.morton@stericsson.com> Reviewed-by: Andrew LYNN <andrew.lynn@stericsson.com>
-rw-r--r--drivers/hsi/controllers/ste_hsi.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/hsi/controllers/ste_hsi.c b/drivers/hsi/controllers/ste_hsi.c
index a2cbb2108f7..fe43d7b2133 100644
--- a/drivers/hsi/controllers/ste_hsi.c
+++ b/drivers/hsi/controllers/ste_hsi.c
@@ -1353,17 +1353,13 @@ static int ste_hsi_flush(struct hsi_client *cl)
writel(0, ste_hsi->rx_base + STE_HSI_RX_DMAEN);
ste_hsi_terminate_dma(ste_port);
- /* Flush all HSIR and HSIT buffers */
+ /* Flush HSIT buffers */
writel(0, ste_hsi->tx_base + STE_HSI_TX_STATE);
writel(0, ste_hsi->tx_base + STE_HSI_TX_BUFSTATE);
+
+ /* Flush HSIR pipeline and channel buffers */
writel(0, ste_hsi->rx_base + STE_HSI_RX_STATE);
- /*
- * BUFSTATE is cleared twice on purpose:
- * first time all fifos are cleared
- * second time to clear data that was in pipline buffer
- * and was transfered to fifos
- */
- writel(0, ste_hsi->rx_base + STE_HSI_RX_BUFSTATE);
+ writel(0, ste_hsi->rx_base + STE_HSI_RX_PIPEGAUGE);
writel(0, ste_hsi->rx_base + STE_HSI_RX_BUFSTATE);
/* Flush all errors */