diff options
Diffstat (limited to 'arch/hexagon/kernel')
-rw-r--r-- | arch/hexagon/kernel/Makefile | 2 | ||||
-rw-r--r-- | arch/hexagon/kernel/hexagon_ksyms.c | 24 | ||||
-rw-r--r-- | arch/hexagon/kernel/kgdb.c | 2 | ||||
-rw-r--r-- | arch/hexagon/kernel/ptrace.c | 1 | ||||
-rw-r--r-- | arch/hexagon/kernel/reset.c | 5 | ||||
-rw-r--r-- | arch/hexagon/kernel/screen_info.c | 3 | ||||
-rw-r--r-- | arch/hexagon/kernel/smp.c | 6 | ||||
-rw-r--r-- | arch/hexagon/kernel/time.c | 12 |
8 files changed, 40 insertions, 15 deletions
diff --git a/arch/hexagon/kernel/Makefile b/arch/hexagon/kernel/Makefile index 29fc933a7722..009228b8611c 100644 --- a/arch/hexagon/kernel/Makefile +++ b/arch/hexagon/kernel/Makefile | |||
@@ -15,3 +15,5 @@ obj-y += vm_vectors.o | |||
15 | obj-$(CONFIG_HAS_DMA) += dma.o | 15 | obj-$(CONFIG_HAS_DMA) += dma.o |
16 | 16 | ||
17 | obj-$(CONFIG_STACKTRACE) += stacktrace.o | 17 | obj-$(CONFIG_STACKTRACE) += stacktrace.o |
18 | |||
19 | obj-$(CONFIG_VGA_CONSOLE) += screen_info.o | ||
diff --git a/arch/hexagon/kernel/hexagon_ksyms.c b/arch/hexagon/kernel/hexagon_ksyms.c index 32b1379d6877..c041d8ecb1e2 100644 --- a/arch/hexagon/kernel/hexagon_ksyms.c +++ b/arch/hexagon/kernel/hexagon_ksyms.c | |||
@@ -18,23 +18,39 @@ | |||
18 | * 02110-1301, USA. | 18 | * 02110-1301, USA. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/dma-mapping.h> | ||
21 | #include <asm/hexagon_vm.h> | 22 | #include <asm/hexagon_vm.h> |
23 | #include <asm/io.h> | ||
22 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
23 | 25 | ||
26 | /* Additional functions */ | ||
27 | EXPORT_SYMBOL(__clear_user_hexagon); | ||
24 | EXPORT_SYMBOL(__copy_from_user_hexagon); | 28 | EXPORT_SYMBOL(__copy_from_user_hexagon); |
25 | EXPORT_SYMBOL(__copy_to_user_hexagon); | 29 | EXPORT_SYMBOL(__copy_to_user_hexagon); |
30 | EXPORT_SYMBOL(__iounmap); | ||
31 | EXPORT_SYMBOL(__strnlen_user); | ||
26 | EXPORT_SYMBOL(__vmgetie); | 32 | EXPORT_SYMBOL(__vmgetie); |
27 | EXPORT_SYMBOL(__vmsetie); | 33 | EXPORT_SYMBOL(__vmsetie); |
34 | EXPORT_SYMBOL(__vmyield); | ||
35 | EXPORT_SYMBOL(empty_zero_page); | ||
36 | EXPORT_SYMBOL(ioremap_nocache); | ||
28 | EXPORT_SYMBOL(memcpy); | 37 | EXPORT_SYMBOL(memcpy); |
29 | EXPORT_SYMBOL(memset); | 38 | EXPORT_SYMBOL(memset); |
30 | 39 | ||
40 | /* Additional variables */ | ||
41 | EXPORT_SYMBOL(__phys_offset); | ||
42 | EXPORT_SYMBOL(_dflt_cache_att); | ||
43 | EXPORT_SYMBOL(bad_dma_address); | ||
44 | |||
31 | #define DECLARE_EXPORT(name) \ | 45 | #define DECLARE_EXPORT(name) \ |
32 | extern void name(void); EXPORT_SYMBOL(name) | 46 | extern void name(void); EXPORT_SYMBOL(name) |
33 | 47 | ||
34 | /* Symbols found in libgcc that assorted kernel modules need */ | 48 | /* Symbols found in libgcc that assorted kernel modules need */ |
35 | DECLARE_EXPORT(__hexagon_memcpy_likely_aligned_min32bytes_mult8bytes); | 49 | DECLARE_EXPORT(__hexagon_memcpy_likely_aligned_min32bytes_mult8bytes); |
36 | 50 | ||
37 | DECLARE_EXPORT(__hexagon_divsi3); | 51 | /* Additional functions */ |
38 | DECLARE_EXPORT(__hexagon_modsi3); | 52 | DECLARE_EXPORT(__divsi3); |
39 | DECLARE_EXPORT(__hexagon_udivsi3); | 53 | DECLARE_EXPORT(__modsi3); |
40 | DECLARE_EXPORT(__hexagon_umodsi3); | 54 | DECLARE_EXPORT(__udivsi3); |
55 | DECLARE_EXPORT(__umodsi3); | ||
56 | DECLARE_EXPORT(csum_tcpudp_magic); | ||
diff --git a/arch/hexagon/kernel/kgdb.c b/arch/hexagon/kernel/kgdb.c index 82d5c2593323..038580cc5abf 100644 --- a/arch/hexagon/kernel/kgdb.c +++ b/arch/hexagon/kernel/kgdb.c | |||
@@ -18,6 +18,8 @@ | |||
18 | * 02110-1301, USA. | 18 | * 02110-1301, USA. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/irq.h> | ||
22 | #include <linux/sched.h> | ||
21 | #include <linux/kdebug.h> | 23 | #include <linux/kdebug.h> |
22 | #include <linux/kgdb.h> | 24 | #include <linux/kgdb.h> |
23 | 25 | ||
diff --git a/arch/hexagon/kernel/ptrace.c b/arch/hexagon/kernel/ptrace.c index de829eb7f185..390a9ad14ca1 100644 --- a/arch/hexagon/kernel/ptrace.c +++ b/arch/hexagon/kernel/ptrace.c | |||
@@ -183,6 +183,7 @@ static const struct user_regset_view hexagon_user_view = { | |||
183 | .e_machine = ELF_ARCH, | 183 | .e_machine = ELF_ARCH, |
184 | .ei_osabi = ELF_OSABI, | 184 | .ei_osabi = ELF_OSABI, |
185 | .regsets = hexagon_regsets, | 185 | .regsets = hexagon_regsets, |
186 | .e_flags = ELF_CORE_EFLAGS, | ||
186 | .n = ARRAY_SIZE(hexagon_regsets) | 187 | .n = ARRAY_SIZE(hexagon_regsets) |
187 | }; | 188 | }; |
188 | 189 | ||
diff --git a/arch/hexagon/kernel/reset.c b/arch/hexagon/kernel/reset.c index 6aeabc962b3b..76483c10130d 100644 --- a/arch/hexagon/kernel/reset.c +++ b/arch/hexagon/kernel/reset.c | |||
@@ -33,6 +33,5 @@ void machine_restart(char *cmd) | |||
33 | { | 33 | { |
34 | } | 34 | } |
35 | 35 | ||
36 | void pm_power_off(void) | 36 | void (*pm_power_off)(void) = NULL; |
37 | { | 37 | EXPORT_SYMBOL(pm_power_off); |
38 | } | ||
diff --git a/arch/hexagon/kernel/screen_info.c b/arch/hexagon/kernel/screen_info.c new file mode 100644 index 000000000000..1e1ceb18bafe --- /dev/null +++ b/arch/hexagon/kernel/screen_info.c | |||
@@ -0,0 +1,3 @@ | |||
1 | #include <linux/screen_info.h> | ||
2 | |||
3 | struct screen_info screen_info; | ||
diff --git a/arch/hexagon/kernel/smp.c b/arch/hexagon/kernel/smp.c index 9faaa940452b..ff759f26b96a 100644 --- a/arch/hexagon/kernel/smp.c +++ b/arch/hexagon/kernel/smp.c | |||
@@ -64,10 +64,6 @@ static inline void __handle_ipi(unsigned long *ops, struct ipi_data *ipi, | |||
64 | generic_smp_call_function_interrupt(); | 64 | generic_smp_call_function_interrupt(); |
65 | break; | 65 | break; |
66 | 66 | ||
67 | case IPI_CALL_FUNC_SINGLE: | ||
68 | generic_smp_call_function_single_interrupt(); | ||
69 | break; | ||
70 | |||
71 | case IPI_CPU_STOP: | 67 | case IPI_CPU_STOP: |
72 | /* | 68 | /* |
73 | * call vmstop() | 69 | * call vmstop() |
@@ -248,7 +244,7 @@ void smp_send_stop(void) | |||
248 | 244 | ||
249 | void arch_send_call_function_single_ipi(int cpu) | 245 | void arch_send_call_function_single_ipi(int cpu) |
250 | { | 246 | { |
251 | send_ipi(cpumask_of(cpu), IPI_CALL_FUNC_SINGLE); | 247 | send_ipi(cpumask_of(cpu), IPI_CALL_FUNC); |
252 | } | 248 | } |
253 | 249 | ||
254 | void arch_send_call_function_ipi_mask(const struct cpumask *mask) | 250 | void arch_send_call_function_ipi_mask(const struct cpumask *mask) |
diff --git a/arch/hexagon/kernel/time.c b/arch/hexagon/kernel/time.c index 9903fad997f3..17fbf45bf150 100644 --- a/arch/hexagon/kernel/time.c +++ b/arch/hexagon/kernel/time.c | |||
@@ -191,9 +191,6 @@ void __init time_init_deferred(void) | |||
191 | { | 191 | { |
192 | struct resource *resource = NULL; | 192 | struct resource *resource = NULL; |
193 | struct clock_event_device *ce_dev = &hexagon_clockevent_dev; | 193 | struct clock_event_device *ce_dev = &hexagon_clockevent_dev; |
194 | struct device_node *dn; | ||
195 | struct resource r; | ||
196 | int err; | ||
197 | 194 | ||
198 | ce_dev->cpumask = cpu_all_mask; | 195 | ce_dev->cpumask = cpu_all_mask; |
199 | 196 | ||
@@ -232,6 +229,15 @@ void __init time_init(void) | |||
232 | late_time_init = time_init_deferred; | 229 | late_time_init = time_init_deferred; |
233 | } | 230 | } |
234 | 231 | ||
232 | void __delay(unsigned long cycles) | ||
233 | { | ||
234 | unsigned long long start = __vmgettime(); | ||
235 | |||
236 | while ((__vmgettime() - start) < cycles) | ||
237 | cpu_relax(); | ||
238 | } | ||
239 | EXPORT_SYMBOL(__delay); | ||
240 | |||
235 | /* | 241 | /* |
236 | * This could become parametric or perhaps even computed at run-time, | 242 | * This could become parametric or perhaps even computed at run-time, |
237 | * but for now we take the observed simulator jitter. | 243 | * but for now we take the observed simulator jitter. |