spi: Mask tx interrupt once over with any transmission
Or then the controller will spin around requesting to get its fifo
filled-in though it's unnecessary.
Change-Id: I81e7c483345236dee7691c3e780b1b06d6b2d0f8
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
diff --git a/drivers/spi/intel_spi.c b/drivers/spi/intel_spi.c
index e96d66d..052ec87 100644
--- a/drivers/spi/intel_spi.c
+++ b/drivers/spi/intel_spi.c
@@ -94,6 +94,7 @@
DEFINE_CLEAR_BIT_OP(sscr0_sse, INTEL_SPI_REG_SSCR0, INTEL_SPI_SSCR0_SSE_BIT)
DEFINE_TEST_BIT_OP(sscr0_sse, INTEL_SPI_REG_SSCR0, INTEL_SPI_SSCR0_SSE_BIT)
DEFINE_TEST_BIT_OP(sssr_bsy, INTEL_SPI_REG_SSSR, INTEL_SPI_SSSR_BSY_BIT)
+DEFINE_CLEAR_BIT_OP(sscr1_tie, INTEL_SPI_REG_SSRC1, INTEL_SPI_SSCR1_TIE_BIT)
static void completed(struct device *dev, uint32_t error)
{
@@ -165,6 +166,10 @@
DBG("Pushed: %d\n", cnt);
spi->t_len += cnt;
+
+ if (!spi->tx_buf_len && !spi->rx_buf_len) {
+ clear_bit_sscr1_tie(info->regs);
+ }
}
static void pull_data(struct device *dev)