[PATCH] rtc: vr41xx: move to use request_irq by IRQF_NO_AUTOEN flag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

this patch is made base on "add IRQF_NO_AUTOEN for request_irq" which
is being merged: https://lore.kernel.org/patchwork/patch/1388765/

Signed-off-by: Tian Tao <tiantao6@xxxxxxxxxxxxx>
---
 drivers/rtc/rtc-vr41xx.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/rtc/rtc-vr41xx.c b/drivers/rtc/rtc-vr41xx.c
index 5a9f9ad..1a02b52 100644
--- a/drivers/rtc/rtc-vr41xx.c
+++ b/drivers/rtc/rtc-vr41xx.c
@@ -312,8 +312,8 @@ static int rtc_probe(struct platform_device *pdev)
 		goto err_iounmap_all;
 	}
 
-	retval = devm_request_irq(&pdev->dev, aie_irq, elapsedtime_interrupt, 0,
-				"elapsed_time", pdev);
+	retval = devm_request_irq(&pdev->dev, aie_irq, elapsedtime_interrupt,
+				  IRQF_NO_AUTOEN, "elapsed_time", pdev);
 	if (retval < 0)
 		goto err_iounmap_all;
 
@@ -323,16 +323,13 @@ static int rtc_probe(struct platform_device *pdev)
 		goto err_iounmap_all;
 	}
 
-	retval = devm_request_irq(&pdev->dev, pie_irq, rtclong1_interrupt, 0,
-				"rtclong1", pdev);
+	retval = devm_request_irq(&pdev->dev, pie_irq, rtclong1_interrupt,
+				  IRQF_NO_AUTOEN, "rtclong1", pdev);
 	if (retval < 0)
 		goto err_iounmap_all;
 
 	platform_set_drvdata(pdev, rtc);
 
-	disable_irq(aie_irq);
-	disable_irq(pie_irq);
-
 	dev_info(&pdev->dev, "Real Time Clock of NEC VR4100 series\n");
 
 	retval = devm_rtc_register_device(rtc);
-- 
2.7.4




[Index of Archives]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux