Skip to contentSkip to conversation

microblaze: Fix level/edge irq sensibility

PATCH Superseded Michal Simek 1 participant 2 messages Mar 30, 2011 Microblaze architecture

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Michal Simek

author maintainer
#0 lore raw

PATCH 1/1 microblaze: Fix level/edge irq sensibility

Patches:
"microblaze: Convert to new irq function names"
sha (4adc192ec7d977c74c750320f289af9d61c1caca)
and
"microblaze: Use generic show_interrupts()"
sha(9d61c18b25726306c9231428c17db42e3ff29ba7)

should also setup edge/level in irq_set_chip_and_handler_name name parameter.

Error log:
~ # cat /proc/interrupts
CPU0

  2:          2  Xilinx INTC-Xilinx INTC  eth0
  3:          2  Xilinx INTC-Xilinx INTC  eth0
  4:        241  Xilinx INTC-Xilinx INTC  timer
  6:        108  Xilinx INTC-Xilinx INTC  serial

Fixed:
~ # cat /proc/interrupts
CPU0

  2:          2  Xilinx INTC-edge      eth0
  3:          2  Xilinx INTC-edge      eth0
  4:        241  Xilinx INTC-level     timer
  6:        108  Xilinx INTC-edge      serial
---
 arch/microblaze/kernel/intc.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
arch/microblaze/kernel/intc.c +2 -2
index 5ba7e16..71efa51 100644
@@ -158,11 +158,11 @@ void __init init_IRQ(void)
 	for (i = 0; i < nr_irq; ++i) {
 		if (intr_type & (0x00000001 << i)) {
 			irq_set_chip_and_handler_name(i, &intc_dev,
-				handle_edge_irq, intc_dev.name);
+				handle_edge_irq, "level");
 			irq_clear_status_flags(i, IRQ_LEVEL);
 		} else {
 			irq_set_chip_and_handler_name(i, &intc_dev,
-				handle_level_irq, intc_dev.name);
+				handle_level_irq, "edge");
 			irq_set_status_flags(i, IRQ_LEVEL);
 		}
 	}
Signature · 1 line
1.5.5.6
author maintainer
#1 lore raw
Quoted 36 lines · Michal Simek

Patches:
"microblaze: Convert to new irq function names"
sha (4adc192ec7d977c74c750320f289af9d61c1caca)
and
"microblaze: Use generic show_interrupts()"
sha(9d61c18b25726306c9231428c17db42e3ff29ba7)

should also setup edge/level in irq_set_chip_and_handler_name name parameter.

Error log:
~ # cat /proc/interrupts
CPU0

  2:          2  Xilinx INTC-Xilinx INTC  eth0
  3:          2  Xilinx INTC-Xilinx INTC  eth0
  4:        241  Xilinx INTC-Xilinx INTC  timer
  6:        108  Xilinx INTC-Xilinx INTC  serial

Fixed:
~ # cat /proc/interrupts
CPU0

  2:          2  Xilinx INTC-edge      eth0
  3:          2  Xilinx INTC-edge      eth0
  4:        241  Xilinx INTC-level     timer
  6:        108  Xilinx INTC-edge      serial
---
 arch/microblaze/kernel/intc.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
arch/microblaze/kernel/intc.c +0 -0
index 5ba7e16..71efa51 100644

arch/microblaze/kernel/intc.c void __init init_IRQ(void) · line 165

Quoted 10 lines
arch/microblaze/kernel/intc.c +2 -2
@@ -158,11 +158,11 @@ void __init init_IRQ(void)
 	for (i = 0; i < nr_irq; ++i) {
 		if (intr_type & (0x00000001 << i)) {
 			irq_set_chip_and_handler_name(i, &intc_dev,
-				handle_edge_irq, intc_dev.name);
+				handle_edge_irq, "level");
 			irq_clear_status_flags(i, IRQ_LEVEL);
 		} else {
 			irq_set_chip_and_handler_name(i, &intc_dev,
-				handle_level_irq, intc_dev.name);
+				handle_level_irq, "edge");

oou - vice-versa - this is level and above is edge. Will send v2

M

Signature · 4 lines
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian