Re: [PATCH 0/3] rtc: pcf8563: Fix unhandled interrupt storm

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

 



On 04/06/2019 12:23:34+0800, Chen-Yu Tsai wrote:
> From: Chen-Yu Tsai <wens@xxxxxxxx>
> 
> Hi everyone,
> 
> While bringing up my Pine H64, I encountered an interrupt storm from the
> pcf8563 RTC. The RTC chip's interrupt line is shared with the PMIC, and
> was not properly added to the device tree. Also, the driver was using an
> trigger method incompatible with the PMIC, preventing the interrupt line
> from being shared. Last, the driver only clears and masks the alarm
> interrupt, while leaving the timer interrupt untouched. This is a
> problem if previous systems left the timer interrupt enabled, and there
> was an interrupt pending.
> 
> This patch set fixes all three issues, one per patch.
> 
> Please have a look.
> 

I don't have that particular RTC so I can't test but the interrupt
handling in pcf8563_irq seems problematic too. I guess the RTC will only
trigger once per second because the call to pcf8563_set_alarm_mode will
explicitely leave the alarm enabled. The core doesn't really care but it
doesn't really expect the alarm to stay enabled. i.e. It will ensure the
alarm is enabled again after setting it when necessary. I think it would
be safer to simply clear both AIE and AF here. Could you test?

> Chen-Yu Tsai (3):
>   rtc: pcf8563: Fix interrupt trigger method
>   rtc: pcf8563: Clear event flags and disable interrupts before
>     requesting irq
>   arm64: dts: allwinner: h6: Pine H64: Add interrupt line for RTC
> 
>  .../arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts |  2 ++
>  drivers/rtc/rtc-pcf8563.c                           | 13 ++++++-------
>  2 files changed, 8 insertions(+), 7 deletions(-)
> 
> -- 
> 2.20.1
> 

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux