mmc: s3cmci: move to use request_irq by IRQF_NO_AUTOEN flag
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 because of requesting. Signed-off-by: Tian Tao <tiantao6@hisilicon.com> Link: https://lore.kernel.org/r/1617765339-28946-1-git-send-email-tiantao6@hisilicon.com Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
009c9aa5be
commit
da3b1486d7
@ -1578,17 +1578,12 @@ static int s3cmci_probe(struct platform_device *pdev)
|
||||
goto probe_iounmap;
|
||||
}
|
||||
|
||||
if (request_irq(host->irq, s3cmci_irq, 0, DRIVER_NAME, host)) {
|
||||
if (request_irq(host->irq, s3cmci_irq, IRQF_NO_AUTOEN, DRIVER_NAME, host)) {
|
||||
dev_err(&pdev->dev, "failed to request mci interrupt.\n");
|
||||
ret = -ENOENT;
|
||||
goto probe_iounmap;
|
||||
}
|
||||
|
||||
/* We get spurious interrupts even when we have set the IMSK
|
||||
* register to ignore everything, so use disable_irq() to make
|
||||
* ensure we don't lock the system with un-serviceable requests. */
|
||||
|
||||
disable_irq(host->irq);
|
||||
host->irq_state = false;
|
||||
|
||||
/* Depending on the dma state, get a DMA channel to use. */
|
||||
|
Loading…
Reference in New Issue
Block a user