diff options
Diffstat (limited to 'arch/arm/common/mcpm_entry.c')
-rw-r--r-- | arch/arm/common/mcpm_entry.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/common/mcpm_entry.c b/arch/arm/common/mcpm_entry.c index 6c03d0152e7f..26020a03f659 100644 --- a/arch/arm/common/mcpm_entry.c +++ b/arch/arm/common/mcpm_entry.c | |||
@@ -27,6 +27,18 @@ void mcpm_set_entry_vector(unsigned cpu, unsigned cluster, void *ptr) | |||
27 | sync_cache_w(&mcpm_entry_vectors[cluster][cpu]); | 27 | sync_cache_w(&mcpm_entry_vectors[cluster][cpu]); |
28 | } | 28 | } |
29 | 29 | ||
30 | extern unsigned long mcpm_entry_early_pokes[MAX_NR_CLUSTERS][MAX_CPUS_PER_CLUSTER][2]; | ||
31 | |||
32 | void mcpm_set_early_poke(unsigned cpu, unsigned cluster, | ||
33 | unsigned long poke_phys_addr, unsigned long poke_val) | ||
34 | { | ||
35 | unsigned long *poke = &mcpm_entry_early_pokes[cluster][cpu][0]; | ||
36 | poke[0] = poke_phys_addr; | ||
37 | poke[1] = poke_val; | ||
38 | __cpuc_flush_dcache_area((void *)poke, 8); | ||
39 | outer_clean_range(__pa(poke), __pa(poke + 2)); | ||
40 | } | ||
41 | |||
30 | static const struct mcpm_platform_ops *platform_ops; | 42 | static const struct mcpm_platform_ops *platform_ops; |
31 | 43 | ||
32 | int __init mcpm_platform_register(const struct mcpm_platform_ops *ops) | 44 | int __init mcpm_platform_register(const struct mcpm_platform_ops *ops) |