All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms+renesas@verge.net.au>
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] ARM: shmobile: sh73a0 legacy: Set .control_parent for all irqpin instances
Date: Tue, 13 Jan 2015 02:13:28 +0000	[thread overview]
Message-ID: <b0ddb319db3d7a1943445f0de0a45c07a7f3457a.1421113695.git.horms+renesas@verge.net.au> (raw)
In-Reply-To: <cover.1421113695.git.horms+renesas@verge.net.au>

From: Geert Uytterhoeven <geert+renesas@glider.be>

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: 341eb5465f67437a ("ARM: shmobile: INTC External IRQ pin driver on sh73a0")
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/mach-shmobile/setup-sh73a0.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
index fa7cab8..b5d0cf5 100644
--- a/arch/arm/mach-shmobile/setup-sh73a0.c
+++ b/arch/arm/mach-shmobile/setup-sh73a0.c
@@ -579,6 +579,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[] = {
@@ -640,6 +641,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[] = {
@@ -670,6 +672,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[] = {
-- 
2.1.4


WARNING: multiple messages have this Message-ID (diff)
From: horms+renesas@verge.net.au (Simon Horman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] ARM: shmobile: sh73a0 legacy: Set .control_parent for all irqpin instances
Date: Tue, 13 Jan 2015 11:13:28 +0900	[thread overview]
Message-ID: <b0ddb319db3d7a1943445f0de0a45c07a7f3457a.1421113695.git.horms+renesas@verge.net.au> (raw)
In-Reply-To: <cover.1421113695.git.horms+renesas@verge.net.au>

From: Geert Uytterhoeven <geert+renesas@glider.be>

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: 341eb5465f67437a ("ARM: shmobile: INTC External IRQ pin driver on sh73a0")
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/mach-shmobile/setup-sh73a0.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
index fa7cab8..b5d0cf5 100644
--- a/arch/arm/mach-shmobile/setup-sh73a0.c
+++ b/arch/arm/mach-shmobile/setup-sh73a0.c
@@ -579,6 +579,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[] = {
@@ -640,6 +641,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[] = {
@@ -670,6 +672,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[] = {
-- 
2.1.4

  parent reply	other threads:[~2015-01-13  2:13 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-10  2:45 [GIT PULL] Renesas ARM Based SoC Fixes for v3.14 Simon Horman
2014-01-10  2:45 ` Simon Horman
2014-01-10  2:46 ` [PATCH] ARM: shmobile: r8a7790: Fix I2C controller names Simon Horman
2014-01-10  2:46   ` Simon Horman
2014-01-14 18:44 ` [GIT PULL] Renesas ARM Based SoC Fixes for v3.14 Kevin Hilman
2014-01-14 18:44   ` Kevin Hilman
2014-01-15  0:04   ` Simon Horman
2014-01-15  0:04     ` Simon Horman
2014-05-29 23:31 ` [GIT PULL] Renesas ARM Based SoC Fixes for v3.16 Simon Horman
2014-05-29 23:31   ` Simon Horman
2014-05-29 23:31   ` [PATCH] ARM: shmobile: armadillo800eva: fixup HDMI sound flags setting Simon Horman
2014-05-29 23:31     ` Simon Horman
2014-05-30 16:23   ` [GIT PULL] Renesas ARM Based SoC Fixes for v3.16 Olof Johansson
2014-05-30 16:23     ` Olof Johansson
2014-11-17  2:45 ` [GIT PULL] Renesas ARM Based SoC Fixes for v3.18 Simon Horman
2014-11-17  2:45   ` Simon Horman
2014-11-17  2:45   ` [PATCH] ARM: shmobile: kzm9g legacy: Set i2c clks_per_count to 2 Simon Horman
2014-11-17  2:45     ` Simon Horman
2015-01-13  2:13 ` [GIT PULL] Renesas ARM Based SoC Fixes for v3.19 Simon Horman
2015-01-13  2:13   ` Simon Horman
2015-01-13  2:13   ` [PATCH 1/2] ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds Simon Horman
2015-01-13  2:13     ` Simon Horman
2015-01-13  2:13   ` Simon Horman [this message]
2015-01-13  2:13     ` [PATCH 2/2] ARM: shmobile: sh73a0 legacy: Set .control_parent for all irqpin instances Simon Horman
2015-01-13  8:10   ` [GIT PULL] Renesas ARM Based SoC Fixes for v3.19 Geert Uytterhoeven
2015-01-13  8:10     ` Geert Uytterhoeven
2015-01-13 23:32     ` Olof Johansson
2015-01-13 23:32       ` Olof Johansson
2015-01-14  0:20     ` Simon Horman
2015-01-14  0:20       ` Simon Horman
2015-05-07  5:46 ` [GIT PULL] Renesas ARM Based SoC Fixes for v4.1 Simon Horman
2015-05-07  5:46   ` Simon Horman
2015-05-07  5:46   ` [PATCH] ARM: shmobile: koelsch: Fix adv7511 IRQ sensing Simon Horman
2015-05-07  5:46     ` Simon Horman
2015-05-07 16:27   ` [GIT PULL] Renesas ARM Based SoC Fixes for v4.1 Arnd Bergmann
2015-05-07 16:27     ` Arnd Bergmann
2015-10-02  2:29 ` [GIT PULL] Renesas ARM Based SoC Fixes for v4.3 Simon Horman
2015-10-02  2:29   ` Simon Horman
2015-10-02  2:29   ` [PATCH 1/2] ARM: shmobile: r8a7790 dtsi: Add CPG/MSTP Clock Domain for sound Simon Horman
2015-10-02  2:29     ` Simon Horman
2015-10-02 11:29     ` Sergei Shtylyov
2015-10-02 11:29       ` Sergei Shtylyov
2015-10-02 11:32       ` Sergei Shtylyov
2015-10-02 11:32         ` Sergei Shtylyov
2015-10-06 12:37         ` Arnd Bergmann
2015-10-06 12:37           ` Arnd Bergmann
2015-10-02  2:29   ` [PATCH 2/2] ARM: shmobile: r8a7791 " Simon Horman
2015-10-02  2:29     ` Simon Horman
2015-10-16 14:05     ` [PATCH 2/2] ARM: shmobile: r8a7791 dtsi: Remove bogus imp_clk node Geert Uytterhoeven
2015-10-06 12:32   ` [GIT PULL] Renesas ARM Based SoC Fixes for v4.3 Arnd Bergmann
2015-10-06 12:32     ` Arnd Bergmann
2015-11-27  1:56 ` [GIT PULL] Renesas ARM Based SoC Fixes for v4.4 Simon Horman
2015-11-27  1:56   ` Simon Horman
2015-11-27  1:56   ` [PATCH] ARM: shmobile: r8a7793: proper constness with __initconst Simon Horman
2015-11-27  1:56     ` Simon Horman
2015-11-27 16:30   ` [GIT PULL] Renesas ARM Based SoC Fixes for v4.4 Arnd Bergmann
2015-11-27 16:30     ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b0ddb319db3d7a1943445f0de0a45c07a7f3457a.1421113695.git.horms+renesas@verge.net.au \
    --to=horms+renesas@verge.net.au \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.