Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc into akpm

Pull ARM SoC fixes from Olof Johansson:
"We had a number of fixes queued up, but taking a strict pass-through
and weeding out any that either have been broken for a while, or are
for platforms that need out-of-tree code to be useful anyway, or other
fixes for problems that few users are likely to see in real life, only
this short branch of patches remains.

The three patches here are to make SMP boot work on the Calxeda
platforms again. Some of the rework for cpuids on 3.8 broke it (and
it was discovered late, unfortunately)."

* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
ARM: highbank: mask cluster id from cpu_logical_map
ARM: scu: mask cluster id from cpu_logical_map
ARM: scu: add empty scu_enable for !CONFIG_SMP

+12 -5
+7 -1
arch/arm/include/asm/smp_scu.h
··· 7 7 8 8 #ifndef __ASSEMBLER__ 9 9 unsigned int scu_get_core_count(void __iomem *); 10 - void scu_enable(void __iomem *); 11 10 int scu_power_mode(void __iomem *, unsigned int); 11 + 12 + #ifdef CONFIG_SMP 13 + void scu_enable(void __iomem *scu_base); 14 + #else 15 + static inline void scu_enable(void __iomem *scu_base) {} 16 + #endif 17 + 12 18 #endif 13 19 14 20 #endif
+1 -1
arch/arm/kernel/smp_scu.c
··· 75 75 int scu_power_mode(void __iomem *scu_base, unsigned int mode) 76 76 { 77 77 unsigned int val; 78 - int cpu = cpu_logical_map(smp_processor_id()); 78 + int cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(smp_processor_id()), 0); 79 79 80 80 if (mode > 3 || mode == 1 || cpu > 3) 81 81 return -EINVAL;
+2 -1
arch/arm/mach-highbank/highbank.c
··· 28 28 29 29 #include <asm/arch_timer.h> 30 30 #include <asm/cacheflush.h> 31 + #include <asm/cputype.h> 31 32 #include <asm/smp_plat.h> 32 33 #include <asm/smp_twd.h> 33 34 #include <asm/hardware/arm_timer.h> ··· 60 59 61 60 void highbank_set_cpu_jump(int cpu, void *jump_addr) 62 61 { 63 - cpu = cpu_logical_map(cpu); 62 + cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(cpu), 0); 64 63 writel(virt_to_phys(jump_addr), HB_JUMP_TABLE_VIRT(cpu)); 65 64 __cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16); 66 65 outer_clean_range(HB_JUMP_TABLE_PHYS(cpu),
+2 -2
arch/arm/mach-highbank/sysregs.h
··· 37 37 38 38 static inline void highbank_set_core_pwr(void) 39 39 { 40 - int cpu = cpu_logical_map(smp_processor_id()); 40 + int cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(smp_processor_id()), 0); 41 41 if (scu_base_addr) 42 42 scu_power_mode(scu_base_addr, SCU_PM_POWEROFF); 43 43 else ··· 46 46 47 47 static inline void highbank_clear_core_pwr(void) 48 48 { 49 - int cpu = cpu_logical_map(smp_processor_id()); 49 + int cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(smp_processor_id()), 0); 50 50 if (scu_base_addr) 51 51 scu_power_mode(scu_base_addr, SCU_PM_NORMAL); 52 52 else