Skip to content

Commit

Permalink
ARM: highbank: mask cluster id from cpu_logical_map
Browse files Browse the repository at this point in the history
With commit a0ae024 (ARM: kernel: add device tree init map function),
the cpu id value may include the cluster id and is no longer 0-3, so we
need to mask it now to get the right hard cpu index.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
  • Loading branch information
Rob Herring committed Jan 31, 2013
1 parent c7d5b93 commit 63fc137
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
3 changes: 2 additions & 1 deletion arch/arm/mach-highbank/highbank.c
Expand Up @@ -28,6 +28,7 @@

#include <asm/arch_timer.h>
#include <asm/cacheflush.h>
#include <asm/cputype.h>
#include <asm/smp_plat.h>
#include <asm/smp_twd.h>
#include <asm/hardware/arm_timer.h>
Expand Down Expand Up @@ -59,7 +60,7 @@ static void __init highbank_scu_map_io(void)

void highbank_set_cpu_jump(int cpu, void *jump_addr)
{
cpu = cpu_logical_map(cpu);
cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(cpu), 0);
writel(virt_to_phys(jump_addr), HB_JUMP_TABLE_VIRT(cpu));
__cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16);
outer_clean_range(HB_JUMP_TABLE_PHYS(cpu),
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/mach-highbank/sysregs.h
Expand Up @@ -37,7 +37,7 @@ extern void __iomem *sregs_base;

static inline void highbank_set_core_pwr(void)
{
int cpu = cpu_logical_map(smp_processor_id());
int cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(smp_processor_id()), 0);
if (scu_base_addr)
scu_power_mode(scu_base_addr, SCU_PM_POWEROFF);
else
Expand All @@ -46,7 +46,7 @@ static inline void highbank_set_core_pwr(void)

static inline void highbank_clear_core_pwr(void)
{
int cpu = cpu_logical_map(smp_processor_id());
int cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(smp_processor_id()), 0);
if (scu_base_addr)
scu_power_mode(scu_base_addr, SCU_PM_NORMAL);
else
Expand Down

0 comments on commit 63fc137

Please sign in to comment.