Message ID | 1617761937-58318-1-git-send-email-tiantao6@hisilicon.com |
---|---|
State | Accepted |
Headers | show |
Series | rtc: st-lpc: move to use request_irq by IRQF_NO_AUTOEN flag | expand |
Hi Tian On 4/7/21 4:18 AM, Tian Tao wrote: > 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@hisilicon.com> > --- > drivers/rtc/rtc-st-lpc.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/rtc/rtc-st-lpc.c b/drivers/rtc/rtc-st-lpc.c > index bdb20f6..2df2179 100644 > --- a/drivers/rtc/rtc-st-lpc.c > +++ b/drivers/rtc/rtc-st-lpc.c > @@ -218,15 +218,14 @@ static int st_rtc_probe(struct platform_device *pdev) > return -EINVAL; > } > > - ret = devm_request_irq(&pdev->dev, rtc->irq, st_rtc_handler, 0, > - pdev->name, rtc); > + ret = devm_request_irq(&pdev->dev, rtc->irq, st_rtc_handler, > + IRQF_NO_AUTOEN, pdev->name, rtc); > if (ret) { > dev_err(&pdev->dev, "Failed to request irq %i\n", rtc->irq); > return ret; > } > > enable_irq_wake(rtc->irq); > - disable_irq(rtc->irq); > > rtc->clk = clk_get(&pdev->dev, NULL); > if (IS_ERR(rtc->clk)) { > Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Thanks Patrice
On Wed, 7 Apr 2021 10:18:57 +0800, Tian Tao wrote: > 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/ Applied, thanks! [1/1] rtc: st-lpc: move to use request_irq by IRQF_NO_AUTOEN flag commit: 81a0eaf28af6bcf925cee63ba5f6ab4d73c1d072 Best regards,
diff --git a/drivers/rtc/rtc-st-lpc.c b/drivers/rtc/rtc-st-lpc.c index bdb20f6..2df2179 100644 --- a/drivers/rtc/rtc-st-lpc.c +++ b/drivers/rtc/rtc-st-lpc.c @@ -218,15 +218,14 @@ static int st_rtc_probe(struct platform_device *pdev) return -EINVAL; } - ret = devm_request_irq(&pdev->dev, rtc->irq, st_rtc_handler, 0, - pdev->name, rtc); + ret = devm_request_irq(&pdev->dev, rtc->irq, st_rtc_handler, + IRQF_NO_AUTOEN, pdev->name, rtc); if (ret) { dev_err(&pdev->dev, "Failed to request irq %i\n", rtc->irq); return ret; } enable_irq_wake(rtc->irq); - disable_irq(rtc->irq); rtc->clk = clk_get(&pdev->dev, NULL); if (IS_ERR(rtc->clk)) {
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@hisilicon.com> --- drivers/rtc/rtc-st-lpc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)