فهرست منبع

microblaze: Do not use PVR configuration for broken MB version

Signed-off-by: Michal Simek <monstr@monstr.eu>
Michal Simek 16 سال پیش
والد
کامیت
fbeda67782
2فایلهای تغییر یافته به همراه8 افزوده شده و 3 حذف شده
  1. 7 2
      arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c
  2. 1 1
      arch/microblaze/kernel/cpu/cpuinfo.c

+ 7 - 2
arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c

@@ -30,6 +30,13 @@ void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu)
 	int temp; /* for saving temp value */
 	get_pvr(&pvr);
 
+	CI(ver_code, VERSION);
+	if (!ci->ver_code) {
+		printk(KERN_ERR "ERROR: MB has broken PVR regs "
+						"-> use DTS setting\n");
+		return;
+	}
+
 	temp = PVR_USE_BARREL(pvr) | PVR_USE_MSR_INSTR(pvr) |\
 		PVR_USE_PCMP_INSTR(pvr) | PVR_USE_DIV(pvr);
 	if (ci->use_instr != temp)
@@ -60,8 +67,6 @@ void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu)
 
 	CI(mmu, USE_MMU);
 
-	CI(ver_code, VERSION);
-
 	CI(use_icache, USE_ICACHE);
 	CI(icache_tagbits, ICACHE_ADDR_TAG_BITS);
 	CI(icache_write, ICACHE_ALLOW_WR);

+ 1 - 1
arch/microblaze/kernel/cpu/cpuinfo.c

@@ -71,7 +71,7 @@ void __init setup_cpuinfo(void)
 			__func__);
 		set_cpuinfo_static(&cpuinfo, cpu);
 		break;
-/* FIXME I found weird behavior with MB 7.00.a/b
+/* FIXME I found weird behavior with MB 7.00.a/b 7.10.a
  * please do not use FULL PVR with MMU */
 	case 1:
 		printk(KERN_INFO "%s: Using full CPU PVR support\n",