Boris,

> -----Original Message-----
> From: Boris BREZILLON [mailto:boris.brezil...@free-electrons.com]
> Sent: Wednesday, May 07, 2014 12:21 PM
> To: Bryan Evenson
> Cc: Andrew Victor; Nicolas Ferre; Jean-Christophe Plagniol-Villard; linux-arm-
> ker...@lists.infradead.org; linux-kernel@vger.kernel.org; Boris BREZILLON
> Subject: [PATCH] ARM: at91: fix rtc irq mask for sam9x5 SoCs
> 
> The RTC IMR register is not reliable on sam9x5 SoCs, hence why me have to
> mask all interrupts no matter what IMR claims about already masked irqs.
> 
> Signed-off-by: Boris BREZILLON <boris.brezil...@free-electrons.com>
> Reported-by: Bryan Evenson <beven...@melinkcorp.com>
> ---
> Hello Bryan,
> 
> Yet another patch for you ;-).
> 
> As usual, could you tell me if it fixes your bug.
> 
> BTW, thanks for your tests.
> 
> Best Regards,
> 
> Boris

This fixes the issue on my system.  I disconnected my system from the network 
to guarantee ntp didn't adjust the time.  I power cycled my system 15 times 
with the RTC backup battery in place, and each time it booted without issue and 
the RTC kept the correct time.  Before this patch my system would never 
complete booting with the RTC battery installed.  I also used my previous test 
script for the previous patch to verify that I could not lockup access to the 
RTC.

Tested-by: Bryan Evenson <beven...@melinkcorp.com>

Regards,
Bryan

> 
>  arch/arm/mach-at91/sysirq_mask.c | 7 +------
>  1 file changed, 1 insertion(+), 6 deletions(-)
> 
> diff --git a/arch/arm/mach-at91/sysirq_mask.c b/arch/arm/mach-
> at91/sysirq_mask.c
> index 2ba694f..eb3d2a5 100644
> --- a/arch/arm/mach-at91/sysirq_mask.c
> +++ b/arch/arm/mach-at91/sysirq_mask.c
> @@ -37,12 +37,7 @@ void __init at91_sysirq_mask_rtc(u32 rtc_base)
>       if (!base)
>               return;
> 
> -     mask = readl_relaxed(base + AT91_RTC_IMR);
> -     if (mask) {
> -             pr_info("AT91: Disabling rtc irq\n");
> -             writel_relaxed(mask, base + AT91_RTC_IDR);
> -             (void)readl_relaxed(base + AT91_RTC_IMR);       /* flush */
> -     }
> +     writel_relaxed(0x1f, base + AT91_RTC_IDR);
> 
>       iounmap(base);
>  }
> --
> 1.8.3.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to