Module: xenomai-2.4 Branch: master Commit: 147bf3fdbe49164511839771451db0a5da6bab5e URL: http://git.xenomai.org/?p=xenomai-2.4.git;a=commit;h=147bf3fdbe49164511839771451db0a5da6bab5e
Author: Philippe Gerum <r...@xenomai.org> Date: Sat Aug 29 15:01:38 2009 +0200 arm: upgrade I-pipe support to 2.6.30-arm-1.14-02, 2.6.28-arm-1.12-05, 2.6.29-arm-1.13-03 --- ....patch => adeos-ipipe-2.6.28-arm-1.12-05.patch} | 22 ++++++++++++---- ....patch => adeos-ipipe-2.6.29-arm-1.13-03.patch} | 22 ++++++++++++---- ....patch => adeos-ipipe-2.6.29-arm-1.14-02.patch} | 25 +++++++++++++++---- 3 files changed, 51 insertions(+), 18 deletions(-) diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-04.patch b/ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-05.patch similarity index 99% rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-04.patch rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-05.patch index 5fc89f3..d02b770 100644 --- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-04.patch +++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-05.patch @@ -445,7 +445,7 @@ index 0000000..2a0c0e3 +#endif /* __ASM_ARM_FCSE_H */ diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h new file mode 100644 -index 0000000..bc5e4de +index 0000000..e51f147 --- /dev/null +++ b/arch/arm/include/asm/ipipe.h @@ -0,0 +1,226 @@ @@ -479,10 +479,10 @@ index 0000000..bc5e4de + +#include <linux/ipipe_percpu.h> + -+#define IPIPE_ARCH_STRING "1.12-04" ++#define IPIPE_ARCH_STRING "1.12-05" +#define IPIPE_MAJOR_NUMBER 1 +#define IPIPE_MINOR_NUMBER 12 -+#define IPIPE_PATCH_NUMBER 4 ++#define IPIPE_PATCH_NUMBER 5 + +#ifdef CONFIG_SMP +#error "I-pipe/arm: SMP not yet implemented" @@ -1281,11 +1281,14 @@ index 6ff3379..009336a 100644 union debug_insn { diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h -index 568020b..ac63904 100644 +index 568020b..99e98fb 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h -@@ -211,7 +211,9 @@ extern struct task_struct *__switch_to(struct task_struct *, struct thread_info +@@ -209,10 +209,19 @@ static inline void set_copro_access(unsigned int val) + */ + extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *); ++#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH #define switch_to(prev,next,last) \ do { \ - last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \ @@ -1293,9 +1296,16 @@ index 568020b..ac63904 100644 + last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \ + local_irq_enable_hw_cond(); \ } while (0) ++#else /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ ++#define switch_to(prev,next,last) \ ++do { \ ++ last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \ ++} while (0) ++#endif /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ #if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110) -@@ -271,17 +273,17 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size + /* +@@ -271,17 +280,17 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size #error SMP is not supported on this platform #endif case 1: diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-02.patch b/ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-03.patch similarity index 99% rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-02.patch rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-03.patch index cf39b34..9469e46 100644 --- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-02.patch +++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-03.patch @@ -428,7 +428,7 @@ index 0000000..11e5388 +#endif /* __ASM_ARM_FCSE_H */ diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h new file mode 100644 -index 0000000..3a14347 +index 0000000..807560b --- /dev/null +++ b/arch/arm/include/asm/ipipe.h @@ -0,0 +1,243 @@ @@ -463,10 +463,10 @@ index 0000000..3a14347 +#include <linux/ipipe_percpu.h> +#include <mach/irqs.h> /* For __IPIPE_FEATURE_PIC_MUTE */ + -+#define IPIPE_ARCH_STRING "1.13-02" ++#define IPIPE_ARCH_STRING "1.13-03" +#define IPIPE_MAJOR_NUMBER 1 +#define IPIPE_MINOR_NUMBER 13 -+#define IPIPE_PATCH_NUMBER 2 ++#define IPIPE_PATCH_NUMBER 3 + +#ifdef CONFIG_SMP +#error "I-pipe/arm: SMP not yet implemented" @@ -1281,11 +1281,14 @@ index 1845892..cc9b9ff 100644 union debug_insn { diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h -index 811be55..d9be35a 100644 +index 811be55..0233b08 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h -@@ -209,7 +209,9 @@ extern struct task_struct *__switch_to(struct task_struct *, struct thread_info +@@ -207,10 +207,19 @@ static inline void set_copro_access(unsigned int val) + */ + extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *); ++#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH #define switch_to(prev,next,last) \ do { \ - last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \ @@ -1293,9 +1296,16 @@ index 811be55..d9be35a 100644 + last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \ + local_irq_enable_hw_cond(); \ } while (0) ++#else /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ ++#define switch_to(prev,next,last) \ ++do { \ ++ last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \ ++} while (0) ++#endif /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ #if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110) -@@ -269,17 +271,17 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size + /* +@@ -269,17 +278,17 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size #error SMP is not supported on this platform #endif case 1: diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.30-arm-1.14-01.patch b/ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.14-02.patch similarity index 99% rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.30-arm-1.14-01.patch rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.14-02.patch index 179e7d5..070c6f5 100644 --- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.30-arm-1.14-01.patch +++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.14-02.patch @@ -428,7 +428,7 @@ index 0000000..11e5388 +#endif /* __ASM_ARM_FCSE_H */ diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h new file mode 100644 -index 0000000..bcc62f1 +index 0000000..8330d78 --- /dev/null +++ b/arch/arm/include/asm/ipipe.h @@ -0,0 +1,273 @@ @@ -463,10 +463,10 @@ index 0000000..bcc62f1 +#include <linux/ipipe_percpu.h> +#include <mach/irqs.h> /* For __IPIPE_FEATURE_PIC_MUTE */ + -+#define IPIPE_ARCH_STRING "1.14-01" ++#define IPIPE_ARCH_STRING "1.14-02" +#define IPIPE_MAJOR_NUMBER 1 +#define IPIPE_MINOR_NUMBER 14 -+#define IPIPE_PATCH_NUMBER 1 ++#define IPIPE_PATCH_NUMBER 2 + +#ifdef CONFIG_SMP +#error "I-pipe/arm: SMP not yet implemented" @@ -6953,7 +6953,7 @@ index 7f57ee6..ac494bc 100644 #endif diff --git a/arch/arm/plat-pxa/gpio.c b/arch/arm/plat-pxa/gpio.c -index abc79d4..9bb16fe 100644 +index abc79d4..6a30b57 100644 --- a/arch/arm/plat-pxa/gpio.c +++ b/arch/arm/plat-pxa/gpio.c @@ -17,6 +17,7 @@ @@ -6964,7 +6964,7 @@ index abc79d4..9bb16fe 100644 #include <mach/gpio.h> -@@ -232,6 +233,34 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc) +@@ -232,6 +233,35 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc) } while (loop); } @@ -6988,7 +6988,8 @@ index abc79d4..9bb16fe 100644 + while (n < BITS_PER_LONG) { + loop = 1; + -+ __ipipe_handle_irq(gpio_base + n, regs); ++ __ipipe_handle_irq( ++ gpio_to_irq(gpio_base + n), regs); + n = find_next_bit(&gedr, BITS_PER_LONG, n + 1); + } + } @@ -6999,6 +7000,18 @@ index abc79d4..9bb16fe 100644 static void pxa_ack_muxed_gpio(unsigned int irq) { int gpio = irq_to_gpio(irq); +@@ -290,7 +320,11 @@ void __init pxa_init_gpio(int mux_irq, int start, int end, set_wake_t fn) + + for (irq = gpio_to_irq(start); irq <= gpio_to_irq(end); irq++) { + set_irq_chip(irq, &pxa_muxed_gpio_chip); ++#ifndef CONFIG_IPIPE + set_irq_handler(irq, handle_edge_irq); ++#else /* CONFIG_IPIPE */ ++ set_irq_handler(irq, handle_level_irq); ++#endif /* CONFIG_IPIPE */ + set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); + } + diff --git a/arch/arm/plat-s3c/time.c b/arch/arm/plat-s3c/time.c index 3b27b29..8e6e479 100644 --- a/arch/arm/plat-s3c/time.c _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git