lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 19 Jun 2020 16:30:52 +0200 From: Greg Kroah-Hartman <gregkh@...uxfoundation.org> To: linux-kernel@...r.kernel.org Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>, stable@...r.kernel.org, Georgy Vlasov <Georgy.Vlasov@...kalelectronics.ru>, Serge Semin <Sergey.Semin@...kalelectronics.ru>, Ramil Zaripov <Ramil.Zaripov@...kalelectronics.ru>, Alexey Malahov <Alexey.Malahov@...kalelectronics.ru>, Thomas Bogendoerfer <tsbogend@...ha.franken.de>, Paul Burton <paulburton@...nel.org>, Ralf Baechle <ralf@...ux-mips.org>, Arnd Bergmann <arnd@...db.de>, Andy Shevchenko <andriy.shevchenko@...ux.intel.com>, Rob Herring <robh+dt@...nel.org>, linux-mips@...r.kernel.org, devicetree@...r.kernel.org, Mark Brown <broonie@...nel.org>, Sasha Levin <sashal@...nel.org> Subject: [PATCH 5.4 041/261] spi: dw: Enable interrupts in accordance with DMA xfer mode From: Serge Semin <Sergey.Semin@...kalelectronics.ru> [ Upstream commit 43dba9f3f98c2b184a19f856f06fe22817bfd9e0 ] It's pointless to track the Tx overrun interrupts if Rx-only SPI transfer is issued. Similarly there is no need in handling the Rx overrun/underrun interrupts if Tx-only SPI transfer is executed. So lets unmask the interrupts only if corresponding SPI transactions are implied. Co-developed-by: Georgy Vlasov <Georgy.Vlasov@...kalelectronics.ru> Signed-off-by: Georgy Vlasov <Georgy.Vlasov@...kalelectronics.ru> Signed-off-by: Serge Semin <Sergey.Semin@...kalelectronics.ru> Cc: Ramil Zaripov <Ramil.Zaripov@...kalelectronics.ru> Cc: Alexey Malahov <Alexey.Malahov@...kalelectronics.ru> Cc: Thomas Bogendoerfer <tsbogend@...ha.franken.de> Cc: Paul Burton <paulburton@...nel.org> Cc: Ralf Baechle <ralf@...ux-mips.org> Cc: Arnd Bergmann <arnd@...db.de> Cc: Andy Shevchenko <andriy.shevchenko@...ux.intel.com> Cc: Rob Herring <robh+dt@...nel.org> Cc: linux-mips@...r.kernel.org Cc: devicetree@...r.kernel.org Link: https://lore.kernel.org/r/20200522000806.7381-3-Sergey.Semin@baikalelectronics.ru Signed-off-by: Mark Brown <broonie@...nel.org> Signed-off-by: Sasha Levin <sashal@...nel.org> --- drivers/spi/spi-dw-mid.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/spi/spi-dw-mid.c b/drivers/spi/spi-dw-mid.c index 242ac2768518..b044d4071690 100644 --- a/drivers/spi/spi-dw-mid.c +++ b/drivers/spi/spi-dw-mid.c @@ -220,19 +220,23 @@ static struct dma_async_tx_descriptor *dw_spi_dma_prepare_rx(struct dw_spi *dws, static int mid_spi_dma_setup(struct dw_spi *dws, struct spi_transfer *xfer) { - u16 dma_ctrl = 0; + u16 imr = 0, dma_ctrl = 0; dw_writel(dws, DW_SPI_DMARDLR, 0xf); dw_writel(dws, DW_SPI_DMATDLR, 0x10); - if (xfer->tx_buf) + if (xfer->tx_buf) { dma_ctrl |= SPI_DMA_TDMAE; - if (xfer->rx_buf) + imr |= SPI_INT_TXOI; + } + if (xfer->rx_buf) { dma_ctrl |= SPI_DMA_RDMAE; + imr |= SPI_INT_RXUI | SPI_INT_RXOI; + } dw_writel(dws, DW_SPI_DMACR, dma_ctrl); /* Set the interrupt mask */ - spi_umask_intr(dws, SPI_INT_TXOI | SPI_INT_RXUI | SPI_INT_RXOI); + spi_umask_intr(dws, imr); dws->transfer_handler = dma_transfer; -- 2.25.1
Powered by blists - more mailing lists