mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-04 08:15:44 +00:00
ARM: arm-soc fixes for 3.8
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). -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJRFyq3AAoJEIwa5zzehBx3iPsP/j2VR6HmpdchHlwmtXjyqwR6 FQRfqUiyzHiHQlFMt+0rDy2CoNyL77w7z3hv5wMcXzN/Xmg9skMiWryRDS5TdBZ1 lgpMMIgGmmnj8ilbGslermGwmP7iFbgJ5lt+ozIeOOCmvIBnx3LXvBrKugRjcsWd HAtr3Vu57aiDrPy3MCxR66VzfXNEgUL6pEvuNb29SPmMgoValQm84DGYIcmsFeYJ ND0/TUK3wkxqdkRfjeYPL864o7PKDA0Tv3vfPVhyl6LVRl7ZDL5E8mohJUO3f2Os YXbTyMpmxDj8NbsSb8lgjGMHg05B7EsYriOh5mq86UTh6glckOkmQ574kf7y3a2A Wu1ia9P+LRWZtkW3jXixhJKM6QyoeTjO8ZTAmpI8uZMuNdDsBlhw55Th1m1xh7Hk S27rWkDNkF7p+GRVQWcsdL7kgp5hZm+IJIpMA+1DkG6yxR7XAPDaK4RwcSH/w3Cr MT38ZbCEb6taAwp+XCkR+HYUVMfBWNPqeQ8inhT6QGDK4j45J9UdeYeXxWhwNoea jHYDcreTH/y52kAjpMdgVVG3JF5ECOvYCOZpXgYr90hKpXUz/aJqYp+2ZAPKqn6T 9cqNYHJZ1mnX5RfKXgbio2Ah7YC0z/mdQv+n27FSivRHNOi6sytA9t6mfbW/REmE gDkFxSRz/e4TLGGEZgBH =tsdi -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
983ca83634
@ -7,8 +7,14 @@
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
unsigned int scu_get_core_count(void __iomem *);
|
||||
void scu_enable(void __iomem *);
|
||||
int scu_power_mode(void __iomem *, unsigned int);
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
void scu_enable(void __iomem *scu_base);
|
||||
#else
|
||||
static inline void scu_enable(void __iomem *scu_base) {}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -75,7 +75,7 @@ void scu_enable(void __iomem *scu_base)
|
||||
int scu_power_mode(void __iomem *scu_base, unsigned int mode)
|
||||
{
|
||||
unsigned int val;
|
||||
int cpu = cpu_logical_map(smp_processor_id());
|
||||
int cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(smp_processor_id()), 0);
|
||||
|
||||
if (mode > 3 || mode == 1 || cpu > 3)
|
||||
return -EINVAL;
|
||||
|
@ -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>
|
||||
@ -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),
|
||||
|
@ -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
|
||||
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user