diff options
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/Kconfig | 6 | ||||
-rw-r--r-- | arch/ia64/configs/generic_defconfig | 1 | ||||
-rw-r--r-- | arch/ia64/include/asm/atomic.h | 6 | ||||
-rw-r--r-- | arch/ia64/include/asm/bitops.h | 3 | ||||
-rw-r--r-- | arch/ia64/include/asm/gpio.h | 55 | ||||
-rw-r--r-- | arch/ia64/include/asm/processor.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/ptrace.h | 1 | ||||
-rw-r--r-- | arch/ia64/include/asm/spinlock.h | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/efi.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/entry.S | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/smp.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/smpboot.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/uncached.c | 2 |
13 files changed, 71 insertions, 15 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 137b277f7e5..3ff7785b3be 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -27,6 +27,8 @@ config IA64 | |||
27 | select GENERIC_PENDING_IRQ if SMP | 27 | select GENERIC_PENDING_IRQ if SMP |
28 | select IRQ_PER_CPU | 28 | select IRQ_PER_CPU |
29 | select GENERIC_IRQ_SHOW | 29 | select GENERIC_IRQ_SHOW |
30 | select ARCH_WANT_OPTIONAL_GPIOLIB | ||
31 | select ARCH_HAVE_NMI_SAFE_CMPXCHG | ||
30 | default y | 32 | default y |
31 | help | 33 | help |
32 | The Itanium Processor Family is Intel's 64-bit successor to | 34 | The Itanium Processor Family is Intel's 64-bit successor to |
@@ -89,6 +91,9 @@ config GENERIC_TIME_VSYSCALL | |||
89 | config HAVE_SETUP_PER_CPU_AREA | 91 | config HAVE_SETUP_PER_CPU_AREA |
90 | def_bool y | 92 | def_bool y |
91 | 93 | ||
94 | config GENERIC_GPIO | ||
95 | def_bool y | ||
96 | |||
92 | config DMI | 97 | config DMI |
93 | bool | 98 | bool |
94 | default y | 99 | default y |
@@ -157,7 +162,6 @@ config IA64_GENERIC | |||
157 | select ACPI_NUMA | 162 | select ACPI_NUMA |
158 | select SWIOTLB | 163 | select SWIOTLB |
159 | select PCI_MSI | 164 | select PCI_MSI |
160 | select DMAR | ||
161 | help | 165 | help |
162 | This selects the system type of your hardware. A "generic" kernel | 166 | This selects the system type of your hardware. A "generic" kernel |
163 | will run on any supported IA-64 system. However, if you configure | 167 | will run on any supported IA-64 system. However, if you configure |
diff --git a/arch/ia64/configs/generic_defconfig b/arch/ia64/configs/generic_defconfig index 1d7bca0a396..0e5cd1405e0 100644 --- a/arch/ia64/configs/generic_defconfig +++ b/arch/ia64/configs/generic_defconfig | |||
@@ -234,3 +234,4 @@ CONFIG_CRYPTO_MD5=y | |||
234 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 234 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
235 | CONFIG_CRC_T10DIF=y | 235 | CONFIG_CRC_T10DIF=y |
236 | CONFIG_MISC_DEVICES=y | 236 | CONFIG_MISC_DEVICES=y |
237 | CONFIG_DMAR=y | ||
diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h index 44688143967..3fad89ee01c 100644 --- a/arch/ia64/include/asm/atomic.h +++ b/arch/ia64/include/asm/atomic.h | |||
@@ -90,7 +90,7 @@ ia64_atomic64_sub (__s64 i, atomic64_t *v) | |||
90 | (cmpxchg(&((v)->counter), old, new)) | 90 | (cmpxchg(&((v)->counter), old, new)) |
91 | #define atomic64_xchg(v, new) (xchg(&((v)->counter), new)) | 91 | #define atomic64_xchg(v, new) (xchg(&((v)->counter), new)) |
92 | 92 | ||
93 | static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | 93 | static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
94 | { | 94 | { |
95 | int c, old; | 95 | int c, old; |
96 | c = atomic_read(v); | 96 | c = atomic_read(v); |
@@ -102,10 +102,9 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | |||
102 | break; | 102 | break; |
103 | c = old; | 103 | c = old; |
104 | } | 104 | } |
105 | return c != (u); | 105 | return c; |
106 | } | 106 | } |
107 | 107 | ||
108 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | ||
109 | 108 | ||
110 | static __inline__ long atomic64_add_unless(atomic64_t *v, long a, long u) | 109 | static __inline__ long atomic64_add_unless(atomic64_t *v, long a, long u) |
111 | { | 110 | { |
@@ -216,5 +215,4 @@ atomic64_add_negative (__s64 i, atomic64_t *v) | |||
216 | #define smp_mb__before_atomic_inc() barrier() | 215 | #define smp_mb__before_atomic_inc() barrier() |
217 | #define smp_mb__after_atomic_inc() barrier() | 216 | #define smp_mb__after_atomic_inc() barrier() |
218 | 217 | ||
219 | #include <asm-generic/atomic-long.h> | ||
220 | #endif /* _ASM_IA64_ATOMIC_H */ | 218 | #endif /* _ASM_IA64_ATOMIC_H */ |
diff --git a/arch/ia64/include/asm/bitops.h b/arch/ia64/include/asm/bitops.h index b76f7e00921..8e20bff39f7 100644 --- a/arch/ia64/include/asm/bitops.h +++ b/arch/ia64/include/asm/bitops.h | |||
@@ -458,8 +458,7 @@ static __inline__ unsigned long __arch_hweight64(unsigned long x) | |||
458 | 458 | ||
459 | #include <asm-generic/bitops/le.h> | 459 | #include <asm-generic/bitops/le.h> |
460 | 460 | ||
461 | #define ext2_set_bit_atomic(l,n,a) test_and_set_bit(n,a) | 461 | #include <asm-generic/bitops/ext2-atomic-setbit.h> |
462 | #define ext2_clear_bit_atomic(l,n,a) test_and_clear_bit(n,a) | ||
463 | 462 | ||
464 | #include <asm-generic/bitops/sched.h> | 463 | #include <asm-generic/bitops/sched.h> |
465 | 464 | ||
diff --git a/arch/ia64/include/asm/gpio.h b/arch/ia64/include/asm/gpio.h new file mode 100644 index 00000000000..590a20debc4 --- /dev/null +++ b/arch/ia64/include/asm/gpio.h | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * Generic GPIO API implementation for IA-64. | ||
3 | * | ||
4 | * A stright copy of that for PowerPC which was: | ||
5 | * | ||
6 | * Copyright (c) 2007-2008 MontaVista Software, Inc. | ||
7 | * | ||
8 | * Author: Anton Vorontsov <avorontsov@ru.mvista.com> | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License as published by | ||
12 | * the Free Software Foundation; either version 2 of the License, or | ||
13 | * (at your option) any later version. | ||
14 | */ | ||
15 | |||
16 | #ifndef _ASM_IA64_GPIO_H | ||
17 | #define _ASM_IA64_GPIO_H | ||
18 | |||
19 | #include <linux/errno.h> | ||
20 | #include <asm-generic/gpio.h> | ||
21 | |||
22 | #ifdef CONFIG_GPIOLIB | ||
23 | |||
24 | /* | ||
25 | * We don't (yet) implement inlined/rapid versions for on-chip gpios. | ||
26 | * Just call gpiolib. | ||
27 | */ | ||
28 | static inline int gpio_get_value(unsigned int gpio) | ||
29 | { | ||
30 | return __gpio_get_value(gpio); | ||
31 | } | ||
32 | |||
33 | static inline void gpio_set_value(unsigned int gpio, int value) | ||
34 | { | ||
35 | __gpio_set_value(gpio, value); | ||
36 | } | ||
37 | |||
38 | static inline int gpio_cansleep(unsigned int gpio) | ||
39 | { | ||
40 | return __gpio_cansleep(gpio); | ||
41 | } | ||
42 | |||
43 | static inline int gpio_to_irq(unsigned int gpio) | ||
44 | { | ||
45 | return __gpio_to_irq(gpio); | ||
46 | } | ||
47 | |||
48 | static inline int irq_to_gpio(unsigned int irq) | ||
49 | { | ||
50 | return -EINVAL; | ||
51 | } | ||
52 | |||
53 | #endif /* CONFIG_GPIOLIB */ | ||
54 | |||
55 | #endif /* _ASM_IA64_GPIO_H */ | ||
diff --git a/arch/ia64/include/asm/processor.h b/arch/ia64/include/asm/processor.h index 03afe797074..d9f397fae03 100644 --- a/arch/ia64/include/asm/processor.h +++ b/arch/ia64/include/asm/processor.h | |||
@@ -75,7 +75,7 @@ | |||
75 | #include <asm/percpu.h> | 75 | #include <asm/percpu.h> |
76 | #include <asm/rse.h> | 76 | #include <asm/rse.h> |
77 | #include <asm/unwind.h> | 77 | #include <asm/unwind.h> |
78 | #include <asm/atomic.h> | 78 | #include <linux/atomic.h> |
79 | #ifdef CONFIG_NUMA | 79 | #ifdef CONFIG_NUMA |
80 | #include <asm/nodedata.h> | 80 | #include <asm/nodedata.h> |
81 | #endif | 81 | #endif |
diff --git a/arch/ia64/include/asm/ptrace.h b/arch/ia64/include/asm/ptrace.h index 7ae9c3f15a1..f5cb27614e3 100644 --- a/arch/ia64/include/asm/ptrace.h +++ b/arch/ia64/include/asm/ptrace.h | |||
@@ -286,7 +286,6 @@ static inline unsigned long user_stack_pointer(struct pt_regs *regs) | |||
286 | struct task_struct; /* forward decl */ | 286 | struct task_struct; /* forward decl */ |
287 | struct unw_frame_info; /* forward decl */ | 287 | struct unw_frame_info; /* forward decl */ |
288 | 288 | ||
289 | extern void show_regs (struct pt_regs *); | ||
290 | extern void ia64_do_show_stack (struct unw_frame_info *, void *); | 289 | extern void ia64_do_show_stack (struct unw_frame_info *, void *); |
291 | extern unsigned long ia64_get_user_rbs_end (struct task_struct *, struct pt_regs *, | 290 | extern unsigned long ia64_get_user_rbs_end (struct task_struct *, struct pt_regs *, |
292 | unsigned long *); | 291 | unsigned long *); |
diff --git a/arch/ia64/include/asm/spinlock.h b/arch/ia64/include/asm/spinlock.h index 1a91c9121d1..b77768d35f9 100644 --- a/arch/ia64/include/asm/spinlock.h +++ b/arch/ia64/include/asm/spinlock.h | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/bitops.h> | 14 | #include <linux/bitops.h> |
15 | 15 | ||
16 | #include <asm/atomic.h> | 16 | #include <linux/atomic.h> |
17 | #include <asm/intrinsics.h> | 17 | #include <asm/intrinsics.h> |
18 | #include <asm/system.h> | 18 | #include <asm/system.h> |
19 | 19 | ||
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index 6fc03aff046..c38d22e5e90 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c | |||
@@ -156,7 +156,7 @@ prefix##_get_next_variable (unsigned long *name_size, efi_char16_t *name, \ | |||
156 | #define STUB_SET_VARIABLE(prefix, adjust_arg) \ | 156 | #define STUB_SET_VARIABLE(prefix, adjust_arg) \ |
157 | static efi_status_t \ | 157 | static efi_status_t \ |
158 | prefix##_set_variable (efi_char16_t *name, efi_guid_t *vendor, \ | 158 | prefix##_set_variable (efi_char16_t *name, efi_guid_t *vendor, \ |
159 | unsigned long attr, unsigned long data_size, \ | 159 | u32 attr, unsigned long data_size, \ |
160 | void *data) \ | 160 | void *data) \ |
161 | { \ | 161 | { \ |
162 | struct ia64_fpreg fr[6]; \ | 162 | struct ia64_fpreg fr[6]; \ |
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index 97dd2abdeb1..198c753d100 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S | |||
@@ -1614,7 +1614,7 @@ sys_call_table: | |||
1614 | data8 sys_sched_get_priority_min | 1614 | data8 sys_sched_get_priority_min |
1615 | data8 sys_sched_rr_get_interval | 1615 | data8 sys_sched_rr_get_interval |
1616 | data8 sys_nanosleep | 1616 | data8 sys_nanosleep |
1617 | data8 sys_nfsservctl | 1617 | data8 sys_ni_syscall // old nfsservctl |
1618 | data8 sys_prctl // 1170 | 1618 | data8 sys_prctl // 1170 |
1619 | data8 sys_getpagesize | 1619 | data8 sys_getpagesize |
1620 | data8 sys_mmap2 | 1620 | data8 sys_mmap2 |
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c index be450a3e987..0bd537b4ea6 100644 --- a/arch/ia64/kernel/smp.c +++ b/arch/ia64/kernel/smp.c | |||
@@ -32,7 +32,7 @@ | |||
32 | #include <linux/bitops.h> | 32 | #include <linux/bitops.h> |
33 | #include <linux/kexec.h> | 33 | #include <linux/kexec.h> |
34 | 34 | ||
35 | #include <asm/atomic.h> | 35 | #include <linux/atomic.h> |
36 | #include <asm/current.h> | 36 | #include <asm/current.h> |
37 | #include <asm/delay.h> | 37 | #include <asm/delay.h> |
38 | #include <asm/machvec.h> | 38 | #include <asm/machvec.h> |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index 14ec641003d..55909798667 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -40,7 +40,7 @@ | |||
40 | #include <linux/percpu.h> | 40 | #include <linux/percpu.h> |
41 | #include <linux/bitops.h> | 41 | #include <linux/bitops.h> |
42 | 42 | ||
43 | #include <asm/atomic.h> | 43 | #include <linux/atomic.h> |
44 | #include <asm/cache.h> | 44 | #include <asm/cache.h> |
45 | #include <asm/current.h> | 45 | #include <asm/current.h> |
46 | #include <asm/delay.h> | 46 | #include <asm/delay.h> |
diff --git a/arch/ia64/kernel/uncached.c b/arch/ia64/kernel/uncached.c index c4696d217ce..6a867dc45c0 100644 --- a/arch/ia64/kernel/uncached.c +++ b/arch/ia64/kernel/uncached.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include <asm/pal.h> | 25 | #include <asm/pal.h> |
26 | #include <asm/system.h> | 26 | #include <asm/system.h> |
27 | #include <asm/pgtable.h> | 27 | #include <asm/pgtable.h> |
28 | #include <asm/atomic.h> | 28 | #include <linux/atomic.h> |
29 | #include <asm/tlbflush.h> | 29 | #include <asm/tlbflush.h> |
30 | #include <asm/sn/arch.h> | 30 | #include <asm/sn/arch.h> |
31 | 31 | ||