Skip to content

Commit 003c7e0

Browse files
ruanjinjie-engbroonie
authored andcommitted
spi: spi-fsl-lpspi: Use IRQF_NO_AUTOEN flag in request_irq()
disable_irq() after request_irq() still has a time gap in which interrupts can come. request_irq() with IRQF_NO_AUTOEN flag will disable IRQ auto-enable when request IRQ. Fixes: 9728fb3 ("spi: lpspi: disable lpspi module irq in DMA mode") Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> Link: https://patch.msgid.link/20240906022828.891812-1-ruanjinjie@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 89980d3 commit 003c7e0

1 file changed

Lines changed: 4 additions & 8 deletions

File tree

drivers/spi/spi-fsl-lpspi.c

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -891,7 +891,7 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
891891
return ret;
892892
}
893893

894-
ret = devm_request_irq(&pdev->dev, irq, fsl_lpspi_isr, 0,
894+
ret = devm_request_irq(&pdev->dev, irq, fsl_lpspi_isr, IRQF_NO_AUTOEN,
895895
dev_name(&pdev->dev), fsl_lpspi);
896896
if (ret) {
897897
dev_err(&pdev->dev, "can't get irq%d: %d\n", irq, ret);
@@ -948,14 +948,10 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
948948
ret = fsl_lpspi_dma_init(&pdev->dev, fsl_lpspi, controller);
949949
if (ret == -EPROBE_DEFER)
950950
goto out_pm_get;
951-
if (ret < 0)
951+
if (ret < 0) {
952952
dev_warn(&pdev->dev, "dma setup error %d, use pio\n", ret);
953-
else
954-
/*
955-
* disable LPSPI module IRQ when enable DMA mode successfully,
956-
* to prevent the unexpected LPSPI module IRQ events.
957-
*/
958-
disable_irq(irq);
953+
enable_irq(irq);
954+
}
959955

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

0 commit comments

Comments
 (0)