diff options
-rw-r--r-- | drivers/hsi/controllers/ste_hsi.c | 12 |
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 */ |