[PATCH 3.8-rc] arm: mvebu: use global interrupts for GPIOs on Armada XP
Jason Cooper
jason at lakedaemon.net
Tue Jan 8 07:41:19 EST 2013
On Mon, Jan 07, 2013 at 05:26:58PM +0100, Thomas Petazzoni wrote:
> The Armada XP GPIO controller has two ways of notifying interrupts:
> using global interrupts or using per-CPU interrupts. In an attempt to
> use the best available features, the 'marvell,armadaxp-gpio'
> compatible string selects a variant of the gpio-mvebu driver that
> makes use of the per-CPU interrupts.
>
> Unfortunately, this doesn't work properly in a SMP context, because we
> fall into cases where the GPIO interrupt is enabled on CPU X at the
> GPIO controller level, but on CPU Y at the interrupt controller
> level. It is not yet clear how to fix that easily.
>
> So for 3.8, our approach is to switch to global interrupts for GPIOs,
> so that we do not fall into this per-CPU interrupts problem.
>
> This patch therefore fixes GPIO interrupts on Armada XP
> platforms. Without this patch, GPIO interrupts simply do not work
> reliably, because their proper operation depends on which CPU the code
> requesting the interrupt is running.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> ---
> This is 3.8-rc material.
> ---
> arch/arm/boot/dts/armada-xp-mv78230.dtsi | 14 ++++++--------
> arch/arm/boot/dts/armada-xp-mv78260.dtsi | 21 +++++++++------------
> arch/arm/boot/dts/armada-xp-mv78460.dtsi | 21 +++++++++------------
> 3 files changed, 24 insertions(+), 32 deletions(-)
Applied to mvebu/fixes
thx,
Jason.
More information about the linux-arm-kernel
mailing list