Skip to contentSkip to conversation

ARM: imx: add platform irq type setting in gpc

PATCH New Anson Huang 3 participants 3 messages Oct 20, 2015 – Nov 23, 2015

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 ARM: imx: add platform irq type setting in gpc

From: Anson Huang <[email protected]>

GPC irq domain is a child domain of GIC, now all of platform irqs are inside GPC domain, during the module populate, all devices irq should have correct type setting in GIC, however, there is no .irq_set_type callback setting in GPC, so the irq_set_type will be skipped and cause all irqs' type in /proc/interrupt are "edge" which mismatch with irq type setting in dtb file. Since GPC has no irq type setting, so just tell kernel to use irq_chip_set_type_parent.

---
change from V1:
improve commit message.

 arch/arm/mach-imx/gpc.c | 1 +
 1 file changed, 1 insertion(+)
arch/arm/mach-imx/gpc.c +1 -0
index 10bf715..b3a7a74 100644
@@ -176,6 +176,7 @@ static struct irq_chip imx_gpc_chip = {
 	.irq_unmask		= imx_gpc_irq_unmask,
 	.irq_retrigger		= irq_chip_retrigger_hierarchy,
 	.irq_set_wake		= imx_gpc_irq_set_wake,
+	.irq_set_type           = irq_chip_set_type_parent,
 #ifdef CONFIG_SMP
 	.irq_set_affinity	= irq_chip_set_affinity_parent,
 #endif
Signature · 1 line
1.9.1
#1 lore raw

PATCH v2 1/1 ARM: imx: add platform irq type setting in gpc

Am Dienstag, den 20.10.2015, 18:44 +0800 schrieb Anson Huang:

Quoted 11 lines

From: Anson Huang <[email protected]>

GPC irq domain is a child domain of GIC, now all of platform irqs are inside GPC domain, during the module populate, all devices irq should have correct type setting in GIC, however, there is no .irq_set_type callback setting in GPC, so the irq_set_type will be skipped and cause all irqs' type in /proc/interrupt are "edge" which mismatch with irq type setting in dtb file. Since GPC has no irq type setting, so just tell kernel to use irq_chip_set_type_parent.

Quoted 18 lines

---
change from V1:
improve commit message.

 arch/arm/mach-imx/gpc.c | 1 +
 1 file changed, 1 insertion(+)
arch/arm/mach-imx/gpc.c +1 -0
index 10bf715..b3a7a74 100644
@@ -176,6 +176,7 @@ static struct irq_chip imx_gpc_chip = {
 	.irq_unmask		= imx_gpc_irq_unmask,
 	.irq_retrigger		= irq_chip_retrigger_hierarchy,
 	.irq_set_wake		= imx_gpc_irq_set_wake,
+	.irq_set_type           = irq_chip_set_type_parent,
 #ifdef CONFIG_SMP
 	.irq_set_affinity	= irq_chip_set_affinity_parent,
 #endif
Signature · 2 lines
Pengutronix e.K.             | Lucas Stach                 |
Industrial Linux Solutions   | http://www.pengutronix.de/  |
Applied
#2 lore raw

PATCH v2 1/1 ARM: imx: add platform irq type setting in gpc

In reply to Anson Huang
Quoted 11 lines · Anson Huang

From: Anson Huang <[email protected]>

GPC irq domain is a child domain of GIC, now all of platform irqs are inside GPC domain, during the module populate, all devices irq should have correct type setting in GIC, however, there is no .irq_set_type callback setting in GPC, so the irq_set_type will be skipped and cause all irqs' type in /proc/interrupt are "edge" which mismatch with irq type setting in dtb file. Since GPC has no irq type setting, so just tell kernel to use irq_chip_set_type_parent.

Applied, thanks.