summaryrefslogtreecommitdiffstats
path: root/target/linux/ubicom32/files/arch
diff options
context:
space:
mode:
authorkaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-02-23 10:43:53 +0000
committerkaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-02-23 10:43:53 +0000
commit250089c5e97cc8490a42e9885e429ff217dbd533 (patch)
tree3eac3e565ec64f61d64b536e14d9a001e2d02405 /target/linux/ubicom32/files/arch
parent9eedef7a46e7431de4b98a808503571c1a8570eb (diff)
[ubicom32]: add 2.6.32 support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19823 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ubicom32/files/arch')
-rw-r--r--target/linux/ubicom32/files/arch/ubicom32/include/asm/atomic.h5
-rw-r--r--target/linux/ubicom32/files/arch/ubicom32/include/asm/bitsperlong.h1
-rw-r--r--target/linux/ubicom32/files/arch/ubicom32/include/asm/page.h16
-rw-r--r--target/linux/ubicom32/files/arch/ubicom32/include/asm/pgtable.h4
-rw-r--r--target/linux/ubicom32/files/arch/ubicom32/include/asm/signal.h5
-rw-r--r--target/linux/ubicom32/files/arch/ubicom32/include/asm/socket.h3
-rw-r--r--target/linux/ubicom32/files/arch/ubicom32/kernel/init_task.c3
-rw-r--r--target/linux/ubicom32/files/arch/ubicom32/kernel/timer_device.c16
8 files changed, 42 insertions, 11 deletions
diff --git a/target/linux/ubicom32/files/arch/ubicom32/include/asm/atomic.h b/target/linux/ubicom32/files/arch/ubicom32/include/asm/atomic.h
index 78d9fcd8f..aaf772602 100644
--- a/target/linux/ubicom32/files/arch/ubicom32/include/asm/atomic.h
+++ b/target/linux/ubicom32/files/arch/ubicom32/include/asm/atomic.h
@@ -236,7 +236,12 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
+#include <asm-generic/atomic-long.h>
+#else
#include <asm-generic/atomic.h>
+#endif
/*
* The following is not a real function. The compiler should remove the function
diff --git a/target/linux/ubicom32/files/arch/ubicom32/include/asm/bitsperlong.h b/target/linux/ubicom32/files/arch/ubicom32/include/asm/bitsperlong.h
new file mode 100644
index 000000000..6dc0bb0c1
--- /dev/null
+++ b/target/linux/ubicom32/files/arch/ubicom32/include/asm/bitsperlong.h
@@ -0,0 +1 @@
+#include <asm-generic/bitsperlong.h>
diff --git a/target/linux/ubicom32/files/arch/ubicom32/include/asm/page.h b/target/linux/ubicom32/files/arch/ubicom32/include/asm/page.h
index 89c6ce61c..1ecb174a6 100644
--- a/target/linux/ubicom32/files/arch/ubicom32/include/asm/page.h
+++ b/target/linux/ubicom32/files/arch/ubicom32/include/asm/page.h
@@ -28,10 +28,12 @@
#ifndef _ASM_UBICOM32_PAGE_H
#define _ASM_UBICOM32_PAGE_H
+#include <linux/const.h>
+
/* PAGE_SHIFT determines the page size */
-#define PAGE_SHIFT 12
-#define PAGE_SIZE (1 << PAGE_SHIFT)
+#define PAGE_SHIFT (12)
+#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
#include <asm/setup.h>
@@ -99,7 +101,15 @@ extern unsigned long memory_end;
#endif /* __ASSEMBLY__ */
-#ifdef __KERNEL__
+#define VM_DATA_DEFAULT_FLAGS \
+ (VM_READ | VM_WRITE | \
+ ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \
+ VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
+#include <asm-generic/getorder.h>
+#else
#include <asm-generic/page.h>
#endif
diff --git a/target/linux/ubicom32/files/arch/ubicom32/include/asm/pgtable.h b/target/linux/ubicom32/files/arch/ubicom32/include/asm/pgtable.h
index 70ad115cc..ffb30a9ec 100644
--- a/target/linux/ubicom32/files/arch/ubicom32/include/asm/pgtable.h
+++ b/target/linux/ubicom32/files/arch/ubicom32/include/asm/pgtable.h
@@ -114,11 +114,15 @@ extern inline void flush_pages_to_ram (unsigned long address, int n)
#define VMALLOC_START 0
#define VMALLOC_END 0xffffffff
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
+#include <asm-generic/pgtable.h>
+#else
#define arch_enter_lazy_mmu_mode() do {} while (0)
#define arch_leave_lazy_mmu_mode() do {} while (0)
#define arch_flush_lazy_mmu_mode() do {} while (0)
#define arch_enter_lazy_cpu_mode() do {} while (0)
#define arch_leave_lazy_cpu_mode() do {} while (0)
#define arch_flush_lazy_cpu_mode() do {} while (0)
+#endif
#endif /* _ASM_UBICOM32_PGTABLE_H */
diff --git a/target/linux/ubicom32/files/arch/ubicom32/include/asm/signal.h b/target/linux/ubicom32/files/arch/ubicom32/include/asm/signal.h
index a334e19ea..946b3f77d 100644
--- a/target/linux/ubicom32/files/arch/ubicom32/include/asm/signal.h
+++ b/target/linux/ubicom32/files/arch/ubicom32/include/asm/signal.h
@@ -124,7 +124,12 @@ typedef struct {
#define MINSIGSTKSZ 2048
#define SIGSTKSZ 8192
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
+#include <asm-generic/signal-defs.h>
+#else
#include <asm-generic/signal.h>
+#endif
#ifdef __KERNEL__
struct old_sigaction {
diff --git a/target/linux/ubicom32/files/arch/ubicom32/include/asm/socket.h b/target/linux/ubicom32/files/arch/ubicom32/include/asm/socket.h
index 2d95c24f7..24ac11314 100644
--- a/target/linux/ubicom32/files/arch/ubicom32/include/asm/socket.h
+++ b/target/linux/ubicom32/files/arch/ubicom32/include/asm/socket.h
@@ -84,4 +84,7 @@
#define SO_TIMESTAMPING 37
#define SCM_TIMESTAMPING SO_TIMESTAMPING
+#define SO_PROTOCOL 38
+#define SO_DOMAIN 39
+
#endif /* _ASM_UBICOM32_SOCKET_H */
diff --git a/target/linux/ubicom32/files/arch/ubicom32/kernel/init_task.c b/target/linux/ubicom32/files/arch/ubicom32/kernel/init_task.c
index ff0634424..58baf5270 100644
--- a/target/linux/ubicom32/files/arch/ubicom32/kernel/init_task.c
+++ b/target/linux/ubicom32/files/arch/ubicom32/kernel/init_task.c
@@ -34,12 +34,15 @@
#include <linux/mqueue.h>
#include <linux/uaccess.h>
#include <asm/pgtable.h>
+#include <linux/version.h>
///static struct fs_struct init_fs = INIT_FS;
static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
struct mm_struct init_mm = INIT_MM(init_mm);
EXPORT_SYMBOL(init_mm);
+#endif
/*
* Initial task structure.
diff --git a/target/linux/ubicom32/files/arch/ubicom32/kernel/timer_device.c b/target/linux/ubicom32/files/arch/ubicom32/kernel/timer_device.c
index d2d094d37..1943cbb9e 100644
--- a/target/linux/ubicom32/files/arch/ubicom32/kernel/timer_device.c
+++ b/target/linux/ubicom32/files/arch/ubicom32/kernel/timer_device.c
@@ -169,7 +169,7 @@ static struct clocksource timer_device_clockbase = {
* timer_device_alloc_event()
* Allocate a timer device event.
*/
-static int timer_device_alloc_event(const char *name, int cpuid, const cpumask_t *mask)
+static int timer_device_alloc_event(const char *name, int cpuid, const struct cpumask *cpumask)
{
struct clock_event_device *dev;
struct irqaction *action;
@@ -208,10 +208,10 @@ static int timer_device_alloc_event(const char *name, int cpuid, const cpumask_t
action->name = name;
action->flags = IRQF_DISABLED | IRQF_TIMER;
action->handler = timer_device_event;
- cpumask_copy(&action->mask, mask);
+ //cpumask_copy(&action->mask, mask);
action->dev_id = dev;
setup_irq(dev->irq, action);
- irq_set_affinity(dev->irq, mask);
+ irq_set_affinity(dev->irq, cpumask);
ldsr_disable_vector(dev->irq);
/*
@@ -229,7 +229,7 @@ static int timer_device_alloc_event(const char *name, int cpuid, const cpumask_t
dev->mult = div_sc(frequency, NSEC_PER_SEC, dev->shift);
dev->max_delta_ns = clockevent_delta2ns(0xffffffff, dev);
dev->min_delta_ns = clockevent_delta2ns(100, dev);
- dev->cpumask = mask;
+ //dev->cpumask = mask;
printk(KERN_NOTICE "timer[%d]: %s - created\n", dev->irq, dev->name);
/*
@@ -246,7 +246,7 @@ static int timer_device_alloc_event(const char *name, int cpuid, const cpumask_t
*/
int __cpuinit local_timer_setup(unsigned int cpu)
{
- return timer_device_alloc_event("timer-cpu", cpu, cpumask_of(cpu));
+ return timer_device_alloc_event("timer-cpu", cpu);
}
#endif
@@ -283,19 +283,19 @@ void timer_device_init(void)
/*
* Always allocate a primary timer.
*/
- timer_device_alloc_event("timer-primary", -1, CPU_MASK_ALL_PTR);
+ timer_device_alloc_event("timer-primary", -1, cpu_all_mask);
#if defined(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST)
/*
* If BROADCAST is selected we need to add a broadcast timer.
*/
- timer_device_alloc_event("timer-broadcast", -1, CPU_MASK_ALL_PTR);
+ timer_device_alloc_event("timer-broadcast", -1, cpu_all_mask);
#endif
/*
* Allocate extra timers that are requested.
*/
for (i = 0; i < CONFIG_TIMER_EXTRA_ALLOC; i++) {
- timer_device_alloc_event("timer-extra", -1, CPU_MASK_ALL_PTR);
+ timer_device_alloc_event("timer-extra", -1, cpu_all_mask);
}
}