diff options
Diffstat (limited to 'packages/linux/linux-2.6.18/avr32-time-add-shared-interrupts.patch')
-rw-r--r-- | packages/linux/linux-2.6.18/avr32-time-add-shared-interrupts.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/linux/linux-2.6.18/avr32-time-add-shared-interrupts.patch b/packages/linux/linux-2.6.18/avr32-time-add-shared-interrupts.patch new file mode 100644 index 0000000000..c626016ff4 --- /dev/null +++ b/packages/linux/linux-2.6.18/avr32-time-add-shared-interrupts.patch @@ -0,0 +1,30 @@ +--- linux-2.6.18.orig/arch/avr32/kernel/time.c 2006-11-06 14:36:50.000000000 +0100 ++++ linux-2.6.18/arch/avr32/kernel/time.c 2006-11-06 14:57:03.000000000 +0100 +@@ -21,6 +21,7 @@ + #include <linux/profile.h> + #include <linux/sysdev.h> + ++#include <asm/intc.h> + #include <asm/div64.h> + #include <asm/sysreg.h> + #include <asm/io.h> +@@ -136,6 +137,10 @@ + { + unsigned int count; + ++ /* Check if interrupt is timer or performance counters */ ++ if (!(intc_get_pending(irq) & 1)) ++ return IRQ_NONE; ++ + /* ack timer interrupt and try to set next interrupt */ + count = avr32_hpt_read(); + avr32_timer_ack(); +@@ -164,7 +169,7 @@ + + static struct irqaction timer_irqaction = { + .handler = timer_interrupt, +- .flags = IRQF_DISABLED, ++ .flags = IRQF_DISABLED|IRQF_SHARED, + .name = "timer", + }; + |