diff options
Diffstat (limited to 'arch/hexagon/kernel')
-rw-r--r-- | arch/hexagon/kernel/dma.c | 10 | ||||
-rw-r--r-- | arch/hexagon/kernel/process.c | 6 | ||||
-rw-r--r-- | arch/hexagon/kernel/ptrace.c | 1 | ||||
-rw-r--r-- | arch/hexagon/kernel/smp.c | 16 | ||||
-rw-r--r-- | arch/hexagon/kernel/time.c | 1 | ||||
-rw-r--r-- | arch/hexagon/kernel/vdso.c | 1 |
6 files changed, 23 insertions, 12 deletions
diff --git a/arch/hexagon/kernel/dma.c b/arch/hexagon/kernel/dma.c index e711ace62fdf..0f2367cc5493 100644 --- a/arch/hexagon/kernel/dma.c +++ b/arch/hexagon/kernel/dma.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/bootmem.h> | 22 | #include <linux/bootmem.h> |
23 | #include <linux/genalloc.h> | 23 | #include <linux/genalloc.h> |
24 | #include <asm/dma-mapping.h> | 24 | #include <asm/dma-mapping.h> |
25 | #include <linux/module.h> | ||
25 | 26 | ||
26 | struct dma_map_ops *dma_ops; | 27 | struct dma_map_ops *dma_ops; |
27 | EXPORT_SYMBOL(dma_ops); | 28 | EXPORT_SYMBOL(dma_ops); |
@@ -54,7 +55,8 @@ static struct gen_pool *coherent_pool; | |||
54 | /* Allocates from a pool of uncached memory that was reserved at boot time */ | 55 | /* Allocates from a pool of uncached memory that was reserved at boot time */ |
55 | 56 | ||
56 | void *hexagon_dma_alloc_coherent(struct device *dev, size_t size, | 57 | void *hexagon_dma_alloc_coherent(struct device *dev, size_t size, |
57 | dma_addr_t *dma_addr, gfp_t flag) | 58 | dma_addr_t *dma_addr, gfp_t flag, |
59 | struct dma_attrs *attrs) | ||
58 | { | 60 | { |
59 | void *ret; | 61 | void *ret; |
60 | 62 | ||
@@ -81,7 +83,7 @@ void *hexagon_dma_alloc_coherent(struct device *dev, size_t size, | |||
81 | } | 83 | } |
82 | 84 | ||
83 | static void hexagon_free_coherent(struct device *dev, size_t size, void *vaddr, | 85 | static void hexagon_free_coherent(struct device *dev, size_t size, void *vaddr, |
84 | dma_addr_t dma_addr) | 86 | dma_addr_t dma_addr, struct dma_attrs *attrs) |
85 | { | 87 | { |
86 | gen_pool_free(coherent_pool, (unsigned long) vaddr, size); | 88 | gen_pool_free(coherent_pool, (unsigned long) vaddr, size); |
87 | } | 89 | } |
@@ -202,8 +204,8 @@ static void hexagon_sync_single_for_device(struct device *dev, | |||
202 | } | 204 | } |
203 | 205 | ||
204 | struct dma_map_ops hexagon_dma_ops = { | 206 | struct dma_map_ops hexagon_dma_ops = { |
205 | .alloc_coherent = hexagon_dma_alloc_coherent, | 207 | .alloc = hexagon_dma_alloc_coherent, |
206 | .free_coherent = hexagon_free_coherent, | 208 | .free = hexagon_free_coherent, |
207 | .map_sg = hexagon_map_sg, | 209 | .map_sg = hexagon_map_sg, |
208 | .map_page = hexagon_map_page, | 210 | .map_page = hexagon_map_page, |
209 | .sync_single_for_cpu = hexagon_sync_single_for_cpu, | 211 | .sync_single_for_cpu = hexagon_sync_single_for_cpu, |
diff --git a/arch/hexagon/kernel/process.c b/arch/hexagon/kernel/process.c index 18c4f0b0f4ba..ff02821bfb7e 100644 --- a/arch/hexagon/kernel/process.c +++ b/arch/hexagon/kernel/process.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Process creation support for Hexagon | 2 | * Process creation support for Hexagon |
3 | * | 3 | * |
4 | * Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved. | 4 | * Copyright (c) 2010-2012, Code Aurora Forum. All rights reserved. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License version 2 and | 7 | * it under the terms of the GNU General Public License version 2 and |
@@ -88,7 +88,7 @@ void (*idle_sleep)(void) = default_idle; | |||
88 | void cpu_idle(void) | 88 | void cpu_idle(void) |
89 | { | 89 | { |
90 | while (1) { | 90 | while (1) { |
91 | tick_nohz_stop_sched_tick(1); | 91 | tick_nohz_idle_enter(); |
92 | local_irq_disable(); | 92 | local_irq_disable(); |
93 | while (!need_resched()) { | 93 | while (!need_resched()) { |
94 | idle_sleep(); | 94 | idle_sleep(); |
@@ -97,7 +97,7 @@ void cpu_idle(void) | |||
97 | local_irq_disable(); | 97 | local_irq_disable(); |
98 | } | 98 | } |
99 | local_irq_enable(); | 99 | local_irq_enable(); |
100 | tick_nohz_restart_sched_tick(); | 100 | tick_nohz_idle_exit(); |
101 | schedule(); | 101 | schedule(); |
102 | } | 102 | } |
103 | } | 103 | } |
diff --git a/arch/hexagon/kernel/ptrace.c b/arch/hexagon/kernel/ptrace.c index 32342de1a79c..96c3b2c4dbad 100644 --- a/arch/hexagon/kernel/ptrace.c +++ b/arch/hexagon/kernel/ptrace.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/ptrace.h> | 28 | #include <linux/ptrace.h> |
29 | #include <linux/regset.h> | 29 | #include <linux/regset.h> |
30 | #include <linux/user.h> | 30 | #include <linux/user.h> |
31 | #include <linux/elf.h> | ||
31 | 32 | ||
32 | #include <asm/user.h> | 33 | #include <asm/user.h> |
33 | 34 | ||
diff --git a/arch/hexagon/kernel/smp.c b/arch/hexagon/kernel/smp.c index 15d1fd22bbc5..1298141874a3 100644 --- a/arch/hexagon/kernel/smp.c +++ b/arch/hexagon/kernel/smp.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * SMP support for Hexagon | 2 | * SMP support for Hexagon |
3 | * | 3 | * |
4 | * Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved. | 4 | * Copyright (c) 2010-2012, Code Aurora Forum. All rights reserved. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License version 2 and | 7 | * it under the terms of the GNU General Public License version 2 and |
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/sched.h> | 28 | #include <linux/sched.h> |
29 | #include <linux/smp.h> | 29 | #include <linux/smp.h> |
30 | #include <linux/spinlock.h> | 30 | #include <linux/spinlock.h> |
31 | #include <linux/cpu.h> | ||
31 | 32 | ||
32 | #include <asm/time.h> /* timer_interrupt */ | 33 | #include <asm/time.h> /* timer_interrupt */ |
33 | #include <asm/hexagon_vm.h> | 34 | #include <asm/hexagon_vm.h> |
@@ -35,7 +36,7 @@ | |||
35 | #define BASE_IPI_IRQ 26 | 36 | #define BASE_IPI_IRQ 26 |
36 | 37 | ||
37 | /* | 38 | /* |
38 | * cpu_possible_map needs to be filled out prior to setup_per_cpu_areas | 39 | * cpu_possible_mask needs to be filled out prior to setup_per_cpu_areas |
39 | * (which is prior to any of our smp_prepare_cpu crap), in order to set | 40 | * (which is prior to any of our smp_prepare_cpu crap), in order to set |
40 | * up the... per_cpu areas. | 41 | * up the... per_cpu areas. |
41 | */ | 42 | */ |
@@ -177,7 +178,12 @@ void __cpuinit start_secondary(void) | |||
177 | 178 | ||
178 | printk(KERN_INFO "%s cpu %d\n", __func__, current_thread_info()->cpu); | 179 | printk(KERN_INFO "%s cpu %d\n", __func__, current_thread_info()->cpu); |
179 | 180 | ||
181 | notify_cpu_starting(cpu); | ||
182 | |||
183 | ipi_call_lock(); | ||
180 | set_cpu_online(cpu, true); | 184 | set_cpu_online(cpu, true); |
185 | ipi_call_unlock(); | ||
186 | |||
181 | local_irq_enable(); | 187 | local_irq_enable(); |
182 | 188 | ||
183 | cpu_idle(); | 189 | cpu_idle(); |
@@ -208,7 +214,7 @@ int __cpuinit __cpu_up(unsigned int cpu) | |||
208 | stack_start = ((void *) thread) + THREAD_SIZE; | 214 | stack_start = ((void *) thread) + THREAD_SIZE; |
209 | __vmstart(start_secondary, stack_start); | 215 | __vmstart(start_secondary, stack_start); |
210 | 216 | ||
211 | while (!cpu_isset(cpu, cpu_online_map)) | 217 | while (!cpu_online(cpu)) |
212 | barrier(); | 218 | barrier(); |
213 | 219 | ||
214 | return 0; | 220 | return 0; |
@@ -229,7 +235,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
229 | 235 | ||
230 | /* Right now, let's just fake it. */ | 236 | /* Right now, let's just fake it. */ |
231 | for (i = 0; i < max_cpus; i++) | 237 | for (i = 0; i < max_cpus; i++) |
232 | cpu_set(i, cpu_present_map); | 238 | set_cpu_present(i, true); |
233 | 239 | ||
234 | /* Also need to register the interrupts for IPI */ | 240 | /* Also need to register the interrupts for IPI */ |
235 | if (max_cpus > 1) | 241 | if (max_cpus > 1) |
@@ -269,5 +275,5 @@ void smp_start_cpus(void) | |||
269 | int i; | 275 | int i; |
270 | 276 | ||
271 | for (i = 0; i < NR_CPUS; i++) | 277 | for (i = 0; i < NR_CPUS; i++) |
272 | cpu_set(i, cpu_possible_map); | 278 | set_cpu_possible(i, true); |
273 | } | 279 | } |
diff --git a/arch/hexagon/kernel/time.c b/arch/hexagon/kernel/time.c index 6bee15c9c113..5d9b33b67935 100644 --- a/arch/hexagon/kernel/time.c +++ b/arch/hexagon/kernel/time.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/of.h> | 28 | #include <linux/of.h> |
29 | #include <linux/of_address.h> | 29 | #include <linux/of_address.h> |
30 | #include <linux/of_irq.h> | 30 | #include <linux/of_irq.h> |
31 | #include <linux/module.h> | ||
31 | 32 | ||
32 | #include <asm/timer-regs.h> | 33 | #include <asm/timer-regs.h> |
33 | #include <asm/hexagon_vm.h> | 34 | #include <asm/hexagon_vm.h> |
diff --git a/arch/hexagon/kernel/vdso.c b/arch/hexagon/kernel/vdso.c index f212a453b527..5d39f42f7085 100644 --- a/arch/hexagon/kernel/vdso.c +++ b/arch/hexagon/kernel/vdso.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | #include <linux/mm.h> | 22 | #include <linux/mm.h> |
23 | #include <linux/vmalloc.h> | 23 | #include <linux/vmalloc.h> |
24 | #include <linux/binfmts.h> | ||
24 | 25 | ||
25 | #include <asm/vdso.h> | 26 | #include <asm/vdso.h> |
26 | 27 | ||