Commit a1c10d26 authored by Clark Wang's avatar Clark Wang Committed by sanglipeng
Browse files

spi: lpspi: disable lpspi module irq in DMA mode

stable inclusion
from stable-v5.10.186
commit 9138ed7e2b439b9f8f393194861e5b7967b50716
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I8J4KH

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9138ed7e2b439b9f8f393194861e5b7967b50716



--------------------------------

[ Upstream commit 9728fb3c ]

When all bits of IER are set to 0, we still can observe the lpspi irq events
when using DMA mode to transfer data.

So disable irq to avoid the too much irq events.

Signed-off-by: default avatarClark Wang <xiaoning.wang@nxp.com>
Link: https://lore.kernel.org/r/20230505063557.3962220-1-xiaoning.wang@nxp.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarsanglipeng <sanglipeng1@jd.com>
parent c70a11ed
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -906,9 +906,14 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
	ret = fsl_lpspi_dma_init(&pdev->dev, fsl_lpspi, controller);
	if (ret == -EPROBE_DEFER)
		goto out_pm_get;

	if (ret < 0)
		dev_err(&pdev->dev, "dma setup error %d, use pio\n", ret);
	else
		/*
		 * disable LPSPI module IRQ when enable DMA mode successfully,
		 * to prevent the unexpected LPSPI module IRQ events.
		 */
		disable_irq(irq);

	ret = devm_spi_register_controller(&pdev->dev, controller);
	if (ret < 0) {