Subject: [PATCH 4.4-rt2] fix arm-at91-pit-remove-irq-handler-when-clock-is-unused.patch

From: [email-masked] (Alexandre Belloni)
Date: Thu, 17 Mar 2016 20:55:09 +0100

Hi Thomas,

On 20/01/2016 at 12:07:30 +0100, Thomas Gleixner wrote :
> Well freeing the irq from that context in RT only works because its called
> before SYSTEM_STATE=RUNNING. So no, this was wrong forever.
> 
> The issue we are dealing with is that the timer interrupt is shared with the
> uart. So the timer has IRQ_NO_THREAD set and the uart interrupt gets force
> threaded. So that results in a failure to request the interrupt for the
> UART. That's not RT specific, that already happens in mainline if you add
> 'threadirqs' to the command line.
> 
> So until the DT folks come to senses and we get that dummy demux chip done, I
> came up with the following - completely untested - solution.
> 
> The downside of this is, that the timer will be delayed until the uart thread
> returns, but with the replacement clockevent in place on RT that's a non
> issue. For mainline it's obviously better than what we have now.
> 

I've tested it and it seems to work properly on the few platform where I
can reproduce the issue. What is your plan regarding upstreaming? I
guess you can split and take the resulting patches through your tree.

-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com