Skip to content

Commit

Permalink
ARM: shmobile: sh73a0 legacy: Set .control_parent for all irqpin inst…
Browse files Browse the repository at this point in the history
…ances

commit b0ddb31 upstream.

The sh73a0 INTC can't mask interrupts properly most likely due to a
hardware bug. Set the .control_parent flag to delegate masking to the
parent interrupt controller, like was already done for irqpin1.

Without this, accessing the three-axis digital accelerometer ADXL345
on kzm9g through /dev/input/event1 causes an interrupt storm, which
requires a power-cycle to recover from.

This was inspired by a patch for arch/arm/boot/dts/sh73a0.dtsi from
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Fixes: 341eb54 ("ARM: shmobile: INTC External IRQ pin driver on sh73a0")
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Geert Uytterhoeven authored and Greg Kroah-Hartman committed Jan 27, 2015
1 parent 25bcda8 commit 7a66eeb
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions arch/arm/mach-shmobile/setup-sh73a0.c
Original file line number Diff line number Diff line change
Expand Up @@ -598,6 +598,7 @@ static struct platform_device ipmmu_device = {

static struct renesas_intc_irqpin_config irqpin0_platform_data = {
.irq_base = irq_pin(0), /* IRQ0 -> IRQ7 */
.control_parent = true,
};

static struct resource irqpin0_resources[] = {
Expand Down Expand Up @@ -659,6 +660,7 @@ static struct platform_device irqpin1_device = {

static struct renesas_intc_irqpin_config irqpin2_platform_data = {
.irq_base = irq_pin(16), /* IRQ16 -> IRQ23 */
.control_parent = true,
};

static struct resource irqpin2_resources[] = {
Expand Down Expand Up @@ -689,6 +691,7 @@ static struct platform_device irqpin2_device = {

static struct renesas_intc_irqpin_config irqpin3_platform_data = {
.irq_base = irq_pin(24), /* IRQ24 -> IRQ31 */
.control_parent = true,
};

static struct resource irqpin3_resources[] = {
Expand Down

0 comments on commit 7a66eeb

Please sign in to comment.