Pārlūkot izejas kodu

powerpc/85xx: Cleanup handling of PVR detection for e500/e500mc/e5500

At some point we broke the detection of e500v1 class cores.  Fix that
and simply the code to just utilize PVR_VER() to have a single case
statement.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Kumar Gala 13 gadi atpakaļ
vecāks
revīzija
8992738db7
2 mainītis faili ar 17 papildinājumiem un 19 dzēšanām
  1. 13 19
      arch/powerpc/cpu/mpc85xx/cpu.c
  2. 4 0
      arch/powerpc/include/asm/processor.h

+ 13 - 19
arch/powerpc/cpu/mpc85xx/cpu.c

@@ -46,7 +46,6 @@ int checkcpu (void)
 {
 	sys_info_t sysinfo;
 	uint pvr, svr;
-	uint fam;
 	uint ver;
 	uint major, minor;
 	struct cpu_type *cpu;
@@ -94,30 +93,25 @@ int checkcpu (void)
 	printf(", Version: %d.%d, (0x%08x)\n", major, minor, svr);
 
 	pvr = get_pvr();
-	fam = PVR_FAM(pvr);
 	ver = PVR_VER(pvr);
 	major = PVR_MAJ(pvr);
 	minor = PVR_MIN(pvr);
 
 	printf("Core:  ");
-	if (PVR_FAM(PVR_85xx)) {
-		switch(PVR_MEM(pvr)) {
-		case 0x1:
-		case 0x2:
-			puts("E500");
-			break;
-		case 0x3:
-			puts("E500MC");
-			break;
-		case 0x4:
-			puts("E5500");
-			break;
-		default:
-			puts("Unknown");
-			break;
-		}
-	} else {
+	switch(ver) {
+	case PVR_VER_E500_V1:
+	case PVR_VER_E500_V2:
+		puts("E500");
+		break;
+	case PVR_VER_E500MC:
+		puts("E500MC");
+		break;
+	case PVR_VER_E5500:
+		puts("E5500");
+		break;
+	default:
 		puts("Unknown");
+		break;
 	}
 
 	printf(", Version: %d.%d, (0x%08x)\n", major, minor, pvr);

+ 4 - 0
arch/powerpc/include/asm/processor.h

@@ -938,6 +938,10 @@
 #define PVR_85xx	0x80200000
 #define PVR_85xx_REV1	(PVR_85xx | 0x0010)
 #define PVR_85xx_REV2	(PVR_85xx | 0x0020)
+#define PVR_VER_E500_V1	0x8020
+#define PVR_VER_E500_V2	0x8021
+#define PVR_VER_E500MC	0x8023
+#define PVR_VER_E5500	0x8024
 
 #define PVR_86xx	0x80040000