diff options
Diffstat (limited to 'arch/mips/bcm63xx/cpu.c')
| -rw-r--r-- | arch/mips/bcm63xx/cpu.c | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/mips/bcm63xx/cpu.c b/arch/mips/bcm63xx/cpu.c index 7e17374a9ae..fd4e76c00a4 100644 --- a/arch/mips/bcm63xx/cpu.c +++ b/arch/mips/bcm63xx/cpu.c @@ -123,7 +123,9 @@ unsigned int bcm63xx_get_memory_size(void)  static unsigned int detect_cpu_clock(void)  { -	switch (bcm63xx_get_cpu_id()) { +	u16 cpu_id = bcm63xx_get_cpu_id(); + +	switch (cpu_id) {  	case BCM3368_CPU_ID:  		return 300000000; @@ -249,7 +251,7 @@ static unsigned int detect_cpu_clock(void)  	}  	default: -		BUG(); +		panic("Failed to detect clock for CPU with id=%04X\n", cpu_id);  	}  } @@ -297,23 +299,22 @@ static unsigned int detect_memory_size(void)  void __init bcm63xx_cpu_init(void)  {  	unsigned int tmp; -	struct cpuinfo_mips *c = ¤t_cpu_data;  	unsigned int cpu = smp_processor_id();  	u32 chipid_reg;  	/* soc registers location depends on cpu type */  	chipid_reg = 0; -	switch (c->cputype) { +	switch (current_cpu_type()) {  	case CPU_BMIPS3300: -		if ((read_c0_prid() & 0xff00) != PRID_IMP_BMIPS3300_ALT) +		if ((read_c0_prid() & PRID_IMP_MASK) != PRID_IMP_BMIPS3300_ALT)  			__cpu_name[cpu] = "Broadcom BCM6338";  		/* fall-through */  	case CPU_BMIPS32:  		chipid_reg = BCM_6345_PERF_BASE;  		break;  	case CPU_BMIPS4350: -		switch ((read_c0_prid() & 0xff)) { +		switch ((read_c0_prid() & PRID_REV_MASK)) {  		case 0x04:  			chipid_reg = BCM_3368_PERF_BASE;  			break;  | 
