Skip to content

Commit

Permalink
[CELL] fix cbe_cpufreq for legacy SLOF tree.
Browse files Browse the repository at this point in the history
Previous patch changed based on Christian Krafft's comment.

On some legacy SLOF tree the generic code is unable to ioremap some Cell BE
registers. Therefore the "generic" functions are returning a NULL pointer,
triggering a crash on such platforms.

Let's handle this more gracefully.

Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>
Acked-by: Christian Kraff <krafft@de.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
  • Loading branch information
Jean-Christophe DUBOIS authored and Arnd Bergmann committed Jul 20, 2007
1 parent 74889e4 commit 64bafa9
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions arch/powerpc/platforms/cell/cbe_cpufreq.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <asm/machdep.h>
#include <asm/of_platform.h>
#include <asm/prom.h>
#include "cbe_regs.h"
#include "cbe_cpufreq.h"

static DEFINE_MUTEX(cbe_switch_mutex);
Expand Down Expand Up @@ -78,6 +79,15 @@ static int cbe_cpufreq_cpu_init(struct cpufreq_policy *policy)

pr_debug("init cpufreq on CPU %d\n", policy->cpu);

/*
* Let's check we can actually get to the CELL regs
*/
if (!cbe_get_cpu_pmd_regs(policy->cpu) ||
!cbe_get_cpu_mic_tm_regs(policy->cpu)) {
pr_info("invalid CBE regs pointers for cpufreq\n");
return -EINVAL;
}

max_freqp = of_get_property(cpu, "clock-frequency", NULL);

of_node_put(cpu);
Expand Down

0 comments on commit 64bafa9

Please sign in to comment.