diff options
author | Imre Kaloz <kaloz@openwrt.org> | 2008-06-04 13:51:17 +0000 |
---|---|---|
committer | Imre Kaloz <kaloz@openwrt.org> | 2008-06-04 13:51:17 +0000 |
commit | 7bb65fb9d7860faa4b9b1e07790fb5823a0249e2 (patch) | |
tree | 701aabf12d94bdeddafbf8d328dee2492eef9ad5 /target/linux/orion/patches/008-top-level_irqs_are_level-triggered.patch | |
parent | 0244e57bb9fb9ebd1dd224bd5789ad9cc24b0175 (diff) | |
download | upstream-7bb65fb9d7860faa4b9b1e07790fb5823a0249e2.tar.gz upstream-7bb65fb9d7860faa4b9b1e07790fb5823a0249e2.tar.bz2 upstream-7bb65fb9d7860faa4b9b1e07790fb5823a0249e2.zip |
add preliminary Marvell Orion support
SVN-Revision: 11352
Diffstat (limited to 'target/linux/orion/patches/008-top-level_irqs_are_level-triggered.patch')
-rw-r--r-- | target/linux/orion/patches/008-top-level_irqs_are_level-triggered.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/target/linux/orion/patches/008-top-level_irqs_are_level-triggered.patch b/target/linux/orion/patches/008-top-level_irqs_are_level-triggered.patch new file mode 100644 index 0000000000..add15900c9 --- /dev/null +++ b/target/linux/orion/patches/008-top-level_irqs_are_level-triggered.patch @@ -0,0 +1,35 @@ +Make it clear that Orion top-level IRQs are level-triggered. This +means that we don't need an ->ack() handler, or at least, we don't +need the ->ack() handler (or the acking part of the ->mask_ack() +handler) to actually do anything. + +Given that, we might as well point our ->mask_ack() handler at the +->mask() handler instead of providing a dummy ->ack() handler, since +providing a ->mask_ack() handler on level IRQ sources will prevent +->ack() from ever being called. + +Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> +--- + arch/arm/plat-orion/irq.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +--- a/arch/arm/plat-orion/irq.c ++++ b/arch/arm/plat-orion/irq.c +@@ -36,8 +36,8 @@ + + static struct irq_chip orion_irq_chip = { + .name = "orion_irq", +- .ack = orion_irq_mask, + .mask = orion_irq_mask, ++ .mask_ack = orion_irq_mask, + .unmask = orion_irq_unmask, + }; + +@@ -59,6 +59,7 @@ + set_irq_chip(irq, &orion_irq_chip); + set_irq_chip_data(irq, maskaddr); + set_irq_handler(irq, handle_level_irq); ++ irq_desc[irq].status |= IRQ_LEVEL; + set_irq_flags(irq, IRQF_VALID); + } + } |