Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1252890
| From | Jason Cooper <jason@lakedaemon.net> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] irqchip: irq-armada-370-xp: fix regression by clearing IRQ_NOAUTOEN |
| Date | 2015-10-21 16:50 +0200 |
| Message-ID | <qm2Se-606-33@gated-at.bofh.it> (permalink) |
| References | <qlKLD-4Jw-1@gated-at.bofh.it> <qm1Wa-4CG-9@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hey Thomas-i, Thomases, :)
On Wed, Oct 21, 2015 at 03:48:15PM +0200, Thomas Petazzoni wrote:
> Commit d17cab4451df1 ("irqchip: Kill off set_irq_flags usage") changed
> the code of armada_370_xp_mpic_irq_map() from using set_irq_flags() to
> irq_set_probe().
>
> While the commit log seems to imply that there are no functional
> changes, there are indeed functional changes introduced by this
> commit: the IRQ_NOAUTOEN flag is no longer cleared. This functional
> change causes a regression on Armada XP, which no longer works
> properly after suspend/resume because per-CPU interrupts remain
> disabled.
>
> Due to how the hardware registers work, the irq-armada-370-xp cannot
> simply save/restore a bunch of registers at suspend/resume to make
> sure that the interrupts remain in the same state after
> resuming. Therefore, it relies on the kernel to say whether the
> interrupt is disabled or not, using the irqd_irq_disabled()
> function. This was all working fine while the IRQ_NOAUTOEN flag was
> cleared.
>
> With the change introduced by Rob Herring in d17cab4451df1, the
> IRQ_NOAUTOEN flag is now set for all interrupts. irqd_irq_disabled()
> returns false for per-CPU interrupts, and therefore our per-CPU
> interrupts are no longer re-enabled after resume.
>
> This commit works around this problem by clearing again the
> IRQ_NOAUTOEN flags, so that we are back to the situation we had before
> commit d17cab4451df1. This work around is proposed as a minimal fix
> for the problem, while a better long-term solution is being worked on.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> Here is the one-line minimal change that tglx said would be more
> acceptable to have in 4.3.
> ---
> drivers/irqchip/irq-armada-370-xp.c | 1 +
> 1 file changed, 1 insertion(+)
Applied to irqchip/urgent with minor tweaking of the subject line. I
trust at this point it's ok to pull in -rc2.
thx,
Jason.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/5] Fix regression introduced by set_irq_flags() removal Thomas Petazzoni <thomas.petazzoni@free-electrons.com> - 2015-10-20 15:30 +0200
Re: [PATCH 0/5] Fix regression introduced by set_irq_flags() removal Thomas Petazzoni <thomas.petazzoni@free-electrons.com> - 2015-10-20 16:10 +0200
Re: [PATCH 0/5] Fix regression introduced by set_irq_flags() removal Russell King - ARM Linux <linux@arm.linux.org.uk> - 2015-10-20 16:20 +0200
Re: [PATCH 0/5] Fix regression introduced by set_irq_flags() removal Thomas Petazzoni <thomas.petazzoni@free-electrons.com> - 2015-10-20 16:30 +0200
Re: [PATCH 0/5] Fix regression introduced by set_irq_flags() removal Thomas Gleixner <tglx@linutronix.de> - 2015-10-20 21:30 +0200
Re: [PATCH 0/5] Fix regression introduced by set_irq_flags() removal Thomas Gleixner <tglx@linutronix.de> - 2015-10-22 10:10 +0200
Re: [PATCH 0/5] Fix regression introduced by set_irq_flags() removal Thomas Gleixner <tglx@linutronix.de> - 2015-10-20 21:30 +0200
[PATCH] irqchip: irq-armada-370-xp: fix regression by clearing IRQ_NOAUTOEN Thomas Petazzoni <thomas.petazzoni@free-electrons.com> - 2015-10-21 15:50 +0200
Re: [PATCH] irqchip: irq-armada-370-xp: fix regression by clearing IRQ_NOAUTOEN Jason Cooper <jason@lakedaemon.net> - 2015-10-21 16:50 +0200
Re: [PATCH 0/5] Fix regression introduced by set_irq_flags() removal Thomas Petazzoni <thomas.petazzoni@free-electrons.com> - 2015-10-21 15:50 +0200
Re: [PATCH 0/5] Fix regression introduced by set_irq_flags() removal Jason Cooper <jason@lakedaemon.net> - 2015-10-20 16:10 +0200
csiph-web